"Money is a motivating factor for most of us, but assuming comparable pay, what is it that makes some companies attract and retain developers while others churn through them like toilet paper?"
My take on that would be that paying more would almost certainly help. Companies who are wondering why they can't seem to find or retain top talent should most likely not wonder about all the soft factors but pay more.
There is this almost comical aspect to companies hand-wringing about how they tried everything, except paying closer to top of the market.
The first time I started looking for my next job I realized what this guy was saying, some half a decade after him. I didn't want to work for the sort of team idealized on HN: good pay, 9-5, fixed vacation days, no social events, private offices, clear spec to code to.
I wanted the high variance outcome. I say this because usually when HN threads with titles like this come out an army of people descend to say "No! This is not what developers want. They want cash".
I wanted to work in a competitive atmosphere where we had to demonstrate to the market that our stuff was good. I wanted to be an engineer but not a spec-to-code converter. I wanted unlimited vacation. I wanted my coworkers to be fine being my friends (though I have friends elsewhere too). And I didn't want private offices or cubicles.
But what I really really really wanted:
* Trust, and from that, autonomy
* Coworkers I could trust
* Recognition of achievement
* Intelligence org-wide in decision making. And true openness in this.
* Rapidity in development
* Interesting technical problems
I actually found a place I liked and it didn't have all the things but it had a lot.
I thoroughly enjoyed working there and would happily "work" in the shower. None of the scare factors materialized. It actually worked really well. Many of the people I knew there senior to me went on to found other companies and I can see that they took a lot of the culture with them.
There are lots of 9-5ers and there are lots of companies for them, but the best companies for the other kind are in the Bay and I love it for this.
It's funny but when you have a good management team, so many worries go away. You don't have to protect the downside of "what if the company doesn't actually respect 'unlimited' vacation?" Or "What if they won't buy me the new Tesla GPU for my work?" A good management team won't nickel and dime you and they know when to say "Cash is tough now, we can't expand that cluster. Let's try to make the job more efficient" (less relevant now when you don't have this massive necessary capital expenditure and have some elasticity, but it was back then). They won't screw you on options because they aren't planning for this to be their only success.
In fact, now I'm fully confident that the leadership is everything when it comes to a startup. Life's too short to downside protect. It's a hell of a lot of fun to swing for the fences.
As a solo developers, i have no team. I have no time (it means i need to deliver product as soon as possible). I have no tool (that means i only use what i discovered myself, because i have no consultant).
The only thing i want, is to reuse my code. To save everything
above. Frameworks exist for a reason.
I would agree that I’m willing to take a slightly lesser pay for having a private office or at least a cube. I have never felt comfortable working in an open floor plan office.
But, somehow, the non-engineers who make these decisions praise the open office and think it is best for us. Meanwhile, they always get themselves the corner and most private desk, and some even have their own cubicles and private offices.
I was curious about the actual cost of doing this.
Average annual rent $/sqft = $30 (US), $40 (Seattle), $70 (SF/NY) [1]
Average private office space: 196 sqft [2]
Average cubical: 90 sqft [2]
Price of upgrade: $3180 (US), $4240 (Seattle), $7420 (SF/NY)
Another way of looking at this is ~$2-4/hour.
This ignores that if you did actually give every developer an office, prices would increase due to lack of space. It also likely ignores a slew of other factors from the real world.
After 10+ years working in software project teams of various sizes, the thing I want more than money is to work solo. No peers. No project managers, product owners or scrum masters.
Working in a team is extremely frustrating. It's like artists working together to produce a portrait. No matter how good the artists are, the process would be mired in conflict and compromise and produce a mediocre result.
Does this not imply that your "way" is the "correct way"? As frustrating as teams, peers, and different stakeholders are, they make the thing we are building better. Yes, group think doesn't produce the best results but it is no worse than someone building something in solitude without outside input.
> Does this not imply that your "way" is the "correct way"?
Not at all. There are many ways to get the same job done. Ideally, the best ideas would win. In my experience, however, the hierarchy always wins and creativity is punished.
> it is no worse than someone building something in solitude without outside input.
In a solo dev project, outside input comes directly from stakeholders.
I'm not a developer, but work as a consultant in a digital agency. I mostly help define what is going to be built, and why. I can relate to what you're saying.
There's no one true way of doing things, but I'm pretty certain doing it in teams is more often than not a wrong way. The mediocrity of the end result is very frustrating indeed. It's as if one and one become 0.5 instead of three.
10 comments
[ 199 ms ] story [ 3199 ms ] threadMy take on that would be that paying more would almost certainly help. Companies who are wondering why they can't seem to find or retain top talent should most likely not wonder about all the soft factors but pay more.
There is this almost comical aspect to companies hand-wringing about how they tried everything, except paying closer to top of the market.
I wanted the high variance outcome. I say this because usually when HN threads with titles like this come out an army of people descend to say "No! This is not what developers want. They want cash".
I wanted to work in a competitive atmosphere where we had to demonstrate to the market that our stuff was good. I wanted to be an engineer but not a spec-to-code converter. I wanted unlimited vacation. I wanted my coworkers to be fine being my friends (though I have friends elsewhere too). And I didn't want private offices or cubicles.
But what I really really really wanted:
* Trust, and from that, autonomy
* Coworkers I could trust
* Recognition of achievement
* Intelligence org-wide in decision making. And true openness in this.
* Rapidity in development
* Interesting technical problems
I actually found a place I liked and it didn't have all the things but it had a lot.
I thoroughly enjoyed working there and would happily "work" in the shower. None of the scare factors materialized. It actually worked really well. Many of the people I knew there senior to me went on to found other companies and I can see that they took a lot of the culture with them.
There are lots of 9-5ers and there are lots of companies for them, but the best companies for the other kind are in the Bay and I love it for this.
It's funny but when you have a good management team, so many worries go away. You don't have to protect the downside of "what if the company doesn't actually respect 'unlimited' vacation?" Or "What if they won't buy me the new Tesla GPU for my work?" A good management team won't nickel and dime you and they know when to say "Cash is tough now, we can't expand that cluster. Let's try to make the job more efficient" (less relevant now when you don't have this massive necessary capital expenditure and have some elasticity, but it was back then). They won't screw you on options because they aren't planning for this to be their only success.
In fact, now I'm fully confident that the leadership is everything when it comes to a startup. Life's too short to downside protect. It's a hell of a lot of fun to swing for the fences.
The only thing i want, is to reuse my code. To save everything above. Frameworks exist for a reason.
But, somehow, the non-engineers who make these decisions praise the open office and think it is best for us. Meanwhile, they always get themselves the corner and most private desk, and some even have their own cubicles and private offices.
This ignores that if you did actually give every developer an office, prices would increase due to lack of space. It also likely ignores a slew of other factors from the real world.
[1]: https://www.seattletimes.com/business/real-estate/seattle-re... [2]: https://www.thercfgroup.com/files/resources/Revisiting-offic...
Working in a team is extremely frustrating. It's like artists working together to produce a portrait. No matter how good the artists are, the process would be mired in conflict and compromise and produce a mediocre result.
Not at all. There are many ways to get the same job done. Ideally, the best ideas would win. In my experience, however, the hierarchy always wins and creativity is punished.
> it is no worse than someone building something in solitude without outside input.
In a solo dev project, outside input comes directly from stakeholders.
There's no one true way of doing things, but I'm pretty certain doing it in teams is more often than not a wrong way. The mediocrity of the end result is very frustrating indeed. It's as if one and one become 0.5 instead of three.