Part of my job is to facilitate the development of
StackStorm. I was recently coming up with some
high level team member goals for the quarter and decided it would be good to jot
down some areas I think developers should be proficient (or gaining proficiency) in. This isn't exhaustive by any stretch, and if you have any thoughts I'm interested to hear them.
- Work Independently
- Understand business outcomes
- If there's down time, pick items that are most aligned with
- Business outcomes
- Your Interests
- Pitch new enhancements
- Identify new areas to improve/invent
- Write discussion pitching new idea/implementation
- Work to promote having in a release
- Mentor Other Developers
- Guide towards best nn
- Open Discussion
- Code Quality
- Test Coverage
- Pull Request Review
- In-Line/Self-Documenting Code
- Public API (Function/Class/Method) Docs/Usage/Examples
- Care about quality/Doing a "good job"
- Don't "code by coincidence"
- Build, discover, share new tooling/methodologies
- Be proud to share/publicize your code
- There's almost never a reason not to share code internally
- Sometimes it makes sense to share publicly (Open Source, Examples, Design, etc)
- Understand economics of code
- Try to properly gauge effort
- Balance existing investment with rewrite/refactor
- Don't reinvent the wheel/rebuild commodities
- Beware "sunk cost fallacy"
- If you've spent days on one solution you can never get that time back. Is it time to evaluate a new approach?
- Beware "not built here" syndrome
- Wisely use external services/libraries to boost productivity