Best practices for effective software development |
 |
By John Hogan, SearchWebServices.com News Editor
14 Aug 2003 | SearchWebServices.com |
 |


|
BOSTON -- At the XML Web Services One conference, Michael Cusumano, an author and professor at MIT's Sloan School of Management, offered several tips for creating an effective software development project, based on his 17 years of research in the field.
- Make big teams work like small teams. Break a large project into several modules or subcycles, and place no more than three to eight people on each team. Try to put together teams that can generally work together in one location. ("Seeing the whites of their eyes" is a strong motivator for team members, Cusumano said.)
- Place a strong leader in charge of the overall project. This person has to have the clout and the vision to bring the smaller teams together as a unit.
- Take a "rigid" approach to team rules. For example, "builds" must be submitted to project leaders daily. ("Being slightly out of control is OK," but too few rules results in chaos, he said.)
- Reuse software components often, but don't overdo it. Cusumano recommends reusing no more than 10% to 20% of your components. ("XML has been very helpful in making that happen," he said.)
- Respond to market changes without sacrificing future plans. Plan to develop applications two to three years in advance through a multi-release strategy.
- Plan your software architecture incrementally. ("If you rush to build your architecture, you'll get spaghetti," he said, describing the resulting jumble of code.)
- Divide long projects into smaller pieces. The deadlines will become more realistic. ("We've known that for a while, but it should be built into project plans," Cusumano said.)
- Make software engineers accountable. Have them schedule their own work, and then track their accuracy in meeting those goals. Compile all of the resulting historical data to help gauge the timeliness of the project as a whole.
- Build in quality-control procedures. Quality should be tracked on a continual basis, not just at the end of a project.
- Automate the quality-testing process. But assign someone to regularly update the testing metrics.
- Do a post-mortem. This will give the entire development team a good idea of what went right and what went wrong so that future projects are more effective.
FOR MORE INFORMATION:
Article: Developers sink 'waterfall' in favor of 'sync'
Article: Breaking XML to optimize performance
Best Web Links: Web services architect
');
// -->
|
 |
|
 |