Programming: A New Creative Focus
By Russ Finney
The process of designing the external and the internal workings of a new system are considered by many to be the fun part of system building. But to some, the upcoming task of actually constructing the designed system is considered to be somewhat of a grueling prospect. Yet, there are others to which computer programming is a genuine pleasure! To them, this is where the real technical creativity comes into play. Taking a design and implementing it as efficiently as possible, while at the same time creating clever program module/class components with high reusability, represents a gratifying intellectual challenge. These people are the true technical system construction "purests".
Given these different personality types, one of the keys to a successful construction effort is to assemble a team of both business focused designers and technically focused programmers which will effectively join forces and see the programming or code generation effort through to completion. Luckily, many systems professionals find both the design and construction aspects and challenges equally gratifying, and it bodes well for a team to have a sprinkling of these "middle of the road" types in with the others to serve as communication bridges.
During the programming or code generation part of the project, the team leader must also change his or her focus. Up to this point he or she has probably been heavily involved with the requirements definition, the system component design, and the issue management and resolution aspects of the earlier phases. Now that the programming effort is underway (and if the system is of a significant size), the team leader will no longer have the luxury of being as close to the details as he or she might have been in the earlier phases. But how involved with the effort and the details should the team leader be? Is there an appropriate level of participation?
The answer to these questions is: absolutely! Since the team leader is accountable for the final delivered product, this is no time to put them team on auto-pilot just because the design seems to be rock solid. Many design changes, issue resolutions, and communication misunderstandings still lurk in the shadows of this project stage. The team leader must be on the prowl constantly, keeping a sharp eye out for potential progress road blocks and diversions.
One of the clear facts of systems programming is that when the team encounters an obstacle in the road, they will wait for the team leader to decide whether they should take another route, clear a path through it, or simply ignore the fact that it exists. The challenge for the team leader is to maintain an awareness of when these roadblocks are springing up, and to ensure the correct response is being taken. In order to fulfill this responsibility, the team leader must maintain:
- Active participation in issue resolution sessions
- Active participation in selected code walk-thru meetings
- Active team "pulse checks" by regularly wandering around
- Active requirement, issue, and enhancement gathering
- Active contribution to the final delivered product.
All of these will give the team leader the intelligence he or she needs to accurately assess the state of the phase, as well is ensuring that decision making and guidance is present in a timely and efficient manner. In addition, it minimizes the occurrence of unexpected surprises, which if found out too late, can cause unnecessary delays or frustrating rework for the team.
Copyright © 1999, Russ Finney, All Rights Reserved