They accommodate your technical interests/desires and make sure that you have what you need to be productive. A good manager fights red tape for you and facilitates personal growth.
Bad one: lots of micromanagement, fear of making mistake, fear of looking bad to upper management, lack of technical insight, lack of business insight
Good one: little to no micromanagement(except in some cases), stilk has good technical insight and tries to stay up to date and can make reasonable discussion, always challenges you in good ways, tries to increase system efficiency by creating an environment where people can try many ideas without going off the track, good business insight - surprisingly many people dont know anything about business you are in.
If you refer by bugs human resource type things then yes. In software bugs should be fixed preferably by the person who has most knowledge of the area affected, I think...
They're positive in the face of adversity but always realistic. For example, the software you're working on fails 10% of required tests. A manager once said to me that it's the nature of engineers to focus on that 10%, but he always likes to remind them of the 90% that passed, and will accomodate the team to see the remaining 10% pass too.
The best managers I’ve had have been formerly great engineers, or Product people who understand the importance of engineers. I’m sure there are good managers who were not god engineers, but it’s certainly harder for them to grow into such a role.
The best managers try to understand different perspectives including yours. They must must must be good listeners, otherwise they can never truly understand what their reports really want.
The best managers understand what’s important for every member of their team and try to create environments conducive for their growth.
Being a good manager is a rare skill. Some are born with it; but it’s a skill that can be learned by those who listen. Most managers unfortunately have a messed up paradigm of themselves and how they relate to the world, and most will actually create more obstacles rather than clear them.
>>> Being a good manager is a rare skill. Some are born with it; but it’s a skill that can be learned by those who listen. Most managers unfortunately have a messed up paradigm of themselves and how they relate to the world, and most will actually create more obstacles rather than clear them.
Could you elaborate on this ?
I've been managing for some times (years, small teams) but for the first time, I get a project that is 100% screwed : loss of control, some people hate me, the customer is becoming (righlty) ultra nervous... And I'm really asking myself if there are patterns in my behaviour which are clearly wrong. So relating to others might help a bit in figuring it out...
I'm doing all this, although after 2 years now I feel the very fact that I am not 'micro managing' is affecting our team's productivity. I notice my team is on social networking websites for a long time daily with some work (we all sit together), come late and go early, and I don't say a word to them and am always that 'cool' with them. I'm thinking may be that's a bit wrong on my part, but there is just no way to tell them these things without sounding 'uncool' and micro-managing.
You misunderstood accountability with micro-managing!
If they are using social media sites its their choice, you should not call them out, because that would be micro-management.
But if the same thing is not allowing them to be productive call them out for poor performance. That's how you teach accountability.
Performance and, to a much lesser extent, accountability are not the easiest topics in software engineering outside of strict waterfall. Still, awareness of these is critical for teams.
In that particular example that you are replying to I would go a few "why" steps deeper though.
Why are they not motivated enough by their work maybe?
Are they not aware maybe how a higher than "normal" engaging in distracting activities will hinder their development and ultimately their career?
Slacking off once in a while is perfectly normal. It is rare to find the perfect situation of engineer's brains being constantly on fire, churning out great solutions because they are so motivated, in the right place at the right time being asked to and capable to do the right thing in the right way.
No manager can make their team get closer to that nirvana alone - It needs a good environment but most of all an intact network of trust inside the team and the openness to speak about lack of motivation or other issues and trying to tackle it together.
Imho it is your task to help them become aware (calling out and other methods), reflect on the issues and gain the confidence that a change can be made that benefits them.
> It needs a good environment but most of all an intact network of trust inside the team and the openness to speak about lack of motivation or other issues and trying to tackle it together.
Openness is the key, but still I have seen team mates judging you when you talk about being non-productive at work. Better to talk about it 1-to-1 with your manager and avoid it during meetings where everyone is present.
> Why are they not motivated enough by their work maybe? Are they not aware maybe how a higher than "normal" engaging in distracting activities will hinder their development and ultimately their career?
Great point, and I think it needs elaboration. Particularly if increased slacking/FB use is something that has increased over time for a person, I would also take it as a sign that they are losing motivation. Banning FB or chastising them when you see them use it won't restore that motivation.
A lot of people go through phases like this. It can be symptomatic of:
- Overwork, stress, potential burnout
- A workload the person finds repetitive, not challenging, or uninteresting (maybe they need a change in task type)
- A feeling that work is not rewarded, possibly that person needs more praise or recognition, or even just interest from manager/others about what they are doing
- Person is lost or stuck on what to do next, the task may be too hard for them or they need to talk it over with someone. Many introverts especially will not ask for help when stuck.
> engineer's brains being constantly on fire
The elusive flow. In my experience flow states are most common when: (A) there is sufficient freedom to explore the problem space, (B) fairly rapid feedback, and (C) people are impressed by or interested in what I am doing. Success breeds success. I am convinced that one of the most important jobs of a manager is to cheerlead for the team and remind them why their work is interesting and valued. Who else is going to do that if not the manager? Feelings of success and confidence breeds more success.
Having people do quick demos or small green-field projects, even if it isn't exactly the top priority at the moment, then complimenting the result, is a good way to boost morale and interest in my experience.
They are engineers, it's normal. Is the work getting done? If yes, then who cares?
If not, then you might need to crack the whip a little, but butts-in-seats time and blocking Facebook are incredibly ineffective ways to get people back on track. These are highly trained, competent people, presumably, so treat them like it, not like they are unruly third-graders.
Yes, the 'work' is getting done, but again I think it could be around 40% more productive. I do realize that we have to refresh ourselves time to time but when it's a long stretch of time on work looking at investment/finance websites, I think these are signs of trouble. Of course, no one wants to block anything from anyone, or have butts-in-seats time. But I think at "some level" little bit of accountability is needed, I will need to have that uneasy conversation in some or the other way :|.
Quite frankly, the time in the office is some of my least productive time, and I'm sure that is the case for a lot of other people as well. Most of the real work gets done in the car driving in, or in the shower, or laying in bed trying to get to sleep.
The time to get worried is when you see that people are spending big chunks of time on LinkedIn or Indeed, or they start unexpectedly coming to work in attire that is one or two levels up from the normal day-to-day. The end is nigh when that starts to happen, and clamping down with poorly conceived attempts to wring more blood from the stone is a great way to accelerate the effect.
This is helpful. I check linked-in just to see what exists fairly frequently and dress in random attire depending on what laundry is done (sometimes really nice, sometimes shorts).
I'd never really considered it as something that meant that I would be leaving.
There are many resources describing how to have this conversation and do it well. I particularly liked Crucial Confrontations, now titled Crucial Accountability. I use its techniques daily with my team and it’s obvious that my boss uses the techniques with me.
Why do you think this? What metrics do you have to support this thought?
The one thing I wish managers everywhere would burn into their memory is this, "If you can't measure productivity outside of time spent in chair (looking at code), then you're not actually measuring productivity."
Productivity should be measured based on whether or not a team is meeting both their team goals as well as the team's individuals meeting their own goals. These goals need to be clear and realistic. A manager that is setting unrealistic, vague, or otherwise unclear goals is a problem.
When teams and individuals repeatedly meet their goals then you can increase the amount and/or difficulty. Or if it is an agile shop, the team should be increasing their "velocity" or whatever metric is used to determine work done, you shouldn't be left with too many empty days in a sprint. If you increase the amount of work or difficulty of work and these individuals are still looking at investment/finance websites after accomplishing their goals, then it is likely that you as the manager were under-utilizing the skills of the individuals on your team.
The other important thing to remember is that engineers get blocked. Sometimes more frequently than is desirable. When this happens, managers need to get involved in order to work with others in the organization to alleviate the block and potentially alter processes for the long-term.
I've been on a team with someone who basically does this -- spent half the day not working, usually selected a single low-difficulty task at a time from Jira to drag out over a couple days or a week, and often went home having put 30-45 minutes less time in per day than others on the team.
There was an unspoken but very palpable dissatisfaction from everyone else on the team. No one wanted to be the Bad Guy that calls them out on it, but the manager was unwilling to push them to do more, and a result they were able to get away with slacking off while others were actually putting in effort.
It was tremendously bad for morale. That's the biggest effect it had. All the other team members were bitter about the manager's unwillingness to keep the team on a level playing field. If you let this slide, you're ultimately letting everyone else on the team down.
The point absolutely shouldn't be to police someone's time; it should be to ensure that, if they have time to slack off, they should be pushed to take on more tasks during sprint planning. "That seems like it won't take too long, can you take on these two tasks as well?" is really all it takes.
This is actually a difficult problem, because there are two kinds of slackers: (1) the kind that work less but produce roughly the same as, or sometimes even more than, everyone else (i.e., smart but lazy), and (2) the kind that don't work or produce.
Dealing with (2) is absolutely the manager's job and such a person should be fired if attempts to identify and fix an underlying problem fail.
But (1) is really difficult. We have one of those right now, let's call him Bill. Our manager is hesitant to do anything about him, because the manager wants to incentivize productivity, not butt-in-chair time (we're all salaried, with no set hours). But Bill comes in 4 hours a day, seemingly works 1 of them, and spends the other 3 trying to distract everyone else with off-topic conversations. If he comes in at all.
Amazingly Bill does get work done, somehow. But it is terrible for morale. Worse, some of the junior members are starting to think they can get away with the same thing Bill is doing, and they can't. As the senior dev, the "big brother" to our manager's "dad", it falls to me to do something about it, but I have no idea what, if anything.
Manager fears that if he rewards finishing tasks quickly with more work, it will also harm morale and productivity. And there is a decent argument to be made for that. Having experienced that firsthand, it is highly irritating and incentivizes people to work slowly.
Additionally, in reply to GP, a manager that has great technical skills (10) and good managerial skills (1-9) must be as rare as a unicorn. Even a manager who started with good technical chops inevitably will lose them over time when they are an Outlook jockey all day. OTOH, I have seen plenty of otherwise decent managers who think their technical chops are good when they aren't. Pretty much the whole premise of Dilbert. The best realistic alternative seems to be managers who know their technical limits, delegate, and seek advice from their subordinates.
This. A person that gets their work done is not a slacker. I mean when I was in university there was a lad that did nothing, doodled in his notebook, smoked a lot of weed every day. And then aced every exam. He didn't need to appear "busy" to accomplish what he needed in his mind.
Likewise a lot of people work obliquely, letting problems percolate in their subconscious until it comes together and they can put together a solution quickly. These people may drive others crazy with how they work but that is not the profile of a slacker.
How do you define what "get work done" means? Everywhere I worked (as a developer) there has never been a situation where you can say "OK, there is nothing else useful to do today". So it obviously can't be that.
Is it related to seniority? Or even salary? As in, "we expect our senior/highly paid people do accomplish 2X (or whatever multiplier) amount of work that the junior members of the team do".
Or is it just related to how much work the developer estimates they can do? You say you will take these 4 tasks this week, everyone agrees that it's a reasonable amount (for your level/role) and then if you complete them your work is considered done.
Or is it something else completely? I'm interested in anyone's thoughts on this.
What I mean is that he produces an amount and quality of work that is comparable to other people at his experience and title level. In some ways better, in other ways worse, but on average, he is producing at least as much as his peers are. He's quite talented but lazy.
Obviously there is never a situation where you are out of work to do but some would say it is unfair to expect a talented person to produce more for the same salary and title as less talented people (I have no clear opinion on that, I'm only concerned about the morale issues). After all, the whole premise of being salaried rather than hourly is that you are paid to produce a certain amount of work, not work a certain amount of hours.
Normally a solution could be promotion but that is not an option right now.
This is a real problem on your team and it needs to be fixed, likely from several angles.
For Bill, at a minimum he needs an honest conversation regarding his impact on the rest of the team. If he's accomplishing his work but dragging everyone else down then he's not really being a net-positive member of the team. Bill needs to understand his impact and either work more, work remotely, or pick some side projects / technical investigations to keep himself busy. If he's that good, then part of his job is teaching and setting and example for others on the team.
Second, everyone else on the team needs to know the score. I've found that it's tremendously helpful for junior devs to understand that people on the team are not treated equally. "See Bill? He turns in great work and thus gets to work remotely / leave early / etc. He's been super consistent for a long time. You don't get to do that, because you haven't proven yourself yet. I expect X, Y, and Z from you. If you start turning in super-star work like Bill over a period of time, then you get special consideration too." I've had this conversation a number of times before, and the recipients were always very receptive because now they understand the rules.
I see the long discussion about micro-managing, but allow me to suggest that addressing that employee’s problem may not micro-managing at all. Micro-managing would be saying something if you ever saw Facebook on their screen even once, and doing it every time. But seeing a clear pattern, and feeling that their behavior is being noticed by all and affecting team morale, that is a real problem that needs to be addressed, and it’s not micro-managing to try and fix it.
In addition to the GP’s great list, good managers also tackle problems when they see them, immediately. Don’t let something slide because it’s awkward! Do attempt to fix the problem the first time without blaming or shaming the employee. You can save that for the second warning if the person doesn’t respond by fixing their behavior.
Here are a couple of ideas:
- Make sure that you or your company have set clear enough guidelines in the first place. Clearly the employee doesn’t think what he’s doing is wrong, therefore it might be a failure to set expectations for work time. Find out or decide what they are and say them in a way that makes clear that hours on social media while at work isn’t part of the deal for getting paid.
- Ask the employee to define what is a normal amount of social network time while at work, and then ask them to track their own time using a time tracking app. They might not be aware of how much time they’re spending. You could even ask the whole team to do it, but I would recommend not doing that as a way to avoid confronting the individual directly. The other people on your team won’t respect a move that affects them without directly dealing with the problem.
- Rather than accuse the employee, ask them how they feel at work and find out if there’s a motivation problem. Maybe they feel stuck. Sometimes a problem like this is due to the person not feeling like they fit it, not having or understanding their identity or role in the team/company.
Your job is not to be their friend, your job is to make them as effective a team as possible by identifying impediments to them becoming their best selves. If their work is being done, objectively you should know this, then your next task is to find ways to improve the with being done. If there's enough time to socialize then there's enough time for improvement. This is where you find time for projects that might not work, experiments that might improve quality, quantity, or just improve the overall experience for you customers and team members. There are tons of ways to be firm without micro managing.
Here's what I would recommend for you.
* Define the primary work that needs to be done. What is the purpose of your team? How effective are they at this?
* Identify the gaps. Where can you improve? What can you be doing better to delight your customers? What skills or process improvements can you add that will make things better?
* Who can you build to take your spot? You can't be promoted if no one could fill your role. This is hard and you'll get it wrong a few times, that's fine. Just keep working to build up your team
Complaints and gripes are common at first. No one likes change. Eventually it will become normal and your team will adjust. No need to micromanage, no need to complain about showing up on time unless it's crucial, i.e. a call center, just set your expectations and took forward the work starts with you though.
1 on 1s can vary a lot from person to person. I absolutely love my manager, but we’ve never had a 1 on 1 where she spelled out how I’m tracking towards goals. That’d be wayyyyy too formal for the nature of our working relationship. She just lets me know if I make mistakes as they happen, and relies on me to raise issues to her when it makes sense.
Now that I’m a manager as well, I have some team members who prefer to keep things less formal, in the same vein as me and my manager, and some that prefer more direct and organized feedback. I think a good manager needs to be adaptable and willing to match the working relationship that each person is most comfortable with.
"3. Pushes you for taking up bigger assignment even if you don't feel confident."
Oh, man, I'm leaving my current company exactly because most developers don't get that. Instead, a group of select few get all the assignments. It gets so frustrating and depressing in the long run.
I realize now that this is also why I left the company where I've worked the longest. Fun company, but at some point I noticed that my job was going to be to maintain all the legacy sites while a separate team was doing all the exciting cool new stuff.
Can relate. Tho, I will add that, often, I've realized how the onus actually lied with me in asking for more challenging work. In my case, I felt that I wasn't clear with what I expected.
Generally agree, except for:
10. Has a very good understanding of stack/technology/project you are working on
A manager doesn't need to understand details of the stack etc, for example they can delegate those decisions to tech leads or senior people. Manager does need to know enough tech to detect BS though! They need to be sufficiently aware of overall process to avoid counter productive measurements such as lines of code or some such (happened to me way back when).
One of my best managers, on a real crunch project, focussed on recruiting a great team, and then he ran high level interference and let us get on with it.
For me, my manager listens me, understand my problem/trouble and he acts accordingly. I am not going to lie, but there were few months in my job where I wasn't productive at all, fail to yield proper result due to my personal problems. He is always there to help me and did almost everything how i wanted to act/work in the job. Obviously, there were also lot of situations when i had to act myself according to him, but it happens after mutual discussion. He is one of the few biggest reason why I'm still in the same job since last 6 years. I always wish when i switch to some other company/start new company and the person who will going to command me (in some sense), i always wanted person like him or him.
This question has huge cultural variation. I think you need to specify the cultural region first.
Globally, in some places it's expected a boss micromanages everything, and in other places that's considered a sign of ineptitude as leader.
Within a smaller area, say, Europe you still get huge variation from egalitarian north to more hierarchial areas which affect quite a lot of things.
But, in the most general sense:
- is the person polite and respective? In any culture being 'bossy' and abusive is not a sweet character trait, it's a fault.
- does the person allow you to fail and grow?
- does the person listen to your suggestions and act on them?
- does the person give you honest feedback?
- does the person have your back? I.e. can you trust that politically they are on your side when dealing with the rest of the org?
- is the person honest?
Most of these are characterizations of what a regular well mannered person is. I suppose there are two types of bad bosses: the insecure one who would like to avoid all responsobility and negative interactions at all costs, who don't want to 'rock the boat' no matter what, and the bossy bosses who enjoy their position in the hierarchy and act like it in any way possible.
But, a good manager does not
need to be:
* warm and caring
* charismatic
* become your close friend - you are colleagues and professionals
* send you holiday greetings (unless that's considered a serious affront in your culture)
* same sex as you
* same culture as you
* old or young
* probably other things that you expect in a friendship but since being friends is not needed they don't matter
let's me give estimates for how long tickets will take me instead of giving me deadlines
doesn't interrupt my productivity with pointless meetings
keeps the team working as a team, resolving conflicts quickly
If I feel confident in the value I create, feel good about my productivity and ability to have an impact and have my voice heard I probably have a great manager.
If I feel dread when I see a notification on slack from my manager, before I even open it, if I go into a 1-1 with my manager feeling any amount of worry, if I come out of a 1-1 feeling bad or demotivated then I probably don't have a great manager. Or I need to look at myself to see what I'm doing wrong, who knows maybe I'm the one screwing up.
With a great manager you get lots of work done and feel good about yourself and your accomplishments. You get the right amount of recognition for your work (not more or less than you want). You understand what's expected from you and you feel free to express yourself.
The really difficult thing about this question is that it's not a 1 way street. If you don't work hard and have a good attitude, it will be hard to achieve anything. You need to have realistic expectations of how others will perceive what you do. You need to be able to balance the needs of others with your own needs (not too selfish and not too selfless). Your manager can help you with those things, but they can't actually do it for you.
I've been in a bad place at work many times in my career. The most important thing to ask yourself is: is it me, or is it my environment (including your manager)? Try to rule out as many of the "is it me" scenarios as you can. Try to put yourself in a good place. If you hit a wall where you are thinking, "I'm trying to do X, but Y is getting in my way and there is nothing I can do about Y", then you can see where the problem is. After you've "levelled yourself up" as much as you can, if you still feel constrained, then it's probably good to look for another place to go. I usually advise more junior people to stay in a job (even if it is not ideal) until they get to that point. It's easy to say, "That manager sucks! I can't work with them," and fly out the door having learned nothing. If you do that you run the risk of doing it over and over and over again.
When things start to work well, the thing you will hopefully notice is that it isn't just you. You can't perform to your maximum ability without a great manager (if you are in a job where a manager helps). Similarly, you can't perform to your maximum ability without working well with your coworkers. When it clicks, make sure to spend some time appreciating what those other people do for you. Everybody is different and I can't tell you exactly what it will be for you. The key is to work hard so that when you are in the situation where you can excel, that you are up to the task.
This is really good advice. Not many devs think about themselves when discussing their managers.
>> The really difficult thing about this question is that it's not a 1 way street. If you don't work hard and have a good attitude, it will be hard to achieve anything. You need to have realistic expectations of how others will perceive what you do. You need to be able to balance the needs of others with your own needs (not too selfish and not too selfless). Your manager can help you with those things, but they can't actually do it for you.
I would add that your company has other resources. You can reach out to HR, and you can take advantage of the interpersonal training that is likely available. Don't pressure yourself into believing that is all should have come naturally. If there is one thing we don't realize is how much accommodation we're afforded by the good people around us.
BTW, the way to approach HR or other managers about your management problem is to ask how you can better deal with the situation.
I have had a good and bad manager!
Here are the traits of each one
Bad One: Gets pissed off easily when something doesn't work, focuses on himself, doesn't like when people go on leaves while he himself enjoys vacation twice a year, discriminates, uses trickery to get things done, uses his ego in product decision making in case of a technical debate, not at all honest
Good one: Rarely looses his cool, may not write code but brilliant with products and product architecture overall, defeats you in technical debates using intelligence rather than his command and ego, is honest & loyal with you and so are you, is a boss but works with you like a team
When I started out I remember once I was staying late to the office coz I had some pending work, my manager stayed with me because he had good understanding of the problem and he dropped me off(I used to travel using companies transport) even though he had to take detour. Best product manager ever!
> doesn't like when people go on leaves while he himself enjoys vacation twice a year
the US sounds like a dystopia more and more everyday. sure, one could make the case that these work habits are a reason for your success, but who is really benefiting that success?
> the US sounds like a dystopia more and more everyday. sure, one could make the case that these work habits are a reason for your success, but who is really benefiting that success?
ahh it ocurred to me that i might be wrong, but repeatedly hearing from expat friends how americans find the number of vacation days in EU shocking, i decided to poke anyways
10 days is garbage even in the US. You take it, but you grumble about it. Partially, nobody in the US knows how to value vacation, I think. So even highly paid people kinda shrug at vacation and don't really factor it in.
>Partially, nobody in the US knows how to value vacation, I think.
It's partly engrained into the culture and partly to do with the prohibitively expensive means of travel.
For example, you could probably find a flight from London to Paris (return trip) for under 50 quid (for one). In the states, there's no way you're traveling that same distance and paying less than 300 quid, I'd say.
So, it's a combination of both but I think the expense contributes, or lends itself directly, to the social stigmatisation.
Just did some test trips of that distance, and for me (based in Chicago) it would be about $200 for flights of the same distance.
But that just takes me to St.Louis, Cincinnati, Detroit. I've been to all of them before, and there's some nice parts about them, but they're not a completely different culture like Paris is to London. Hell, St. Louis is just barely in a different state.
Pretty much all the chain stores are the same in every city you go to in the US, so it really enforces the sameness of the country. There's unique landmarks and museums and parks and local restaurants, but half the city is going to look the same as every other city.
Detroit is actually the closest comparison to London/Paris, because you can go through a tunnel at the edge of Detroit to Windsor Canada, and then you do get a bit of a culture shift.
But with Paris, further travel to other very different cultures are just some quick and cheap train rides away, whereas I just have more Canada.
28 Days is the minimum in the UK and I had well over 30 from day 1 when I started at RELEX (reed Elsevier).
I have also had a CTO who worked in the UK and The Valley and he said he got as much work out of the UK team as the one with only two weeks al in the states.
Its easier to get vacation in US compared to India. Managers in Indian IT companies have a target that x% of their team must be billable at any time (or at least that's what they tell us), and use that as reason to deny our leave requests.
But India has the same tech work culture like US but startups in India are worst, I was talking about the product based startup I worked at - cool tech, cool work but horrendous vacation policy!
Don't even ask me about vacation scene @ Service based Indian companies!
This is thankfully the case in 99% of situations, but I'd like to add on top of all the comments: technical proficiency is super important to me. Having a manager that doesn't understand the details (or even basics) of your work is super tedious to work with.
The idea that a company of any significant size can survive with a single manager, and that that manager might benefit from being having a small stature is laughable
They take care of you and take your problems seriously and act on it.
It feels like they are serving you instead of you serving them.
They care about your career path and act in the best interest for you.
They trust you.
They might even do things for you which you already forgot you asked for.
One concrete example: I asked what are the requirements for me becoming a senior developer. Next time we spoke, he did not come back with the answer, but my promotion on the way.
They aren't just a stooge for the next layer up, brought over from their boss's previous gig. Every executive has their "enforcer" guy/gal that they bring over so they themselves don't have to do the trench work of actually managing people. Seen this movie so many times.
I once had a manager try to recruit me for this purpose... literally tried to feed me what they wanted me to say when discussing implementation approaches - so they didn't look like the one trying to push an agenda... Hinted at a promotion if I played ball. When I gave my own opinion instead - they stopped talking to me entirely... So, yknow - disobedience had its upside.
As a manager myself, I'm going to post this evergreen I keep continuously revisiting every half a year. It's extremely concise while complete on every aspect I would have loved in a manager while being an employee. That's why it's my gold standard and the one thing I'm handing out to every new manager at our company.
The one thing I'd add on top of it from my last 5 years in CTO experience is:
- Communicate context as high level and as complete as possible.
If you say "I want that button in red" when you really mean "I want to increase sign-ups on this landing page", then what you REALLY mean and want to communicate is that you want as many customers as possible to find your valuable product.
Letting the team jump in with own ideas, even if you think you already have the best solution will make them grow in responsibility, accountability and self-confidence.
Likewise, ideas like a company/team "Mission" and "Strategy" are 90% used in bullshit contexts, but articulated correctly and repetitively, they make sure people run into the right direction, even if you don't follow every of their moves.
I read that bullet point as "Yes, you should still write code now and then, so that you're at least loosely familiar with the code base and challenges, but don't put yourself anywhere near the critical path for your product."
Stating the obvious, but: if nobody in your team is leaving and or forced to leave, you are likely to have a good one. If a lot of people go, you have a bad one.
219 comments
[ 4.5 ms ] story [ 258 ms ] threadBad one: lots of micromanagement, fear of making mistake, fear of looking bad to upper management, lack of technical insight, lack of business insight
Good one: little to no micromanagement(except in some cases), stilk has good technical insight and tries to stay up to date and can make reasonable discussion, always challenges you in good ways, tries to increase system efficiency by creating an environment where people can try many ideas without going off the track, good business insight - surprisingly many people dont know anything about business you are in.
The best managers try to understand different perspectives including yours. They must must must be good listeners, otherwise they can never truly understand what their reports really want.
The best managers understand what’s important for every member of their team and try to create environments conducive for their growth.
Being a good manager is a rare skill. Some are born with it; but it’s a skill that can be learned by those who listen. Most managers unfortunately have a messed up paradigm of themselves and how they relate to the world, and most will actually create more obstacles rather than clear them.
Could you elaborate on this ?
I've been managing for some times (years, small teams) but for the first time, I get a project that is 100% screwed : loss of control, some people hate me, the customer is becoming (righlty) ultra nervous... And I'm really asking myself if there are patterns in my behaviour which are clearly wrong. So relating to others might help a bit in figuring it out...
A good manager:
1. Make you feel comfortable in expressing your inputs
2. Bats for you in upper management without you knowing a bit of it
3. Pushes you for taking up bigger assignment even if you don't feel confident.
4. Never says immediate no for your ideas. Takes time & gives a thorough feedback5. Keeps you informed about your progress in 1x1's
6. Is open for feedback
7. Keeps things cool even if his/her back is on fire
8. Never micro manages
9. Always makes sure you get your credit & visibility for the contribution you have done
10. Has a very good understanding of stack/technology/project you are working on
In that particular example that you are replying to I would go a few "why" steps deeper though. Why are they not motivated enough by their work maybe? Are they not aware maybe how a higher than "normal" engaging in distracting activities will hinder their development and ultimately their career?
Slacking off once in a while is perfectly normal. It is rare to find the perfect situation of engineer's brains being constantly on fire, churning out great solutions because they are so motivated, in the right place at the right time being asked to and capable to do the right thing in the right way. No manager can make their team get closer to that nirvana alone - It needs a good environment but most of all an intact network of trust inside the team and the openness to speak about lack of motivation or other issues and trying to tackle it together.
Imho it is your task to help them become aware (calling out and other methods), reflect on the issues and gain the confidence that a change can be made that benefits them.
Openness is the key, but still I have seen team mates judging you when you talk about being non-productive at work. Better to talk about it 1-to-1 with your manager and avoid it during meetings where everyone is present.
Great point, and I think it needs elaboration. Particularly if increased slacking/FB use is something that has increased over time for a person, I would also take it as a sign that they are losing motivation. Banning FB or chastising them when you see them use it won't restore that motivation.
A lot of people go through phases like this. It can be symptomatic of:
- Overwork, stress, potential burnout
- A workload the person finds repetitive, not challenging, or uninteresting (maybe they need a change in task type)
- A feeling that work is not rewarded, possibly that person needs more praise or recognition, or even just interest from manager/others about what they are doing
- Person is lost or stuck on what to do next, the task may be too hard for them or they need to talk it over with someone. Many introverts especially will not ask for help when stuck.
> engineer's brains being constantly on fire
The elusive flow. In my experience flow states are most common when: (A) there is sufficient freedom to explore the problem space, (B) fairly rapid feedback, and (C) people are impressed by or interested in what I am doing. Success breeds success. I am convinced that one of the most important jobs of a manager is to cheerlead for the team and remind them why their work is interesting and valued. Who else is going to do that if not the manager? Feelings of success and confidence breeds more success.
Having people do quick demos or small green-field projects, even if it isn't exactly the top priority at the moment, then complimenting the result, is a good way to boost morale and interest in my experience.
How productive are they being
How productive do they think they should be
Once you have those answers, then you can have a conversation about making all 3 answers match.
If not, then you might need to crack the whip a little, but butts-in-seats time and blocking Facebook are incredibly ineffective ways to get people back on track. These are highly trained, competent people, presumably, so treat them like it, not like they are unruly third-graders.
The time to get worried is when you see that people are spending big chunks of time on LinkedIn or Indeed, or they start unexpectedly coming to work in attire that is one or two levels up from the normal day-to-day. The end is nigh when that starts to happen, and clamping down with poorly conceived attempts to wring more blood from the stone is a great way to accelerate the effect.
I'd never really considered it as something that meant that I would be leaving.
Why do you think this? What metrics do you have to support this thought?
The one thing I wish managers everywhere would burn into their memory is this, "If you can't measure productivity outside of time spent in chair (looking at code), then you're not actually measuring productivity."
Productivity should be measured based on whether or not a team is meeting both their team goals as well as the team's individuals meeting their own goals. These goals need to be clear and realistic. A manager that is setting unrealistic, vague, or otherwise unclear goals is a problem.
When teams and individuals repeatedly meet their goals then you can increase the amount and/or difficulty. Or if it is an agile shop, the team should be increasing their "velocity" or whatever metric is used to determine work done, you shouldn't be left with too many empty days in a sprint. If you increase the amount of work or difficulty of work and these individuals are still looking at investment/finance websites after accomplishing their goals, then it is likely that you as the manager were under-utilizing the skills of the individuals on your team.
The other important thing to remember is that engineers get blocked. Sometimes more frequently than is desirable. When this happens, managers need to get involved in order to work with others in the organization to alleviate the block and potentially alter processes for the long-term.
I've been on a team with someone who basically does this -- spent half the day not working, usually selected a single low-difficulty task at a time from Jira to drag out over a couple days or a week, and often went home having put 30-45 minutes less time in per day than others on the team.
There was an unspoken but very palpable dissatisfaction from everyone else on the team. No one wanted to be the Bad Guy that calls them out on it, but the manager was unwilling to push them to do more, and a result they were able to get away with slacking off while others were actually putting in effort.
It was tremendously bad for morale. That's the biggest effect it had. All the other team members were bitter about the manager's unwillingness to keep the team on a level playing field. If you let this slide, you're ultimately letting everyone else on the team down.
The point absolutely shouldn't be to police someone's time; it should be to ensure that, if they have time to slack off, they should be pushed to take on more tasks during sprint planning. "That seems like it won't take too long, can you take on these two tasks as well?" is really all it takes.
Dealing with (2) is absolutely the manager's job and such a person should be fired if attempts to identify and fix an underlying problem fail.
But (1) is really difficult. We have one of those right now, let's call him Bill. Our manager is hesitant to do anything about him, because the manager wants to incentivize productivity, not butt-in-chair time (we're all salaried, with no set hours). But Bill comes in 4 hours a day, seemingly works 1 of them, and spends the other 3 trying to distract everyone else with off-topic conversations. If he comes in at all.
Amazingly Bill does get work done, somehow. But it is terrible for morale. Worse, some of the junior members are starting to think they can get away with the same thing Bill is doing, and they can't. As the senior dev, the "big brother" to our manager's "dad", it falls to me to do something about it, but I have no idea what, if anything.
Manager fears that if he rewards finishing tasks quickly with more work, it will also harm morale and productivity. And there is a decent argument to be made for that. Having experienced that firsthand, it is highly irritating and incentivizes people to work slowly.
Additionally, in reply to GP, a manager that has great technical skills (10) and good managerial skills (1-9) must be as rare as a unicorn. Even a manager who started with good technical chops inevitably will lose them over time when they are an Outlook jockey all day. OTOH, I have seen plenty of otherwise decent managers who think their technical chops are good when they aren't. Pretty much the whole premise of Dilbert. The best realistic alternative seems to be managers who know their technical limits, delegate, and seek advice from their subordinates.
Likewise a lot of people work obliquely, letting problems percolate in their subconscious until it comes together and they can put together a solution quickly. These people may drive others crazy with how they work but that is not the profile of a slacker.
How do you define what "get work done" means? Everywhere I worked (as a developer) there has never been a situation where you can say "OK, there is nothing else useful to do today". So it obviously can't be that.
Is it related to seniority? Or even salary? As in, "we expect our senior/highly paid people do accomplish 2X (or whatever multiplier) amount of work that the junior members of the team do".
Or is it just related to how much work the developer estimates they can do? You say you will take these 4 tasks this week, everyone agrees that it's a reasonable amount (for your level/role) and then if you complete them your work is considered done.
Or is it something else completely? I'm interested in anyone's thoughts on this.
Obviously there is never a situation where you are out of work to do but some would say it is unfair to expect a talented person to produce more for the same salary and title as less talented people (I have no clear opinion on that, I'm only concerned about the morale issues). After all, the whole premise of being salaried rather than hourly is that you are paid to produce a certain amount of work, not work a certain amount of hours.
Normally a solution could be promotion but that is not an option right now.
For Bill, at a minimum he needs an honest conversation regarding his impact on the rest of the team. If he's accomplishing his work but dragging everyone else down then he's not really being a net-positive member of the team. Bill needs to understand his impact and either work more, work remotely, or pick some side projects / technical investigations to keep himself busy. If he's that good, then part of his job is teaching and setting and example for others on the team.
Second, everyone else on the team needs to know the score. I've found that it's tremendously helpful for junior devs to understand that people on the team are not treated equally. "See Bill? He turns in great work and thus gets to work remotely / leave early / etc. He's been super consistent for a long time. You don't get to do that, because you haven't proven yourself yet. I expect X, Y, and Z from you. If you start turning in super-star work like Bill over a period of time, then you get special consideration too." I've had this conversation a number of times before, and the recipients were always very receptive because now they understand the rules.
In addition to the GP’s great list, good managers also tackle problems when they see them, immediately. Don’t let something slide because it’s awkward! Do attempt to fix the problem the first time without blaming or shaming the employee. You can save that for the second warning if the person doesn’t respond by fixing their behavior.
Here are a couple of ideas:
- Make sure that you or your company have set clear enough guidelines in the first place. Clearly the employee doesn’t think what he’s doing is wrong, therefore it might be a failure to set expectations for work time. Find out or decide what they are and say them in a way that makes clear that hours on social media while at work isn’t part of the deal for getting paid.
- Ask the employee to define what is a normal amount of social network time while at work, and then ask them to track their own time using a time tracking app. They might not be aware of how much time they’re spending. You could even ask the whole team to do it, but I would recommend not doing that as a way to avoid confronting the individual directly. The other people on your team won’t respect a move that affects them without directly dealing with the problem.
- Rather than accuse the employee, ask them how they feel at work and find out if there’s a motivation problem. Maybe they feel stuck. Sometimes a problem like this is due to the person not feeling like they fit it, not having or understanding their identity or role in the team/company.
Here's what I would recommend for you.
* Define the primary work that needs to be done. What is the purpose of your team? How effective are they at this?
* Identify the gaps. Where can you improve? What can you be doing better to delight your customers? What skills or process improvements can you add that will make things better?
* Who can you build to take your spot? You can't be promoted if no one could fill your role. This is hard and you'll get it wrong a few times, that's fine. Just keep working to build up your team
Complaints and gripes are common at first. No one likes change. Eventually it will become normal and your team will adjust. No need to micromanage, no need to complain about showing up on time unless it's crucial, i.e. a call center, just set your expectations and took forward the work starts with you though.
1 on 1s can vary a lot from person to person. I absolutely love my manager, but we’ve never had a 1 on 1 where she spelled out how I’m tracking towards goals. That’d be wayyyyy too formal for the nature of our working relationship. She just lets me know if I make mistakes as they happen, and relies on me to raise issues to her when it makes sense.
Now that I’m a manager as well, I have some team members who prefer to keep things less formal, in the same vein as me and my manager, and some that prefer more direct and organized feedback. I think a good manager needs to be adaptable and willing to match the working relationship that each person is most comfortable with.
Oh, man, I'm leaving my current company exactly because most developers don't get that. Instead, a group of select few get all the assignments. It gets so frustrating and depressing in the long run.
A manager doesn't need to understand details of the stack etc, for example they can delegate those decisions to tech leads or senior people. Manager does need to know enough tech to detect BS though! They need to be sufficiently aware of overall process to avoid counter productive measurements such as lines of code or some such (happened to me way back when).
One of my best managers, on a real crunch project, focussed on recruiting a great team, and then he ran high level interference and let us get on with it.
For me, my manager listens me, understand my problem/trouble and he acts accordingly. I am not going to lie, but there were few months in my job where I wasn't productive at all, fail to yield proper result due to my personal problems. He is always there to help me and did almost everything how i wanted to act/work in the job. Obviously, there were also lot of situations when i had to act myself according to him, but it happens after mutual discussion. He is one of the few biggest reason why I'm still in the same job since last 6 years. I always wish when i switch to some other company/start new company and the person who will going to command me (in some sense), i always wanted person like him or him.
Globally, in some places it's expected a boss micromanages everything, and in other places that's considered a sign of ineptitude as leader.
Within a smaller area, say, Europe you still get huge variation from egalitarian north to more hierarchial areas which affect quite a lot of things.
But, in the most general sense:
- is the person polite and respective? In any culture being 'bossy' and abusive is not a sweet character trait, it's a fault.
- does the person allow you to fail and grow?
- does the person listen to your suggestions and act on them?
- does the person give you honest feedback?
- does the person have your back? I.e. can you trust that politically they are on your side when dealing with the rest of the org?
- is the person honest?
Most of these are characterizations of what a regular well mannered person is. I suppose there are two types of bad bosses: the insecure one who would like to avoid all responsobility and negative interactions at all costs, who don't want to 'rock the boat' no matter what, and the bossy bosses who enjoy their position in the hierarchy and act like it in any way possible.
But, a good manager does not need to be:
* warm and caring
* charismatic
* become your close friend - you are colleagues and professionals
* send you holiday greetings (unless that's considered a serious affront in your culture)
* same sex as you
* same culture as you
* old or young
* probably other things that you expect in a friendship but since being friends is not needed they don't matter
Good managers focus on you.
let's me give estimates for how long tickets will take me instead of giving me deadlines
doesn't interrupt my productivity with pointless meetings
keeps the team working as a team, resolving conflicts quickly
If I feel confident in the value I create, feel good about my productivity and ability to have an impact and have my voice heard I probably have a great manager.
If I feel dread when I see a notification on slack from my manager, before I even open it, if I go into a 1-1 with my manager feeling any amount of worry, if I come out of a 1-1 feeling bad or demotivated then I probably don't have a great manager. Or I need to look at myself to see what I'm doing wrong, who knows maybe I'm the one screwing up.
The really difficult thing about this question is that it's not a 1 way street. If you don't work hard and have a good attitude, it will be hard to achieve anything. You need to have realistic expectations of how others will perceive what you do. You need to be able to balance the needs of others with your own needs (not too selfish and not too selfless). Your manager can help you with those things, but they can't actually do it for you.
I've been in a bad place at work many times in my career. The most important thing to ask yourself is: is it me, or is it my environment (including your manager)? Try to rule out as many of the "is it me" scenarios as you can. Try to put yourself in a good place. If you hit a wall where you are thinking, "I'm trying to do X, but Y is getting in my way and there is nothing I can do about Y", then you can see where the problem is. After you've "levelled yourself up" as much as you can, if you still feel constrained, then it's probably good to look for another place to go. I usually advise more junior people to stay in a job (even if it is not ideal) until they get to that point. It's easy to say, "That manager sucks! I can't work with them," and fly out the door having learned nothing. If you do that you run the risk of doing it over and over and over again.
When things start to work well, the thing you will hopefully notice is that it isn't just you. You can't perform to your maximum ability without a great manager (if you are in a job where a manager helps). Similarly, you can't perform to your maximum ability without working well with your coworkers. When it clicks, make sure to spend some time appreciating what those other people do for you. Everybody is different and I can't tell you exactly what it will be for you. The key is to work hard so that when you are in the situation where you can excel, that you are up to the task.
>> The really difficult thing about this question is that it's not a 1 way street. If you don't work hard and have a good attitude, it will be hard to achieve anything. You need to have realistic expectations of how others will perceive what you do. You need to be able to balance the needs of others with your own needs (not too selfish and not too selfless). Your manager can help you with those things, but they can't actually do it for you.
This. In my personal experience, connecting the dots looking back, this has been what made things good with a manager.
I would add that your company has other resources. You can reach out to HR, and you can take advantage of the interpersonal training that is likely available. Don't pressure yourself into believing that is all should have come naturally. If there is one thing we don't realize is how much accommodation we're afforded by the good people around us.
BTW, the way to approach HR or other managers about your management problem is to ask how you can better deal with the situation.
Bad One: Gets pissed off easily when something doesn't work, focuses on himself, doesn't like when people go on leaves while he himself enjoys vacation twice a year, discriminates, uses trickery to get things done, uses his ego in product decision making in case of a technical debate, not at all honest
Good one: Rarely looses his cool, may not write code but brilliant with products and product architecture overall, defeats you in technical debates using intelligence rather than his command and ego, is honest & loyal with you and so are you, is a boss but works with you like a team
When I started out I remember once I was staying late to the office coz I had some pending work, my manager stayed with me because he had good understanding of the problem and he dropped me off(I used to travel using companies transport) even though he had to take detour. Best product manager ever!
the US sounds like a dystopia more and more everyday. sure, one could make the case that these work habits are a reason for your success, but who is really benefiting that success?
Talking about India not US!
It's partly engrained into the culture and partly to do with the prohibitively expensive means of travel.
For example, you could probably find a flight from London to Paris (return trip) for under 50 quid (for one). In the states, there's no way you're traveling that same distance and paying less than 300 quid, I'd say.
So, it's a combination of both but I think the expense contributes, or lends itself directly, to the social stigmatisation.
But that just takes me to St.Louis, Cincinnati, Detroit. I've been to all of them before, and there's some nice parts about them, but they're not a completely different culture like Paris is to London. Hell, St. Louis is just barely in a different state.
Pretty much all the chain stores are the same in every city you go to in the US, so it really enforces the sameness of the country. There's unique landmarks and museums and parks and local restaurants, but half the city is going to look the same as every other city.
Detroit is actually the closest comparison to London/Paris, because you can go through a tunnel at the edge of Detroit to Windsor Canada, and then you do get a bit of a culture shift.
But with Paris, further travel to other very different cultures are just some quick and cheap train rides away, whereas I just have more Canada.
I have also had a CTO who worked in the UK and The Valley and he said he got as much work out of the UK team as the one with only two weeks al in the states.
Even the best manager can only do so much if the company is awful.
- Takes your concerns seriously.
- Recognized your strengths and successes.
- Gives constructive criticism tactfully.
- Trusts the right people on decisions that affect the team.
One concrete example: I asked what are the requirements for me becoming a senior developer. Next time we spoke, he did not come back with the answer, but my promotion on the way.
https://www.defmacro.org/2014/10/03/engman.html
Relevant HN thread:
https://news.ycombinator.com/item?id=14381264
The one thing I'd add on top of it from my last 5 years in CTO experience is:
- Communicate context as high level and as complete as possible.
If you say "I want that button in red" when you really mean "I want to increase sign-ups on this landing page", then what you REALLY mean and want to communicate is that you want as many customers as possible to find your valuable product.
Letting the team jump in with own ideas, even if you think you already have the best solution will make them grow in responsibility, accountability and self-confidence.
Likewise, ideas like a company/team "Mission" and "Strategy" are 90% used in bullshit contexts, but articulated correctly and repetitively, they make sure people run into the right direction, even if you don't follow every of their moves.
Great article, I can see why you revisit this frequently :)
Should "write" be "read" here? I'm not sure I understand this point.
Gosh, that is so true and so hard at the same time.