Using Elastic Features to Control Software Development Projects

Charles A. Suscheck, Richard A. Huff · Journal of international technology and information management · 2010

INTRODUCTION Hard decisions must be made when software development projects fall behind schedule. Management must determine the best method to return the project to schedule, while at the same time delivering the best product. Should the project be permitted to stay behind schedule? Should more resources be added to the project to bring it back on schedule? Does completion of the project affect other operations of the organization and hence the decision to continue? No uniform method exists to answer these questions. Part of the reason that software projects deviate from schedule is that software development projects are notoriously difficult to specify, estimate, control, and complete. The press is continually awash with stories about software development projects that have failed (Koch, 2004), resulting in large losses for those sponsoring the projects (Greenemeier, 2005), and generating many lawsuits between involved parties (Chabrow, 2005). These problems have driven the focus on project management within the software development industry (Chen, Romano, & Nunamaker, 2006; Marchewka, 2007; Tesch, Ireland, & Liu, 2008). This paper proposes a method to categorize and group features of a project so that the project is kept on schedule by adjusting the amount of work. The project has flexibility based on the amount of work required, rather than the number of resources or the schedule. Multiple priorities are spread across parts of the project, meaning that the project is more likely to stay on schedule. There is elasticity in the quantity of features added to the project, hence the term elastic features (Collins-Cope, Rosenberg, & Stephens, 2005). BACKGROUND The complexity and control of software development projects has been a problem from the outset of the computer era. Academic research has examined the problem extensively in order to identify methods and techniques to control the process (Moore, 1979; Doll, 1985; Tuttle, 1989; Rasch, 1992; Nidumolu & Subramani, 2004; Liu et. Al, 2007; Cao & Mohan, 2009; Sun & Liu, 2010). Many techniques have been proposed to control ongoing software development projects and keep them on schedule, the most common practice being to add people and elongate the delivery schedule. Iterative development is a proven technique for controlling project schedule. The project is to divide large projects into smaller parts, or sub-projects, which can then be completed as iterations. Each iteration is sized to make it is easier to manage. When an iteration's progress starts to deviate from the scheduled progress, one can adjust the resources by adding new workers, working longer hours (a typical scenario), accepting the deviation, shortening other phases of the iteration (such as testing or documenting the system), or change the amount of functionality being implemented. Many modern agile methodologies, such as SCRUM (Schwaber & Beedle, 2002), the Adaptive Process Model (Pressman, 2004), and eXtreme Programming (Mangalaraj & Mahapatra, 2009) are based on iterative development. These methodologies typically build in project flexibility by adding or removing entire iterations, rather than specifically structuring iterations that consist of features of various priorities. McConnell (1996) points to a finer grained adjustment to project workload. Features can be removed during an iteration, reducing the amount of work and thereby adjusting the delivery date (Kerr & Hunter, 1994). Such a fine grained approach can be seen in the subset of agile methods called Feature-Driven Development (FDD) (Palmer & Felsing, 2002; Trinidad & Benavides, 2008). McConnell (1996) also makes the point that managers must plan ahead for feature cutting by using a complimentary life cycle model. In the case of elastic features, design-to-schedule is used since it is a good match to projects constrained to a particular time frame. …

Read the paper · More papers on PaperTik