Skinner Wasn't a Software Engineer
The author describes several different techniques for doing software development research--for example, testing the value of a new tool or technique. He describes the comparative group experiment, the field study, the case study, and the single-subject ...
MySQL: Lessons Learned on a Digital Library
In recent years, open source relational database products have achieved enterprise-level quality. The Los Alamos National Laboratoryýs Research Library selected the open source MySQL database management system to develop a comprehensive database of ...
Agile Programming: Design to Accommodate Change
Agile programming is design for change, without refactoring and rebuilding. Review four well-known but perhaps forgotten agile-programming techniques that help anticipate and accommodate many common changes.
Editor's Introduction: Adapting Agile Approaches to Your Project Needs
The author describes how the Agile Alliance began, what the Agile Manifesto advocates, and what he feels are the most important principles in agile practices.
Project Management in Plan-Based and Agile Companies
In recent years, people have claimed that plan-based and agile companies use very different project management techniques. As this claim has a deep implication on how to run a software business, the authors set up an empirical study to assess analogies ...
Context-Adaptive Agility: Managing Complexity and Uncertainty
The author categorizes projects into dogs (simple projects with low uncertainty), colts (simple projects with high uncertainty), cows (complex projects with low uncertainty), or bulls (complex projects with high uncertainty). We adapt our agile process ...
Primavera Gets Agile: A Successful Transition to Agile Development
Primavera is a vendor of enterprise project management software. Over the past 18 months, Primavera's development team has been using the Scrum agile development process. Their story describes their journey as they learned as a team what it takes to ...
Combining Agile Methods with Stage-Gate Project Management
Agile methods have received positive attention in the software engineering community. Their focus on simplicity, programmers, and products empowers the technical staff and gives a sense of focus on product development basics. Researchers have ...
The Virtues of Assessing Software Reliability Early
Traditional software-reliability prediction methods such as reliability growth models base estimates on observing failures (and fixing faults) in validation testing, during which operational patterns represent the productýs actual field use. However, ...
Learning from Other Disciplines
Requirements engineers must focus not just on technical issues or individual or group behavior, but must view requirements as a sociotechnical discipline and draw skills, techniques, and knowledge from other disciplines. Suzanne Robertson reviews past ...
Practical Guidelines for Expert-Judgment-Based Software Effort Estimation
Simple process changes can lead to more realistic software development effort estimates. Seven easy-to-implement guidelines, based on industrial experience and empirical studies, apply the latest findings for judgment-based estimation of software ...
Beyond Cost: The Drivers of COTS Application Value
COTS software's growing popularity has dramatically changed how companies acquire enterprise applications, yet surprisingly little is known about which attributes of enterprise COTS software buyers value most. A survey of 126 management information ...
Java Makes Scripting Languages Irrelevant?
Developments in the 1980s acquainted programmers with the notion of customizing applications through scripting and opened the road for powerful, general-purpose scripting languages such as Perl, Python, and Ruby. With the evolution of Java and Microsoft'...
An Empirical Study of Programming Language Trends
Predicting software engineering trends is difficult because of the wide range of factors involved and the complexity of their interactions. In an earlier article, the authors discussed a tentative structure for this complex problem and gave a set of ...
Leveraging Global Resources: A Process Maturity Framework for Managing Distributed Development
Distributed software development is pervasive in the software industry today as companies vie to leverage global resources. However, popular quality and process frameworks donýt specifically address the key processes needed for managing distributed ...
Toward an Acceptable Definition of Service
One of the year's biggest buzzwords is service-oriented architecture. An introduction to SOA's concepts can help answer one of its biggest questions-"What is a service?" When architects, developers, designers, and clients agree on a definition of ...
Mining Text for Expert Witnesses
Text mining is a relatively new research area associated with the creation of novel information resources from electronic text repositories. An expert-witness database based on text from legal, medical, and news documents demonstrates the successful ...
Inside the Software Patents Debate: Some Good News for Open Source Developers
For open source developers and customers seeking advice as they navigate the complicated waters of intellectual-property law, more information is now available. Also, a few long-simmering worries for open source seem to be cooling. SCOýs chances of a ...
UML Distilled: From Difficulties to Assets
This month's Bookshelf features reviews of UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd ed. by Martin Fowler, Testing Computer Software, 2nd ed. by Cem Kaner, Jack Falk, and Hung Quoc Nguyen, Test-Driven Development: By ...
IT Failure Rates--70% or 10-15%?
Are the high failure rates for software projects reported in the Standish Chaos Reports accurate, or are successful projects more common than many people think? The future of software development might hinge on knowing the truth.