3 ms·
This is a really great question, thanks for starting this discussion! Based on my experiences, here are some ideas regarding a hypothetical ideal developer env
by jka 6y ago
This is a really great question, thanks for starting this discussion!
Based on my experiences, here are some ideas regarding a hypothetical ideal developer environment - some technical, some cultural:
- A supportive and responsive team who help each other to get valuable features developed, deployed and maintained
- Thoughtfully-written test coverage that allows for code evolution, while providing reassurance that changes are correct
- Local, test and production environments where deployed code behaves identically or near-identically
- Languages and API documentation that are accessible, expressive and composable while remaining straightforward to reason about
- Development, deployment and operational tools that lend themselves well to automation so that frustrating and error-prone manual tasks can be reduced
- Rapid notifications regarding problems encountered by users -- ideally only occuring infrequently, thanks to high code quality, and implemented in a user-privacy-preserving way (to avoid developer anxiety regarding imagined or real lack of organizational respect for users)
- Code review (for various social and educational reasons, as well as improvement of code quality)
- Human product feedback, in terms of quality assurance and also genuine user feedback
- A high-motivation and low-pressurization work setting -- with a sense that the delivered software is genuinely providing a net benefit and is able to anticipate and respond to harms and ideally prevent them in future
- The time and team approval to investigate bugs and contribute the discovered fixes upstream outside the organization
It also strikes me while writing this that software may be considered easier and/or more comfortable than other careers.
While it's good to strive to find further improvements, it's worth pushing for other employers (and perhaps industries?) to do the same.