Methodologies in IT: Comprehension, Selection, and Implementation
Despite a long history of software development, the tools and techniques we've all been using have been only partially successful. Projects still experience significant problems: poor software quality, large work backlogs, missed deadlines and budget overruns, inadequate project management, inaccurate estimating methods, and an unacceptable level of canceled projects.
Many IT managers have all but surrendered, but IT organizations should instead start evaluating maturing methodologies and related tools; good planning simply makes projects of any kind more productive. Development organizations should embrace and implement integrated methodologies now widely available, but little used or even understood.
Methodologies have been among the most discussed and least implemented of all approaches to improving software quality and productivity in the global IT industry. The concept is so simple as to hardly require explanation: Construct new systems and functions from the same building blocks used to build systems and functions already tested and proven in actual use. Use repeatable processes wherever possible while at the same time improving where possible.
What Is a Methodology?
A methodology is a repeatable process with project-specific methods, best practices, rules, guidelines, templates, checklists, and other features for building quality systems that are manageable and deliver value to the organization. The methodology can be used and reused any number of times.
The key phrase here is repeatable process—doing projects the same way each time. To think of this another way, a methodology is a roadmap to get you where you want to go.
Methodologies are not just for IT, of course; these tools have been used successfully by other professions such as the following:
- Engineering: electrical engineering, mechanical engineering, and construction
- Medicine: nursing, pathology, pharmacology, gerontology
- General research: Data collection, statistical analysis
- Aeronautics: developing space systems, navigation, flight telemetry
- Military science: ordinance, logistics, surveillance
- Law: legal education
- Manufacturing: factory systems
- Teaching: learning approaches
In the 1970s, the "structured methodology" became very popular. Although there were variations on the theme (different versions of the structured techniques included the popular Gane–Sarson and Yourdon methods), for the most part, the structured methodology provided a means to develop usable systems in an era of batch computing. In those days, online systems with even the dumbest of terminals were a radical concept, and GUIs were as unthinkable as the fall of the Berlin Wall. Other methodologies developed and used successfully in that era included Andersen Consulting's METHOD/1; SUMMIT, from what was then PricewaterhouseCoopers; the Jackson Structured Programming methodology, and so on.
Critics unkindly said that these tools were "short on methods—long on ologies." That statement may have had some basis in reality then, but methodologies have matured and are becoming more widely accepted as we've all realized that we need effective tools that can help us to be more productive.
Using a standard approach in application development can provide significant productivity gains. Methodologies can be combined with any type of technology: standard application-development tools; databases; languages such as C, C++, or even COBOL; web services, Java, J2EE; autonomic software, grids, and utility computing.
The methodology is integrated with project-management software tools and process-management techniques to provide a valuable all-around delivery vehicle. It delivers value and productivity to organizations by describing a repeatable set of processes and procedures for building systems.
Good methodologies provide the following benefits:
- Management can protect its investment by ensuring that project supports are well-defined and likely to succeed. Methodologies frequently have a deliverable in the form of a business case that defines the economics, benefits, costs, resources needed, and so on, ensuring that the project is oriented toward the company's business needs. The business case is updated throughout the project lifecycle to reflect changes that affect both one-time and ongoing costs and benefits of the new system.
- Management and users know in advance what they can expect from each project. As each unit of work is completed, certain standard deliverables and work tasks are developed that explain the work accomplished and the decisions reached. Each work task provides input for the following unit of work and for helping management to ensure that all work has been properly completed. Predefined signoff points—milestones—allow management and users to give their approval and to ensure that the project goals are met.
- A good methodology ensures that quality standard are met; expectations exceed those of custom development routes. Quality requirements and verification are integral parts of any project. The methodology's checklists and templates define how well the system operates and meets the original project requirements. Focusing on the system's usability, maintainability, flexibility, and reliability enables the development team to design quality attributes into the system.
- Quality assurance reviews or audits give management an independent assessment of the quality of work done. These reviews ensure that the prescribed development process is being followed; that risks are identified, communicated, and managed; and that the project works to meet its scope and objectives.
- Surprises such as cost overruns, scope changes, late implementation, and other risks can be minimized. Programs include specific start and completion dates for the work performed during a project. They provide guidelines for conducting a project and make it easy to track progress and highlight potential delays or overruns in advance so that corrective action can be taken.
- The status of all projects is readily accessible. Good methodologies have project management software embedded or integrated into the product. This approach allows team members to prepare time reports that include estimated time to complete each assigned activity. Using these time reports and the projects work program or plan, the project manager can accurately assess the status of the project. The project manager's assessments are documented in regular weekly or biweekly progress reports to senior management.
- Organizations get significant increases in the productivity of application development. Communication is improved because the methodology sets standards that everyone can follow, as well as clear and agreed-upon expectations. The plan specifies to developers a framework of what tasks are to performed, when to perform them and the sequence required, how to perform them, and how to manage the process.