Moving Programmers Up the Value Chain
The key to moving up the value chain lies in the fact that most people like to do a good job. The results obtained from good work are usually obvious to all members of the value chain. Following are some steps that developers can try in order to move up the chain:
- Learn about the other jobs in Figure 1, and in the wider company
- Think in an abstract way and understand the cross-cutting concerns
- Read about programming, open source, patterns, etc.
- Use labor-saving techniques such as design patterns
- Give short presentations on important and relevant open source projects
- Heed the needs of people in other parts of the value chain
- Specialize in some important area of expertise
Learn About Other Jobs
Clearly, it has to be a good thing if a programmer understands the workflows and the needs of the other members in the value chain. This principle applies to everyone in the Figure 1 value chain. One company I worked for made unusually heavy and detailed use of logging. When an internal test release occurred, the testers dug into the log files as the code executed; therefore, the programmers provided the most meaningful log messages they could. This process worked very well.
Most developers are used to thinking in abstract terms, but perhaps not everyone is encouraged to understand the broad cross-cutting concerns of a given project. I believe that this is a missed opportunity. Even if programmer X is not responsible for database code, it’s useful to have some knowledge of that area. Mini presentations can help to fill this gap, as well as encouraging a healthier shared knowledge base. In week 1, programmer Y presents the way the database code is implemented; in week 2, programmer X can present her area.
Reading is perhaps the best way of moving up the value chain, and yet few programmers have a reading plan. This problem is easily remedied—just pick out some areas of interest and start reading. And do it now!
Give Presentations on Open Source
Programmers tend to shy away from giving presentations—most prefer to just cut code and get on with the job. However, many companies now encourage developers to get involved with open source projects. This work should be presented in an informal fashion to other team members to keep them up to date on the latest developments. The ability to present very technical information is useful to programmers and helps to improve information flow between technical and non-technical staff.
State Your Needs
One more technique that can help programmers move up the value chain is the simple act of stating needs. At one organization where I worked, we had a contract client for whom weekly software releases were made. Weekly releases are burdensome in the extreme! We would fix bugs and try to add one or two minor features on a weekly basis. The difficulty was that two days of each week were spent preparing for the release. To improve on this situation, we extended the release cycle to one per month—the result was far greater productivity, more features in each release, happier programmers, and a happier client.