| |
SW Projects - Development Process
IT project lifecycle various philosophies
SW Projects - Development Process
Waterfall and Agile are opposite Software Development Processes.
Each philosophy has its advantages and disadvantages. The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
Scrum and Extreme Programming are Agile development methods. .............................................................................. Frozen requirements, Frozen design and Code freeze .............................................................................. Three common types of freezes are:
- A complete requirements freeze, in which all work on adding new requirements or refining old is suspended, shifting the effort towards fixing design specifications and improving the requirement definition.
- A "Feature Complete" or "feature freeze, is situation when all work on adding new features is suspended, so the efforts are shifting towards fixing bugs and improving the user experience. The term "Feature Complete" means all the features are somehow coded and buggy-functional, but we're heading into a QA stage to confirm that there are no bugs. ALPHA version code contains all intended functionality of the desired version, but is not yet FROZEN due to bugs, performance, unreadable code, or stability issues.
- A "Code Complete" or "code freeze" is achieved when no bugs are found by QA team, so no changes are permitted to a portion or the entirety of the source code. If there are some bugs found by QA team, they must be fixed. After QA team is satisfied with the result, all user acceptance test pass, we have "Code Complete".
.......................................................... Frozen design and Frozen requirements ......................................................... Prototype: Is designed to effectively communicate the core features and proof of concept of some idea (example: Wright Brothers, 1903, Kitty Hawk air-plane)
Alpha: Is a coded version of the key features of the solution that will give people a chance to actually interact with proposed solution. (example: various WWI air-planes)
Beta: A coded and more polished version of the key features of the solution that could be used directly by a third party audience (example: The Wright brothers proved that powered flight was possible, but the McDonnel Douglas DC3, introduced in 1935, ushered in the era of commercial air travel. The DC3 was the first plane that supported itself economically as well as aerodynamically.)
According to D.Knuth, the design should be FROZEN after version 3.0, and no new feature or fundamental change will be added, so all newer versions will contain only bug fixes. No design change, only bug fixes.
Formula 1 racing cars are fine example of DESIGN FREEZE in automotive industry. The numerous Formula One regulations, have changed dramatically and evolved since the first Formula One World Championship in 1950. Design is public but technical specifications of each competing manufacturing team is covered under the veil of secrets.
|
|