The business minded programmer
Most of recent software development approaches bring code closer to business. According to Agile we should write software with customer collaboration, responding to changes and constantly delivering business value. Lean is all about creating a flow of business value and removing waste. Even Domain-Driven Design advocates having an ubiquitous language between programmers and business people.
It's interesting how most of state-of-art approaches to software development are focusing on business, programming itself is still seen by many as a completely technical discipline. In my point of view it's time for this to change.
Here are some examples of useful things I believe all programmers should be concerned about these days:
- Understanding the company's vision and the business model where your software is supposed to fit;
- Knowing how to estimate and prioritise work based on criterion like return of investment (ROI) or competitive advantage;
- Learning about the business domain and becoming an expert in it;
- Questioning the business value of features before start coding;
- Being able to collaborate with whoever is envisioning the solution you're creating;