Continuing an exploration of which issues are the most prevalent in DevOps transformations — this time focus on organizational aspects.
The most challenging stages of DevOps transformation are supposed to be changes made in the organization of the company, changes in people and in processes. What do you think: which of these will require the biggest effort and why? Finally, if the plan looks promising and the calculations indicate profits, what the hell can go wrong?
One week ago, I shed some light on the possible technological reasons that can slow down the productivity of your workflow. Today, in the second part of the article, I would like to focus on reasons that are unpredictable and maybe less obvious, related to the organization of the company and the individuals working in it — based on my experience.
American psychologist William James used to say: ‘A chain is no stronger than its weakest link, and life is after all a chain’. Actually, the same can be said about our career life. Finally, work is a big part of it. To make sure that the whole Team works reliably, each of its members must know what roles it fulfills, what their personal responsibilities and goals are and – the most important thing – what are the Team goals!
In many cases, work is delayed because not everyone is aware of deadlines and what actually needs to be delivered or – even – what needs to be done in order to deliver a project (especially a large scale projects). This causes unexpected results, waste of time on unimportant things and desynchronization of the Team.
It may sound ridiculous, but in many projects disinformation is not a myth but a bitter reality. In most cases, knowledge sharing sessions with some general answers for questions below can bring a lot of benefits.
– Where we are?
– What the project looks like? (ideally, with some demo)
– What we are doing?
– What problems did we meet so far?
– What we achieved so far?
– What do we want to achieve?
But this hygiene should never end. The Team needs to be updated and reminded about changes and progress continuously. Everyone needs to remember to keep all the links of the chain in trim. Clear communication of goals is crucial to work speedup.
How important is sticking to the right course, pilots know the best. Okay, your company probably doesn’t build space ships or planes but it has few things in common for sure. Both require to keep control of the direction.
Some companies employ dedicated people just for that. They are called Product Owners. Sounds important, doesn’t it?
Every Team should have at least one person tasked with taking care of the direction of the project. Otherwise, it will burn through money quick, spending it on additional work. When fuel finally runs out, you will realize that you are not even in the middle of the journey and ticket back will be the most expensive one.
Imagine that you do not have any idea about the project’s history or its background. No documentation, no insight in Team’s approach or way it works. So, how can you make fast and good decisions?
This is the reason why sharing information in the Team(s) is so important. Otherwise, you will spend more and more time on questioning the target solution, additional corrections or even changes which will require new solutions from scratch. Take care of the proper flow of knowledge and you will get expected results.
How much time do you spend on planning? 10% of time / some time / not too much / I know everything / ha, who is wasting time on that?
Planning is a pillar of every business. Those, who want to win, need to have a good strategic plan first. Like in chess. Unless you don’t care about time, you will only count your captured pawns instead of achieved goals.
The more time you spend on planning and researching unknown areas, the less mistakes you’ll make, and less time-consuming problems will happen to you and the Team in the future. Good understanding of the purpose of work will clarify requirements and scope of the work for the rest of the Team, what means – more done in less time.
We are still not robots. Really. I checked yesterday. Twice. We are fixing bugs and creating new ones. Everyone thinks differently but still, we need to work together. Until we connect ourselves to the neural network, we have a poor chance of understanding each other completely. That is why someone invented communicators! Unfortunately, this is still not enough… Bad communication causes waste. You burn your time for nothing, especially in international Teams. People need to feel that they are working with other people, not machines. That’s why it’s good to meet each other f2f right at the start. If it isn’t possible, try at least to talk with enabled camera, so you can read the intentions from facial expressions correctly.
Using many communication tools confuses people. Choose one. That is fast, available anytime, everywhere and on all platforms, with easy to use GUI interface. Then there will be no doubt which one they should choose and no waste time for lazy e-mails. And if someone is thinking that flexible communicator is too much investment, probably at least once asked himself about a question from the beginning. Features like cross-platform, sharing screens, group calls, giving control are priceless for working remotely. You can even integrate these tools with monitoring to get notifications about issues quicker and on a larger scale.
Does anybody know why, in addition to technical skills, it is important to have communication and teamwork skills? After all, we can all talk, right? It’s because not everyone can talk about their problems, at least not personal ones. 😉 People who are not sharing thoughts with the rest of the Team are slowing the whole workflow down. They may even be good at what they do and don’t want to involve anyone in their problems. They just want to resolve things their way and forget about them. But…
A person who knows all the technologies, and can use them quickly and without any issues, does not exist. That is why sharing thoughts, sharing problems and sharing experience between teammates is so important. Teamwork and solving problems together, allow us to do things much faster and learn from each other a lot at the same time.
Some people will lament the lack of independence, but it is more important to get a common goal, than to feed the ego, right?
Lack of proper information can cause quite a stir, especially in larger organizations. But that is not a rule. Many people working on the project and lack of clear information on who is responsible for what slow our work down significantly. Sometimes, finding a competent person takes hours. And this is not even a part of solving the problem. Talking directly reduces reaction time notably.
‘But how will I know who to contact about that issue?’
Every project or organization should have a skill map with quick direct contacts (no lazy e-mails, please…), available for all. A very simple landing page with human faces, where every member of organization ‘lands’, looking for help in a specific area. If you are a DevOps, you need to work closely with Developers, Operations and others, right?
Don’t get me wrong, I’m a big fan of organizing things. But everything should have rational boundaries. There are times, when we should be more proactive and stop thinking that tools will take over our responsibilities. After all, not everything can be defined by a task description.
‘My work is done. Closing task’.
Don’t close tasks if you are not sure that solution was implemented, reviewed and tested properly.
Do your little piece but make sure that you do as much as you can to help others and save their time. Focusing on common good of the Team will bring more value to the whole project and allow you to reach the goal faster.
How knowledge is important, we’ve talked at the begining. But what is the consequence of the unequal transmission of information between Team members, especially those scattered all over the world?
It’s normal that people working in the office are more privy to details. I have never come across a situation when the required information was distributed evenly within the Team. With the exception of Teams working 100% remotely and discussing all topics together (by calls, on group chats).
So, some Teams work faster, while others work on obtaining the required information or make mistakes because they weren’t able to get the right info sooner. This problem is particularly visible when Teams working at distance join the company (based in another country, remotely).
Besides natural language barrier, ‘remote’ employees very often struggle with long reaction time to their questions or lack of context in discussions. While f2f contact in the office obligates to some reaction, messages on the chat can be easily ignored (especially e-mails). The point isn’t that someone doesn’t respond on purpose, he is probably just busy with other things. The thing is that usually people working remotely just have a lower priority. They make up a high percentage of unused potential, although from the assumption, additional resources supposedly accelerate the work.
Put more attention to individuals working at a distance and improve time of reaction by talking with them. Some questions can be addressed to a group of people. You don’t have to contact everyone directly. Other members of the Team will certainly find time to answer questions and save time for all.
Introducing new people to a team takes time and depends on the level of their experience, the advancement of the project and the time spent on onboarding. Here, we can lose it noticeably. Everyone has different knowledge, so it’s certainly not possible to change people like tires and expect the machine to work smoothly, without interrupting the continuity. Sometimes the project doesn’t have any documentation, and even if it is, it is often not conscientious updated. Sometimes the rotation is so big that onboarding never ends.
It’s good to focus on not repeating yourself and not wasting your time. Databases with knowledge sharing sessions may help with that (recordings, cheat sheets with useful links, rules and agreed naming conventions).
‘This is not documented! I can’t work!’ you say. Hmm…, you sure?
The code itself in the repository can be documentation if you add some useful notes on how to use (README). We now have mechanisms that automate its creation. If you are fully defining IaC (Infrastructure as Code), your code documentation will always be up to date. Instead of explaining how to run scripts, focus on automation and define them in ready-made pipelines.
There is no person who is an expert on every technology, can work remarkably well in any department and at the same time have the highest communication skills. Every member of the Team is different and not everything is always obvious to everyone.
That’s why the good flow of information and teamwork are so important to accelerate workflow. Talk more with the Team. Use video conversations not e-mails. At the same time, think like a startup – make business plan, define goal and go for it – to deliver products quicker. Think big, but keep control of the project’s direction. Don’t give up on remote work. It can bring many benefits and act as a real extension of the Team, if you put enough attention to knowledge sharing. And don’t forget that on the other side of the screen sits another human being, as imperfect as you.
We'd love to answer your questions and help you thrive in the cloud.