Wednesday, December 8, 2010

Managing Software by Managing People (CS 428)

There are many things to take into consideration when managing the development of software, such as the development process, the budget, and the schedule. The most important element of managing software, however, is the people. It’s the people that will create the software, determine when the software gets finished, and determine the quality of the finished product. The major hurdles that face the manager will depend not so much on the complexities of the software as it does on how people will build it. Understanding this could mean the difference between success and failure.

The quality of a program is dependent on the quality of the people who build it. If there are lousy designers, the result could be a design that’s impossible to implement or software that doesn’t do what it’s supposed to. If the coders and testers are lousy, the result could be a product riddled with bugs that took too long to build. Quality people can create quality software, so the people working on the project should be chosen well.

The software will still be hampered, however, if they’re poorly managed. Not everyone works the same way, so what’s needed for a person to perform optimally isn’t the same for everyone. For instance, if all the team members are young, single adults that can be fueled simply by pizza, fifty hour work weeks could be possible. If a team of older, married adults with kids were to have fifty hour work weeks they would likely be burned out and their work would suffer as a result. People also do well when they’re excited about what they’re working on, so what part of the project a person would be more excited about should be taken into consideration. How people are managed greatly affects the quality of the software, so when a problem arises, the problem can often be traced back to people.

When problems arise, and they always do, it’s usually a people problem. For example, if a project runs late, it could be because the manager didn’t schedule enough time for testing. If the software fails to meet the user’s needs, it could be because the designers didn’t adequately gather the requirements. Sometimes even honest attempts to improve performance can backfire. For example, if success is measured by how fast a software project is released, the result could be a project that’s released on time but at the cost of missing features or buggy code. By understanding that problems are really people problems, the issue can be tackled at its source.

The best way to manage software is to manage people. Do whatever that’s needed for the team work effectively, even if it means spending extra money on something like food. If people are happy and can work effectively then a successful software project is likely. Poorly managing people working on the project is a great way to ruin it. Cut their pay in half, have them work sixty hour weeks for several months, fire your testing team, and you’ll end up with a barely-working program that doesn’t meet the user’s needs. The people working on the software project are the most important aspect of management, and understanding this can mean the difference between success and failure.

No comments:

Post a Comment