Sdm As A Decision Making Model
Essay by 24 • April 24, 2011 • 1,028 Words (5 Pages) • 1,069 Views
Software Development Methodology as a Decision-Making Model
January 25, 2005
Abstract
The development of most, if not all, successful software solutions follow some type of Software Development Methodology (SDM). A methodology is another name for a model, and a SDM is a decision-making model that influences how a person or team will develop a software solution to a given problem. This paper will briefly describe a few of the software development methodologies that I have encountered over the past twenty-one years, followed by a more detailed description of the SDM that I am currently following and how the SDM influences my day-to-day decisions as a project manager of software development projects.
Beginning with my first year in college, I was exposed to the traditional SDM, the Software Development Life Cycle (SDLC) model (also called the Systems Development Life Cycle model). This model is also commonly referred to as the "waterfall" method of software development, since one phase or stage of the development process logically flows to the next stage in a structured, linear manner. While this model is still widely used and is useful for development of highly defined systems, professors Rudy Hirschheim and Heinz Klein realized in 1989 "that although there is a strong, orthodox approach to systems development, there are recently developed alternatives that are based on fundamentally different sets of assumptions" (p. 1). The process of continuously challenging the assumptions of a given process and analyzing the available alternatives drives us towards more efficient and effective solutions.
One of the resulting alternate approaches to systems development that I have used is the Spiral model, in conjunction with a technique knows as prototyping. In this methodology the process is both iterative and incremental, whereby a portion of the system is developed, tested, and feedback provided from the user community which drives the next development loop (hence the term spiral). This model is very useful in situations where the requirements are not clearly defined for the entire system or the feasibility of the system is in question, thereby minimizing the risk of failure involved with developing the entire system at once. Using critical thinking skills, a team may decide to use the "waterfall" approach for projects where the requirements are very well defined and stable, and use the Spiral approach on the other projects.
The SDM that our company uses for all software development projects is based heavily on the Rational Unified Process (RUP). According to Philippe Kruchten (2000), RUP is "a software development process focused on ensuring the production of quality systems in a repeatable and predictable fashion" (p. 15). As Kruchten explains, RUP covers six commercial best practices, including developing software iteratively, managing requirements, using component-based architectures, visually modeling software, continuously verifying software quality, and controlling changes to software (p. 18). RUP consists of one or more development cycles that may be repeated over the lifetime of a system. Each development cycle consists of four phases: Inception, Elaboration, Construction, and Transition. In our methodology, each phase of the development process contains various procedures, some of which are mandatory and others that are optional. These procedures provide the rules and guidelines that drive the decisions team members make when developing the system. Hence, this methodology is the decision-making model our teams use for developing software solutions.
In the process of developing this methodology, we faced many decisions that required a great deal of critical thinking. For example, one decision we tackled was the analysis method the methodology would employ. The team members who helped formulate our methodology each had their own ideas, based on their individual backgrounds, experiences, and assumptions. After much debate and examination of the various analysis methods
...
...