How to make your software team much more effective
Programming is the closest we have to magic in the real world. Just like magic, you can conjure rich and powerful creations with the power of your own mind, given the right tools and training. Just as powerful magic could lay waste to an entire army, powerful programming can do the work of many. You and your team can dramatically outpace much, much larger teams if you can:
- work on the right problems with the right feedback
- pick the right people
- manage, motivate and develop them within a safe and empowering culture
- provide the right support, infrastructure, language, tools, data, architecture, communication, and processes
These factors are multiplicative, so if any of them are completely broken, overall effectiveness can drop towards zero.
I've written a number of articles about how to improve these factors, and thus the overall effectiveness of your team:
- A little Functional Programming goes a long way
- How to write good software faster (we spend 90% of our time debugging)
In the future I'll also be writing about:
- Using Postgres
- Unit testing
- How to write scientific software that’s right
- How to hire well
If you have any burning questions about these topics, or there's something you'd like to know more about, you can always let me know.