2 ms·
>I love writing code so I don't need to be motivated by the end product. That might make me different from others. Imo that just makes you more self-aware rega
by filoleg 6y ago
>I love writing code so I don't need to be motivated by the end product. That might make me different from others.
Imo that just makes you more self-aware regarding what makes you motivated/excited, not necessarily that it is just a minority of engineers who are the same way. It's just that most people don't really understand/realize what actually makes them tick.
After graduating college with not much experience, I thought that the shiniest/coolest projects were what made me happy/motivated/excited. After a year or two of working full time, I can decisively say that I was looking at the wrong thing, and a great manager and teammates make all the difference for me these days. The project being shiny is just a cherry on top, but it cannot override a terrible manager or teammates. But a great manager+teammates override shininess of the project every single time by a giant margin.
I initially started working on a pretty non-shiny-sounding enterprise project, and I was upset once i found out i was assigned to work on it. But after just a month or two, I wouldn't have chosen it any other way. The overall experience was amazing, and it opened so many doors for me. I ended up following the people, not the projects, and after a couple of team switches, that approach has never let me down so far.
Those people I observed following solely shiny projects ended up either being miserable due to the management or due to random mishaps with projects. Those who followed great managers and teammates ended up in a great position, no matter the projects. If those projects went a bit off-rails, great management always managed to pivot it back in a good direction without inconveniencing the engineers.
And then it kinda hit me that this trade-off just mirrors the whole systems vs. raw results argument. Sure, you might have a currently good looking project, but if it doesn't have a great team+manager behind it, it is just a single datapoint, and it can vanish any moment due to a random mishap. A great manager+team are like a good system. No matter the mishaps, the system can course-correct, and you will never end up screwed over or unsatisfied. It's like, you should not stress about building a perfect product that never fails, you should strive to build a fault-tolerant product that has effective and tested fallback systems in place.