Monday, October 14, 2013

Agile : Some facts

For those of you who are unfamiliar, Agile software development is a sort of method used to accomplish goals within software projects. A simple design for projects in order to help ensure they are accomplished within a reasonable amount of time, and within set budget constraints. Mind you this exists for a reason, as it's estimated that 80% of all software projects fail, coming either over budget or running out of time. This is huge! How can so many software projects fail in such a spectacular manner?

We must take a look at some fundamental problems plaguing most projects :




* Lack of customer input

* Requirements are vague

* Poorly planned schedules

* Poor management of product changes

* Poor testing



Agile remedies these by putting the costumer on a pedestal. They are King of the process, and given position as a member on the development team. This ensures that the requirements are clear, and that their input has an audience. In Agile schedules are dynamically negotiated, and the only thing set in stone is the delivery date for the product. It's because of this flexibility and closeness to the costumer that Agile has become so widely adopted. It provides the bones for an organized approach to software development.

Personally, after learning about the Agile approach to software development I was very pleased. Reading about this has helped me understand some common practices in software development in a business setting. An organized and consistent approach to accomplishing the small tasks that make up larger software projects is absolutely necessary. Even through my classes I could tell managing these tasks becomes cumbersome, as I've experienced in group projects.



Through some research I've found some other conventions to software development. Among Agile there are many other methods tried, some less successful and others more. This list comes courtesy of Peter Boughton of Stack Exchange.



* - based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

* - the focus of the Cleanroom process is on defect prevention, rather than defect removal.



* - a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between.

* - uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself.

* - The Rational Unified Process (RUP) is an adaptable iterative software development process framework, intended to be tailored by selecting the elements of the process that are appropriate.



* - combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model.



* - sequential through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.

* - a translation of Lean manufacturing and Lean IT principles and practices to the software development domain; everything not adding value to the customer is considered to be waste.



* - Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.



* - relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.
Full Post

No comments:

Post a Comment