Ask HN: Your lead developer got bored. What to do?
Imagine you have a company with 50 people and several development teams. One of the best developers get bored and want to leave a company if there will be no interesting tasks. What you will do in this case? try to retain him somehow? let him go?
94 comments
[ 3.2 ms ] story [ 163 ms ] threadMy first scala - play framework project, first toy that tried to do something real, was an excruciatingly mind numbingly boring engineering raw data form entry page (like only the C and R letters of CRUD). Playing with a new framework for a demo/mock up was huge fun.
Beware of the danger of the well known business anti-pattern where the "mock up" "demo" magically gets promoted to "production" when things spiral out of control and then things really hit the fan when it breaks or the requirements expand beyond all imagination. "This temporary mock up will be deleted on June 1st" or whatever probably needs to be on every page and in every header.
Sounds to me like this is a deeper issue around control and management and boring is just the excuse to not work on something s/he doesn't appreciate being "arbitrarily" forced to work on. (Do they understand and agree with the company focus? Understand being the more important word).
This also makes me wonder if there is a communication barrier that prevents genuine dialogue.
My gut tells me that you probably won't agree with me or change...so it's probably best for both of you to let him/her go.
Not only will he appreciate this, but it will send a positive message to the other 50 who are wondering if they will have an interesting career or if they should be passive looking for other opportunities.
Are you sure the management / communication / teamwork is not the problem ? You may be setting expectations at the level that cannot be reached with your current team and management. Maybe you should set easier targets so that everybody stays motivated after reaching said targets.
I think that your idea of "soon" is very different from the rest of the world.
To bring the 20% rule back takes 1 minute: one email sent to everybody that says just that.
A bit less water cooler time talking about sports to avoid something boring, a bit less HN time, combined with fresh new perspectives and new techniques and new ideas can easily result in a net productivity gain. If as per other posts you do strict 40/wk then we all know that at 4:45pm most folks are stalling till 5 so if you officially let him whip out a book on cool new technology you've lost exactly nothing while gaining quite a bit for free. Only a madman or a fool would "start something big" 15 minutes before going home and you claim he's skilled so we can assume nothing of huge importance would be lost by whipping out a book at 4:45pm. Or on the other side of the clock we all know time is spent spinning up, some folks delete emails, some gossip or talk, if he spins up by reading "cool new tech book" or fooling around in another language for 15 minutes to get into the flow, again, you've lost nothing while gaining quite a bit.
Get there faster by going slower, kind of thing. If you're lost in the woods, running as fast as you can just makes you die tired, so slow down.
If it is just grunt manual labor like data entry, then it is probably too boring to be fixed under any circumstances, but you claim in other posts to never hire juniors etc so by your own definition you can't be that bad... probably.
I read your comment of only requiring 40 hour work weeks. That shows you're aware, I wish more employers had that outlook.
This may not be popular, but I think you do need to make an exception to the rule, while maintaining it for the other 49.
People will understand if the the Lead Developer has "research projects" that stay undefined. It might even accidentally inspire some to want to be the Lead Developer.
I would look at providing more freedom for creativity. If you know the developer well enough, you know it what angle that creativity could take. It could be a new language, it could be new technology challenge, or it could be outside of tech and doing more business/marketing/sales stuff.
Dan Pink had a great talk/video where he talks about what people need: Autonomy, Mastery, Purpose. http://www.brainpickings.org/2013/05/09/daniel-pink-drive-rs...
Try providing more of these things and boredom should go away.
The word is probably ennui.
Imagine that your work 9 to 5 is creating some CRUD forms, and your company gets payed because you create those forms so, start investigating by your own is not a chance anyhow -> YOU GET BORED and you can not change the situation just by yourself.
(This works better if he's older, if he's in his 20s and bored then you should already start looking for his replacement)
Someone suggested 20% time, your response was to say that it was on hold for a year. Someone else suggested letting him work on something he finds interesting for a while, you say that there are a few things he'd like to do, but they're not 100% aligned with what the company wants to do.
Ultimately, you need to decide just how much this person means to you. Do you want their attention 4 days a week, with 1 day being spent on something they find interesting, or do you want them 0 days a week. Either is valid, but you're going to have to choose.
you could compromise, one day every other week?
Look at it this way: You can give him 20% time or he'll give you 0%.
Since you seem to be intent on being a robot with regard to personnel decisions, there is only one question to answer: Is your company going to go down the tubes if he/she leaves? If so, do what you can to keep them. If not, cut ties and move on.
As an aside, I find it humorous that you're consulting an anonymous online message board for this type of advice. Surely you've handled more difficult problems than this in growing to a 50 person company?
Perhaps importantly: maybe "lead" roles no longer have any meaning, but if you are determining the engineering schedule months in advance, in enough detail for him to know it won't be interesting to work on, he could be frustrated by the micromanagement (whether it is real or only perceived is something I cannot know).
Does this seem fair?
Why is it fair to increase the wage so slowly? Either less experienced developers are not worth the money to begin with or someone, somewhere has an idea of what the max cap of a developer is, and sticks to it.
Anyway, you're asking a room full of developers what they would want and they're telling you. 20% time is a solution that works. Toiling away on the same problem day after day sucks and it gets boring. 20% time breaks up the drudgery.
I suspect that you don't want to solve the developer's problems though, just your own.
Management is hard. We're all learners when it comes to working with people, especially when some of the people are smarter than we are. Keep learning!
Personal attacks are not allowed on Hacker News.
People leave for a lot of reasons, and not having opportunities to grow is one of them.
You want to be equal? Everyone with the title Senior Staff Engineer gets to work on super awesome forward looking new space car. Or maybe just 20% time and a ton more stock options.
As far as "special treatment" goes, why not extend this to all the leads? It seems reasonable to have these folks pushing the technical boundaries for the company.
In which case let them leave and replace them with another equal developer. Though I am confused as to why you call them one of your best and yet say all developers are equal.
As a practical example, Dynamighty listed every full time Dynamighty worker in alphabetical order on CounterSpy, but then called out individuals by their major contributions within the longer credits. It's not a perfect system, but it provided a good balance between giving due credit to folks who worked long hours for equity and those who were making normal salaries the whole time.
And all developers are not equal, but you know this. Treating them as such is destructive.
And it doesn't have to start at 20%; if your core product can't afford everybody to take 20% time toward interesting things, then 10%.
Give him some opportunities to pitch some ideas, contribute, or find ways to let the developer be invested in the work. If that is not possible, maybe give him some leeway to do some personal projects or side projects for the company.
Even if you're doing your own project, there will be a bunch of boring unpleasant work.
In my experience, every time someone leaves another person blossoms and steps up. I've seen "irreplaceable" developers come and go, they were all replaced.
Also, didn't Google Maps and also Google Mail, come from a bored developers 20% time?
In line with other suggestions, if you can afford it, give him free reign to do what he wants with a budget too. It may well be the best thing you ever do if he really is as good as you say he is.
- Give them flexi-hours. They can come and go as they please so long as either a minimum amount of time is worked or better still they are measured on output and not on time
- Give them the opportunity to work on research and development (aka 20% time)
- Give them the opportunity to work on problems that your company has. If you have 50 people and several development teams I'm sure there are lots of internal problems this developer could help address
- Give your developer people to mentor. S/he might relish the opportunity to help others raise their game to his/her levels of awesomeness
If none of that hits the spot, find out what motivates your developer and work out how to align his/her motivations to the output of the work they go on to do.
Above average developers are not easy to find. You need to make sure that you've done everything in your power to keep your best developers onboard as replacing them is not easy.
A note to employers around this, let the developer choose the project - even if it has to be relate-able to the company in some way. If it's a big company I'd love to go to other areas of the company, meet people in other areas of work and ask them about their work flow, problems they encounter day-to-day and if it's interesting and tech-solvable - build a solution!
Or if your devs aren't as "go-get-em" as I appear to be, offer a few examples that you've researched and offer them the opportunity to do the above.
Then he'll feel that his role is more important than just do-it-all coder.
Alternatively boost his salary. Don't become the next statistical corp where the only way to get raise is to leave.
https://hbr.org/2013/04/does-money-really-affect-motiv
"Other than its functional exchange value, pay is a psychological symbol, and the meaning of money is largely subjective. For example, there are marked individual differences in people’s tendency to think or worry about money, and different people value money for different reasons (e.g., as a means to power, freedom, security, or love). If companies want to motivate their workforce, they need to understand what their employees really value — and the answer is bound differ for each individual. Research shows that different values are differentially linked to engagement. For example, income goals based on the pursuit of power, narcissism, or overcoming self-doubt are less rewarding and effective than income goals based on the pursuit of security, family support, and leisure time. Perhaps it is time to compensate people not only according to what they know or do, but also for what they want."
I have seen more than 10 or 15 cases of developers who were hired to develop and evolve a product and get "bored" after they learn the new tech that brought them to the company/project and use this as an excuse to not finish the project or keep running the product/company.
I'm not saying that keeping working with new tech or new projects is a bad thing, but it is usually a bad thing for companies to keep such people when what they need is someone to help the company grows and move forward.
I would suggest you to offer him a position where he could use his intelligence and tech skills to help solve real problems for the company and not only program. A few examples:
* Put him in touch with your operational people - If you an e-commerce that ships physical products, let him known and learn how logistics works and what pain points they have
* Make him participate in marketing/product growing meetings and let him help bring more money in
* Enable him to help other developers or fix major problems in the product - not technical problems by themselves, but real problems that slow down the development
If he doesn't want to help maybe he is not a keeper and should be better off doing consultancy/freelancing projects where usually there is not much responsibility once the project is finished.
I see great value on being technically safe and capable, but most of the time what is most valuable is people eager to work and make things go forward for the company.
My guess is that those developers saw the clusterfuck in your company. And instantly decided "Fuck this bullshit. I don't get paid enough to care.".
Without loyalty, or at the very least aligned incentives, you will never get the most business value out of developers.
Early on in my career I was the sole dev looking after a large legacy system. For 4 years I worked really hard and added a lot of business value. I was not rewarded at all; No promotions, minimal pay increases, no respect etc. All the while my tech skills were getting out of alignment with what the industry was paying well for.
How did you end up getting your next job?
I was in that situation once and the main reason that I was able to make the next move was because I was working on a side project which gave me the experience.
If a company doesn't respect, value, and trust their developers it is very difficult to change their minds (as a developer). I tried for over a year.
I've found it is far simpler and more profitable to focus on the skills the market values rather than focusing on what is best for a specific business.
There's more to being a lead developer than just having coding skills and technical knowledge. If he is immature enough that getting bored gets in the way of his work ethic, he has no business being a lead developer at all.
On top of that, if in your entire 50 person company there is not even 1 task that interests him, might not be such a good fit in general.
So the dev is in a dead end role, "forced" to spend his days working on pointless/less important features. It's no surprise that he is bored/frustrated.
Going by that alone, it sounds like there are serious problems. A year is a LONG time in development world. If I knew I was going to be working on one product for a year--and clearly that product was having problems, I'd look for another job too.
You want your developer to stay there, but only on your terms. Your developer is saying that they need an interesting challenge, but you don't have any to give, and you've taken away a significant perk for the good of "the company." That's a big problem, and unless I miss my guess you're going to start losing other developers as well. A company is made up of people, and if your people aren't happy then they are going to go elsewhere.
I have personally been in a situation where I quit from a company of similar size because I got bored. First of all, the work wasn't all that challenging on a technical level even though we got to work with the latest bleeding edge technologies. The second reason was a lack of room for career advancement due to a very flat hierarchy. The third reason was a lack of strategic vision for the company itself. Essentially, I was stuck in a dead end position with basically no input on the company's strategy. I did propose some ideas that were later successfully implemented by other companies but ignored or delayed by mine which was highly frustrating. So, in the end, their attempts to retain me (and even re-hire me a year later) failed. I actually liked the team, but the negatives outweighed the positives.
When thinking about this episode some years later, an idea came to me. What I really wanted was to have more input, more responsibilities and a way to fix the problems I saw on several levels of the company. What I should have asked for was a transfer to product management or possibly a dual role in PM and development. At the time our product managers were exclusively people with business backgrounds who often had problems understanding the technical details as well as possibilities and limitations. With my technical background I would have been able to help bridge that gap. I would have also had the management access and strategic input that I wanted and would have most likely been a more valuable asset in that position than as a pure developer. But I didn't think of this and neither did they.
The bottom line is that sometimes it can make sense to not only think vertically about possible career moves but also horizontally. You may not have a choice when it comes to losing your developer, but said developer may be even more valuable and happier in a new role.