A lot of people give some simple advice for having a happy and fulfilling work-life.
“To never work again just make your hobby your profession.”
During the last years I more and more realised that this might not be the best advice for everybody. I´ve grown the feeling that it is only true for some professions, types of employment and last but not least: people.
Especially in my area product- and softwaredevelopment I´m not sure if the enthusiasts approach is always good. Of course you want colleagues who:
- Inform themselves about the latest and greatest trends
- Want to work on interessting technologies
- Are on a constant learning path
- Improve their coding skills
If you´re working with existing products (there´s a sustainable business) you want more. You want:
- no drama
- battleproven technology
- best practices
- low maintenance
- good documentation
- software where new features can be added easily
- predictable update cycles
- off-the-shelf solutions
- go for the marathon and not the sprint
Coding shouldn´t be a end in itself. Enthusiasts who treat their job as a hobby like to show off their coding skills. They want to show how clever they are. Old legacy software tends to be boring. The challenge is: if you have limited manpower (aka the dreaded word “resources”) you want boring solutions. You´re optimizing for the least amount of work possible while having the most outcomes. It boils down to optimize your processes and software.
From a human perspective “corporate drones” aka people who are in it for the money are a way better fit for this type of work. They want an “easy” life. Use off-the-shelf solutions and customize / optimize them. Decide where a custom solution is needed.
If you´re 100% sure you can´t go with customizing an existing solutions and need a custom build optimize for fast iteration. This means you solve a current use case the best way possible. Don´t think about future iterations. All asumptions are wrong. You will need to change stuff in the future. This is ok. Make changing stuff as easy as possible.
Make changing stuff easy:
- Ensure test coverage
- Use coding best practices for your language of choice
- Optimize for refactoring
- Document your choices. What might work for 100 requests might not be the best for 10.000
- Make it easy to delete code
Enthusiasts might get bored if they´re also responsible for running and maintenance of an application. Corporate drones are in it for the money. So you´re more likely to have a lower churn due to stable (but “boring”) work. But you´ll gain rock solid applications. Predictable outcomes and most important: after-work hours and no weekends or all-night shifts.
I´m not quite sure if all of this is true but these are my reflections in this point of time. They might change. Right now I prefer working within a well oiled machine (aka team) way more than having to deal wir 10x rockstars.