Microservices architecture: What the gurus say about it

via Microservices architecture: What the gurus say about it

Great article from my perspective.

Looks like herbertograca has more interesting things to read about architecture and development approaches.

brown concrete structural walls
Photo by Josiah Lewis on Pexels.com

Never, Never Do This

During my work career as a manager and leader I saw the biggest mistake ordinary done by the young people:

After a mistake, they try to hide it or lie to me.

Doing that, they are breaking the most important fundamental thing of any relationship including work:

Trust is a fundamental thing which makes things work.

Let me provide some arguments if it’s not clear:

  1. In management you cannot do all things by yourself, as a result, you need to delegate. Not all things can be checked – you need just to trust. No trust – no delegation and probably no management. Maybe guillotine on the backyard can fix it 😉
  2. Any kind of work processes or any relationships is based on agreements and rules. Most of them are not built-in or automated. You need just to trust people to make these processes work. No trust – no work processes. It works for coding as well.
  3. Human is really emotional and unstable by nature. The only indicator which says that you can work with a person or build any relationships is a reputation based on trust of other people. No trust – no reputation. No reputation – no trust and relationships. It’s a cycle which makes things work.

What I see: young people don’t understand that if they’ve created a problem in some technical or organizational area their liying pushes the problem to the new level and breaks any relationships.

The consequences of lying often outweigh the cost of mistake. They become irreversible.

As a result, let me share the message with all young people to make them avoid the worst behavioral pattern there are planning to use:

Don’t lie even in small things. Be brave to admit your mistakes and take responsibility for them.

Don’t be afraid to entrust yourself to people and they will trust you.

Follow these rule even in front of a tough manager or leader. It will show your strength twice.

Once you will lie – your reputation will be hard to restore.

Be careful with that.

Few notes about Interviews

During my work, I’ve made many interviews with the candidates.

Most of them were for my projects.

It’s a really important fact since it gave me an understanding of my mistakes and successes: I’ve worked closely with the people I’ve selected.

After all these experience I want to share some of my conclusions about interviews:

  1. Avoid situations and questions which cause pity for the candidate or make him feel bad. Don’t ask deep questions if you know that candidate is weak in the area etc. Results: all these bad feelings will not affect your decision and it will be objective. From another hand, the candidate will be not demotivated and will show his best.
  2. Candidate should be motivated to get the job. He should demonstrate an interest in the work described by you. Results: if the candidate has no motivation even from the start- it’s a small chance that you’ll change it in the future. If the candidate is not motivated after the interview – you need to reject him and think if your speech about the future work was motivative. This is the next point.
  3. Your speech about future work should inspire. You should be motivated to find the candidate and say correct words for each of them. Results: the candidate will feel it and choose your offer if you’ll make it.
  4. The best question for an interview is a question related to future work, without a single answer, but with a range of answers which are depending on the knowledge of the candidate. Don’t be focused on deep details or logical games if it’s not specific of your work. Range of answers will give a room for creativity. Results: it gives you much more information about candidate knowledge in the area you really need.
  5. Pay attention to the soft skills of the candidate. It’s critical since most future problems with all employees are not in the technical area, but with communications, responsibility, ability to support your team culture, etc. In my practice, I split the interview into 2 parts. 1st part is just to detect soft skills. Results: you will save your time and nerves.
  6. Be open with the candidate. Don’t lie about future work. Result: the candidate will not leave the job if he made a balanced choice knowing of all future challenges and profits.
  7. Mentor the candidate in a friendly manner. Provide him technical advice, recommend some books to read, etc. Make him feel that he leaves the interview with the new knowledge, in a good mood. Results: even if he will not pass, it’s a high chance that he will be back with the new knowledge.
  8. Make a short practical test. Prepare some technical task which is close to the real work. See point 4 from above. I prefer to leave the candidate alone for 20 minutes for some code refactoring. Result: the real work is the best test for the skills. This is the next point.

Finally, I want to highlight the following conclusions I made:

The best check for the candidate is a real job.

Unfortunately, exists such type of people who can speak nice and pass all your questions, but the real job is hard for them. Anyway, be ready that all issues will appear during the real work with the candidate.

The recommendation of the candidate is highly important. Especially from a trusted person.

Try to get feedback about the candidate from the past co-workers. It will give you really strong arguments for your decision.

Trust your feelings and intuition.

A big piece of our experience is hidden inside of intuition. Some candidates will cause you to doubt, although all questions will be well answered. Don’t ignore your intuition. I prefer to have one more interview later when the reason of doubt will be clarified and should be checked. After some time I follow the rule – I reject the candidate if I have doubts.

Listen to each other! Good luck with the interviews!

Chaotic thoughts about processes and people

Time after time, it’s the strong feeling growing in me:

Processes are much less important than people who set and handle them. Even more: we’re speaking processes, but meaning people.

As far as I see, the process is just a tool created by the exact group of people to achieve defined goals.

From such point of view, the right process is just the implementation of the visions of the right people.

I think, that is the root cause why the processes in different companies has different level of success.

From another side the quality of a process and achieved results depending on the people who perform it.

As a result, even similar processes can produce different results. It makes hard to reapply the process to another environment.

I think the company culture plays a big role here.

This point brings to live another old idea to remove the human factor to make the process stable.

It makes sense, but what I see everytime I want to implement it

It’s really amazing how many efforts do you need to make an human-independent process.

Probably the cost of this approach is the biggest factor why it’s not applied everywhere and we’re still working with human-based processes.

