Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Tue, Jan 27, 2009 19:43 EST
|
Posted by: EdCarroll in Soapbox Topic: Development
Current Rating: |
The market crash is ripping through our economy, encouraging all of us to become better than we were. For software engineering/IT, times like these pose some special challenges. Software engineering is a mostly human endeavor, but not a situation where one person equals one output - reducing staff does not reduce the cost by an equivalent amount. This is because engineering is a team effort that requires the right combination of team collaboration, skills, tools, training and techniques. Reducing staff often causes a much greater reduction in productivity.
In that case, is a downturn the right time to make sweeping changes in engineering? Reducing personnel without restructuring how the department operates can leave the company open to significant losses - so there may not be a better time. A market downturn brings change, no matter what. Why not use this time of change to create a more effective program; more flexible, more productive? And what is the right direction to take during an economic downturn? The answer is to simplify.
Develop specialist within your team
As a department grows, it is very typical for the operating structure to become chaotic, and engineering/IT is no exception. It is not unusual to assign one engineer to solve a problem, with the expectation that that same engineer will function as analyst, coder and tester. And it is not surprising to see that engineer become the only person in the company who can work on that specific application or module. This dedication of resources can paralyze a department. In a downturn, it is common to re-assess the skills and talents of each person in the department. Therefore, this is a good time to stop expecting everyone to do everything well.
“I was once told by one of my Directors at Egghead.com that only one person in our department of 80 engineers could make a change to a shipping module, and that it would take 6 weeks to make the requested change.”
When it comes time to reduce staff, and that one person who knows that code is laid-off, the company is exposed to risks that it should not be exposed to.
Solution: Simplify the operating structure of the department by focusing on role specialization. Consider how a consulting company that specializes in delivering software development projects must be structured to be successful. Consultancies deliver many projects in many different situations. To deliver well, maintain happy customers and a competitive cost structure, they must optimize their software development lifecycle (SDLC) processes. An important component of that optimization effort is to focus personnel into the repetitive components of the SDLC. No matter what methodology used, every software project includes some level of analysis, architecture & design, construction, testing, and project management. Focusing engineering personnel at these roles gives the team the flexibility needed to grow or contract as the needs of the business change. For example, if the business decides to take on a new project that is ill defined and in a state of flux, additional analyst can be assigned. During a downturn, the minimum department size and configuration can be much better determined, if based on the amount of output required. With a department structured by roles, the minimal department size can be determined by comparing the requirements (projects/products to support) against the required numbers within each role. The holy grail appears when the only person who “knows that code” is replaced by a team of engineers who can work on any code in the library.