Engineering manager’s guide How to choose the perfect leather sofa Preface Nothing significant is ever achieved alone, so I would like to thank multiple people who have helped me finish this book, mostly by motivating me not to give up and by giving me valuable advice on how I should frame things for the reader to fully understand the subject. My experience is based on more than fifteen years of being an individual contributor, startup owner and corporate manager, and people around me helped enormously in shaping my world views. Without their help, I would not have gotten to this point in my career. Special thanks goes to a number of draft readers who have given me essential feedback while I was writing this book. Additional thanks must be given to the ones that I’ve been lucky enough to have reporting to me. You let me practice being a manager ‘for real’, giving me a chance to become better at all of the skills that I’ve mentioned in this book, to the point where I feel comfortable enough to share them with the wider world. I almost forgot: thank you for picking up this book. I hope that it will help you in your careers. About me I was born in 1979 in Osijek, Croatia. After graduating from the Faculty of Electrical Engineering and Computing in Zagreb, Croatia, in 2004, I started my professional career in the private sector, working as a web developer. I moved later to the world of databases, specializing in business intelligence. After gaining experience in several local companies on how to do things and, sometimes, on how not to do things, I started working as an external consultant and manager, focusing on financial and government sectors. At the same time, I participated in multiple lectures, conferences and took active roles in startups, as a process of moving from technical roles to managerial positions. During this time, in addition to improving my technical skills, I was learning about project management, business strategy and management theory. I continued by enrolling in the MBA program at COTRUGLI in Croatia, which I completed in 2011. I regularly speak at conferences, hold workshops on various topics related to business intelligence and data science and try to teach people things which helped me in my career, mostly how to build better software and grow as a human being. If you are interested to read more about me, you can find more details on my Linkedin profile, I would be glad to connect and discuss the topics that interest you. Book Summary (for Amazon) This book will help you become a better manager. Across the years, we have constantly been gaining experience in writing software, but still, projects are late and people turnover is high. So, it becomes obvious that most problems occur not because we don’t know how to develop software, but because we are not good at developing and managing people. Computers don’t create software, people do - we need to help more people succeed and good managers can solve this problem. One of the worst things that frequently happens, no matter how many times it backfires, is that people are being thrown into management without any plan or preparation. Unlike our software creation skills, which have been developed over decades of academic and practical learning, we don’t learn about management until we enter the industry and see other people do it. It usually begins with an internal job opening in one of the teams, and very often the choice is forced upon us as the only way to progress our careers or "we will get stuck in operations forever". This means that we haven’t had enough preparation, we haven’t done any formal education, and we haven’t got much of an idea about what we should be doing as managers. This book tries to help you handle these situations. It is a step-by-step guide on how to become a good engineering manager, who will deliver software on time and be respected and admired by people. You got your first role of managing a team, either by internal promotion or by external recruitment and now a very big thing is in front of you - "day one". It is the morning of your first working day on a new position with a new team. You need to understand your new role and find out who is in your new team, what they do, and how they relate to the rest of the organization. You will go through all of these topics, and much more, hopefully learn how to become a better manager and a better person. Introduction "Tend to the people, and they will tend to the business." - John Maxwell Across the years, we have constantly been gaining experience in writing software, but still, projects are late and people turnover is high. So, it becomes obvious that most problems occur not because we don’t know how to develop software, but because we are not good at developing and managing people. Computers don’t create software, people do - we need to help more people succeed and good managers can solve this problem. One of the worst things that frequently happens, no matter how many times it backfires, is that people are being thrown into management without any plan or 1 preparation. Unlike our software creation skills, which have been developed over decades of academic and practical learning, we don’t learn about management until we enter the industry and see other people do it. It usually begins with an internal job opening in one of the teams, and very often the choice is forced upon us as the only way to progress our careers or "we will get stuck in operations forever". This means that we haven’t had enough preparation, we haven’t done any formal education, and we haven’t got much of an idea about what we should be doing as managers.. Your education should, like all educations, start with lots of input from people wiser and more experienced than you, and in most cases, this means you have to read a lot of books. Reading online blogs is not really the best approach since there is a mixture of contradictory information, some of it written by people promoting their coaching services, and some plain wrong, outdated, or irrelevant. This part of education is here to teach you just one thing - how to create conditions that allow others to succeed, learn, feel psychologically safe and be creative. You can be the person who helps your staff grow and achieve way beyond the level they thought it was possible. You can create the team that allows people to enjoy turning up to work each day, ready to tackle challenging problems together. Many years from now, you can be the name that comes to mind when some of your staff are asked where their careers began to take off...or you can be a person remembered as being someone who should not be given management roles again and is hated for the damage caused by their actions. Management and leadership Over the last few decades, the word "management" has gained a bad reputation. First what comes to mind are pushy people in suits who know nothing about "real work", layers of bureaucracy and pointless activities to maintain high-paying jobs in the hierarchy. In order to avoid your name getting associated with this, and before you can even start managing people, you must first learn to lead. There is a big difference between managers and leaders, and the leader role should come first. To be in a leadership position, irrelevant of your current status in the company's hierarchy, you have to be the inspirational figure that others look up to, a role model of behavior in tough times and somebody of highest personal standards - if you can achieve this, everything else will flow naturally. When I started working after university, my first manager was, by all criteria, terrible. She didn't know how to lead people, didn't care about people development and even avoided people whenever she could. When everything was OK, she would take all the credits but when issues occured, she would become invisible or even turn hostile to her own team, trying to avoid responsibility. Employee turnover was extremely high and in the end she was let go, but not before incurring significant people damage and lowering department productivity. This experience brought into my personal focus a fact that management is a skill that can and should be learned, and even if we have a person with obvious managerial flaws, there are ways to learn how to do this job properly to become a better person in the process. 2 Management is a collection of methods, best practices and tools that you use to perform your job. However, using them well, alongside being a humble and caring human being, will elevate you higher. You will act with respect, grace and kind consideration, as well as provide honest, candid conversation. You’ll practice what you preach through your actions, and that is going to make you into a leader. That’s because doing management diligently and skillfully is a hard and rare skill. In the end, it is a craft, much like writing software. You’ll get better every day. Consider it being art, not science. It’s a mixture of your creativity, personality, heart, mind, your ethics, and your values. It is you. You can be a manager and a leader that others look up to. That others want to work for. That you enjoy being every day. Or you can be a person everybody hates...it is up to you. What is next? You got your first role of managing a team, either by internal promotion or by external recruitment and now a very big thing is in front of you - "day one". It is the morning of your first working day on a new position with a new team. You need to understand your new role and find out who is in your new team, what they do, and how they relate to the rest of the organization. The next thing to learn is how to manage yourself by getting your routine and habits in order. New adventure "The first responsibility of a leader is to define reality. The last is to say thank you. In between, the leader is a servant." - Max De Pree Day one - you come to work, maybe holding your new ID card, thinking how strange you look in the photo. You return the card to your pocket, but you know...it is day one. Hopefully, somebody will come pick you up soon and introduce you to your new team, the people you are now responsible for. After a few minutes, you see an approaching figure with their arm extended, saying: "I’m so glad you’re here!" This is your new boss. The moment you enter your new office is the moment your new role really starts to sink in - you are no longer "another developer". Things have changed. You sit behind your new desk for a few minutes, thinking that you will soon be introduced to the team and everybody will be looking at you, assessing the "new boss", while you will be asking yourself whether you really needed all of this. The game has changed, you made it...or did you? How should you start? What should you do? There is no documentation, no development environment, no source control, no colleagues taking you for a cup of coffee and showing you the code that you will maintain or develop or discussing the new fancy project that you will be working on. Many engineers enter their first job having studied or practiced their skills for many years. However, most new managers 3 have never managed anyone before and often find themselves overwhelmed and unsure on how to do their job, which leads to poor managers, bad results and high people turnover. This can be immensely stressful, and many give up with the usual excuse "I want to be more hands-on again", which is another way of saying they want to go back to their comfort zone because they were not ready in the first place. First things first, you need to meet your team and discuss expectations with your manager, create an overview of necessary meetings in your calendar, make a team snapshot (capabilities, seniority, roles, first impressions) and an action list of items to focus on. During that process, try to get an initial feeling on how the team works, what the atmosphere is and try to subtly find out why the previous manager left, which will give you insight on how much "initial damage control" you need to do. Hour one of day one Regardless of whether you joined the company to write code, perform quality assurance tasks, be a Scrum master, project manager or to be part of the top-level management, it is likely that you will be spending your first week muddling through, feeling like an impostor and worrying whether you’re making a good first impression with all of your new colleagues. Starting a manager role is usually much more difficult than starting as an engineer. As an engineer you will get into familiar grounds. You can ask to be assigned some bugs to fix, while working out how the development environment is put together. You can read some documentation to fill up time or just slack off at meetings, pretending to listen and understand. In short, you can be productive straight away. As a manager, what should you actually do? When you got the job offer, you felt good about yourself but now new questions pop up: how will your new team accept you, will your relationship change with existing colleagues, what is actually expected and what are you responsible for. There is no more "easy" frame of IT operational work where you code, test and deploy - this is unknown territory which nobody prepared you for at university, and this is why so many people fail and/or become bad managers. Hopefully you have come prepared, have read some good books or have shared a drink with experienced managers. If you haven’t you will probably feel out of place and unqualified for the job. Time for the first step - putting some structure into place. Creating a team snapshot 4 A snapshot is the state of a system at a given time and creating it will be the basis to start your work with the team. In time, you will be able to form your own independent view of your team, but your first step should be some investigative work. The snapshot has to include several things: your own, your team's and your manager’s observations. Your observations are what you see every day while working with your team. At this moment you will need to rely on others while you form your own view, but be very careful. If these opinions belong to the previous manager, they might hide a reason why he or she is no longer there. The team's observations are very individual, but you need to aggregate them in a structure and look for gaps. The key questions here are how they feel about themselves, their colleagues and as part of the wider company? To create a snapshot you need to combine all these views, compare them against each other and discover where your work can begin. Introduce yourself to the team First things first, you need to say ‘hello’ to your new team. The relationship that you form with them is the foundation on top of which everything else is built. The meeting has to be as personal as possible. Do it in person if you can, otherwise by video link. Don't use e-mail or chat as introductory communication tools. After the initial group meeting, you need to do a one-to-one with each team member. The goal is to create a snapshot and develop a more personal connection. Don’t make the meeting too long; thirty minutes is usually enough for this step. Don't forget to make this as informal as possible. To create a good team snapshot, you need to get a couple of things from each team member: their responsibilities, current work description, their opinion about what they like about the team and what is going well compared to what is not. Summarizing this data gives you an overview of what the department is actually doing. At this moment, you will start uncovering numerous issues and conflicts within their current situation, ranging from communication problems, work stress to interpersonal issues and beyond. These are great starting points for your initial contribution and an opportunity to see why the previous manager was replaced. End your initial meeting by thanking them for their time and letting them know that you’ve noted everything down. Don’t worry about doing anything right away. Just keep it written down, and let the week continue to unfold. The art of one-on-ones with each team member Now let’s talk about one of the things that most operational IT people deeply hate - getting a meeting invitation from their manager. Unfortunately, meetings are how a lot of your work as a manager gets done. If you have a severe allergy to meetings, 5 you should seriously consider getting out of management right now - you’re going to spend a lot of time in them. But if you persist, you may learn to tolerate them, or even love them. It is an amazing game which tests you in a way that no IT work ever will. One-to-one meetings are one of the most important regular activities that you’ll perform as a manager. You should consider making them recurring weekly events, ideally at the same time and location each week. Make sure that they are in a private space such as a meeting room, so both of you can talk about confidential and sensitive issues. Also, as your calendar is pretty empty at this moment, ask each of your staff if there is an ideal time of day for them to have the meeting with you. This enables you not to break their flow and sends a message of respect. Schedule difference - makers VS managers This chapter is based on a post from Paul Graham “Maker's Schedule, Manager's Schedule”, in which he outlines the key differences between the daily schedules of makers and managers. Managers typically schedule their days around hourly blocks in their calendar, whereas makers are most productive when they can schedule their time in blocks of half a day. This is because the IT work of makers requires deep focus and time to achieve productivity. As a new manager, you might be tempted to drop meetings into the calendars of your staff at your convenience rather than theirs. Sometimes it is unavoidable, but if you can, try your best to protect the time of those on a maker’s schedule. Have meetings with them at times that allow them to be focused and productive during the rest of the day. First meeting with your manager Now it is time for a different kind of meeting. You need to get an impression of your new manager. But do not wait for him to schedule this meeting for you - be proactive and request a time slot which would fit his calendar. Don’t worry about them thinking that this is rude and that you should leave the scheduling up to them - this is actually what they expect you to do. Follow the same procedure you did for your direct reports - use open-ended leading questions, listen, and take notes. However, you need to be more guided in your questioning, since your manager will likely have some key insights that you should know about. Your goal is to find out what is your manager’s opinion about the team, some personal (subjective) thoughts on the team’s quality ("superstars" or "average") and how the clients perceive them. Ask about your initial tasks. Do not forget that managing “up” ( forming relationships with your superiors and creating 6 two-way communication through coaching, sharing of responsibilities, and mutual support ) is equally important as managing “down” ( managing a team of people ). You should frame this relationship as one that encourages two-way empowerment through coaching, sharing of responsibilities, and support, understanding how they view you and your team within the rest of the department and work out how to make it a better place. Your coworkers might not be getting the support they need from their own manager, so you can form a strong partnership by being on their side, with both of you supporting each other and getting meaningful work done. And when that promotion that you’ve waited on for too long for finally comes, they will gladly support you. These findings form the other half of the snapshot that you’re putting together. After the meeting, follow the same procedure as you did with your staff - thank them for their time and schedule a recurring weekly one-to-one. Next step - create your snapshot. Creating a snapshot You have collected data from your new manager, your team and formed your own subjective opinions, which was your main task for week one. In the meantime, you have probably had to do some mandatory onboarding activities and have made initial connections with the people who are your customers. You form your snapshot by taking what you’ve learned from the team, your manager, and yourself and create an overlay in a form of a Venn diagram: 7 Now you can begin to work out where particular observations fit into the intersecting circles. The snapshot is divided into four areas that you need to analyze: alignment, poor communication upward, poor communication downward and false beliefs. The area ‘Alignment’ stands for observations or beliefs that you, your team, and your manager all share. ‘Poor communication downward’ is where you and your manager share observations or beliefs, but the team is either unaware or disagrees. ‘Poor communication upward’ is where you and your team share an observation or belief, but your manager is unaware. ‘False beliefs’ is where both your manager and the team have a conflicting observation or belief from your own - this can be especially true if you’re new to the organization and have seen things done differently elsewhere. It’s worth mentioning that these scenarios can apply to both positive and negative issues. Topics that even a good performing team might not be aware of also require your attention. You won’t be able to solve everything that you discover immediately. However, this snapshot can form the beginning of productive discussions and investigations that you have to initiate. 8 Action list The last thing you should do during week one is creating an action list for week two, when you will start your regular one-to-one meetings with your manager and staff. Use the snapshot you have just created to put the observations into categories that include things to discuss with your team and manager. Depending on the team, these lists can consist of just a few items or, in worst case, you might have generated months of discussion material. If the latter is true, prioritize the items in order of impact so that they don’t become overwhelming. Then, pack your things and head on home, proud in the knowledge that you’ve had a very productive first week in which you have met your team and your manager, made your observations, created a snapshot, booked one-to-one meetings and created an action list. Next topic for you to learn is how to manage yourself before you can effectively manage others. Self-management "What you do has far greater impact than what you say." - Steven Covey In week one of your managerial career you met your team, your new manager and made some notes on future actions. And then it happened. A production issue of high priority, and you have no idea where to start. You scrambled the team together, trying to figure out how things are done in such cases, and you were forced to miss several introductory meetings while dealing with the fallout. Most importantly, you missed your lunch with someone important and now the afternoon begins. You are stressed and hungry, and to top it all off, you watch your water bottle fall in slow motion as you’ve accidentally tipped it over, soaking your notebook. The doubt hits. Is this chaos what management is like? Have you made the right decision in choosing this role? Just how are you supposed to feel organized and get anything done amid all of this? If this description is not familiar to you, I doubt that you have ever worked in the IT industry. This is how life looks like, even on an operational level, but now it is even worse. You are dragged back into daily operational issues and you cannot focus on the requirements of your new position. This is exactly how management looks like - constant interruptions by your people who want something, ad-hoc meetings and phone calls combined with much smaller time periods to do your work. Day starts with a beautifully prioritized to-do list and an optimistic outlook in the morning, only for all of that to be steamrolled. Let's see if we can improve the quality of our game. 9