In general, there are a lot of open questions. Some of them I want solve:

  1. How to build a stable process, but with room for creativity?
  2. What technics is more effective in building stable human-dependent processes. What books are describing them?
  3. How a company culture should grow to motivate the people for accurate process execution? How to do it without pressing and checking?

Meetup. Right format

In my previous post, I’ve described some initial thoughts about employees Communities. At the bottom of the article, I’ve identified the list of problems we’ve met during our long way to build effective Communities.

Let me share now some solutions we’ve found. I hope it will save you time if you’ll decide to make similar things.

I’ll start with Meetup since it plays a really big role in Community processes: it makes possible to share knowledge, select the most professional employees, identify trends and directions for investigations, etc.

So

What is the best format of the meetup?

In the beginning, we’ve selected “training”-like format:

  • We should prepare and share only high-quality content during meetups. It will be more positive feedback from participants, it will be more informative and effective.
  • To share such kind of content we will need around 1 hour
  • Our goal was to involve as many participants as possible. In other words, we wanted to make our communities as big as possible.

After some meetups, we’ve realized that the selected format doesn’t work. Reasons:

  1. Presenters are not happy to prepare detailed and complex content. They didn’t want to spend their time even for money. After some meetups, they skipped the opportunity to present something.
  2. Such kind meetups were rarely since we’ve searched for presenters and they spend a lot of time to be prepared before the meetup. After some time they were not regular till the total cancelation.
  3. Employees and Reporters have no opportunity to join 1-hour meetups during the working day. After the working day, they prefer to go home and spend this time with the family. Before working day – they prefer to sleep in their beds.
  4. Our goal to build a big community from scratch is not real: meetups/communities were made without a special “friendly domestic” atmosphere, it was no discussions, participants were afraid to share their small topics, etc.
  5. Profit from high-quality content was not so big as expected. We realized that to make it work it should be in training-format, but it needs much more efforts: it needs practical parts, dedicated trainer, well-prepared materials, budget.
  6. When we’ve tried to build a big community – not all community members were motivated to play an active role inside of the community. They worked even as de-motivators.

After all of these facts, we’ve made our key conclusions:

Meetup is not a training

The key goal of the Meetup is not to educate or train, but give a communication point to discuss and share ideas, knowledge, ask for help or consultation, etc.

Meetup should be easy to perform. No prepation needed!

It should be easy to share knowledge. Even small topics make sense for the meetup. No preparation is needed. You need to share the knowledge/questions/results which you already have!

Meetup should be informal

Meetup should have “open” atmosphere which should grow smoothly with community size. Only motivated employees should participate. No needs to grow the community by employees who are not motivated. The community should grow naturally. Even 4 employees enough to start.

Meetup should be short and regular.

We decided to move with 30-minutes meetup per week or two. Short meetups easy to perform since you need not prepare different content, they are not boring and don’t need your time during the working day. Regular meetups provide the feeling of community, live process. It motivates to participate and makes it clear. It makes the people organized.

The last note for today:

Meetup should be online

The offline format is not scalable and works just if you have a single office. In other cases, you need to be scalable to involve motivated people from the whole company, record it if needed, etc. It’s even simple to organize. We’ve tried to organize mixed (offline+online) meetups, but it’s increasing complexity: it’s hard to speak with the community, if you provide both options people prefer to join in online mode, you need to prepare the room, projector, microphones. As I said before – it should easy, not like this.

Don’t worry if you think that you will lose some special feelings in an online format. In the IT world, you need to be ready to communicate online. It’s a really unique case if the team is not shared. Start to work online ASAP.

Good luck! Don’t hesitate to contact me if you’ve any question.

six white ceramic mugs
Photo by rawpixel.com on Pexels.com

Even one good word

The emotion of this week:

Even one positive feedback can give you enough energy to move to your goal.

As a result, don’t skimp on a good word. Say it even “in credit”!

Perhaps it will serve as the basis for someone’s goals or dreams.

P.S. don’t hesitate to say “Thank you” at least  😉

action adult athlete blur
Photo by Snapwire on Pexels.com

It’s a real, real-time world

In the last years, it becomes clear to me that the world was changed. The cool book The Inevitable” by Kevin Kelly confirmed my vision and structured it. Let me put some key changes which amaze me even now.

  1. The systems and things we’re doing existing just NOW in the continues flow of transformations and updates. Nobody cares how the things looked before. If the thing is not flexible and not supported it degrades very fast. Let’s imagine such a situation: the system stays 3 months without developers and users and then they are back. I think it will be really hard to recover how it worked before. Additionally, the system will be outdated. Let me rephrase: systems existing only during development and using!
  2. Flows of changes and data are becoming so rapid that you can see them in real-time. Delivery time is reduced just to seconds everywhere: communications, news, video streams, apps changes etc.
  3. The implementations of ideas or technologies are delivered and changing so fast that details are minor. What becomes important is the working idea, business model and understanding of the core principles.

To be honest, I’m not happy with some aspects since I was born in another world, but it’s totally clear that we need to accept and follow the changes to be successful.

To be a working part of human-machine interactions we’re creating, not only things we do, but we ourselves should follow the rules:

  1. If you want to manage the changes flow you need to be fast. Decisions should be made now and corrected in the future. You should be a real-time man.
  2. You should be flexible and open to changes.
  3. You should invest your time in the understanding of core principles. Details will be found during the implementation.
  4. You should be responsive. If you’ve received the request you should handle it ASAP.

I hope we don’t lose our humanity in this challenging and stressfully world.

P.S. I recommend the book from above. It provides useful ideas in a clear and simple way.

london telephone booth long exposure lights