Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am curious if anyone knows of any methodologies that are significantly different (not a recombination) and I would especially appreciate anyone who brought forward any experience with alternatives.

share|improve this question

closed as not constructive by Jarrod Roberson, Mark Trapp Nov 15 '11 at 20:24

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers 5

up vote 32 down vote accepted

Wikipedia lists these as methodologies/development processes:

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

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

  • Iterative - 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.
    iterative diagram

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

  • RUP - 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.

  • Spiral - 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.
    spiral model diagram

  • Waterfall - sequential through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.
    waterfall diagram

  • Lean - 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.

  • V-Model - 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.
    v-model diagram

  • TDD - 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.

share|improve this answer
    
Thank you for such a clear, succinct answer. I am so old school, I have never heard many of the terms being thrown around on P.SE. –  Cape Cod Gunny Nov 13 '10 at 12:29
3  
Great list, except for TDD. That's not a lifecycle but a development practice. –  Michael Jan 26 '12 at 15:40

Cowboy Coding

Pure unstructured, unmanaged, freeform development. It can be useful for small hobby projects that lack a deadline or even a clear goal, but likely won't work in a corporate setting.

share|improve this answer
2  
yay! bang-bang! –  mlvljr Nov 5 '10 at 0:23
3  
"likely won't work in a corporate setting". Says you! ;) –  Bobby Tables Nov 5 '10 at 5:16
    
+1 Aaa, cool! I do it sometimes, but i did not know how to name this "process" :) –  Zzz Nov 10 '10 at 21:11
    
yeeee-haw padnah! –  ybakos Nov 15 '11 at 19:11
    
In formal mature corporate settings true. However, in small business there can be quite a bit of, "Just get-r-done" mentality. –  JB King Apr 4 '12 at 21:50

The Spiral Model

The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.

-Wikipedia alt text

share|improve this answer

This Waterfall argument has been around for awhile and used by the agile thought leaders early on. They too encountered the "reality" of waterfall as a "red alert."

When you start working on a software development project you will quickly discover that the development methodology used will have a major part to play in the speed and quality of the code developed.Since Agile methodology is so widely used it is important that you understand the advantages and disadvantages of agile so you are able to determine whether it is the best fit for your project deliverables.

Agile software development is a conceptual framework for undertaking software engineering projects.Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation.

It's a good process for the company because it include the customer in the development process and make it responsible for the product delivery. In the other side customers are happy because they find theirs self participating in the development of the product.

Demerits for Agile:

  • Agile is too programmer-centric leaving it unclear how to balance work across an organization.
  • If You Don't Know Where You're Going, Agile Won't Get You There!
  • Creation of frameworks without clear needs.
  • Overuse of language features (inappropriately).
  • No test-first mentality.

Well for an interesting methodology which might work as an alternative for AGILE may be best viewed under these 3 links :

Kanban as Alternative Agile Implementation

Kanban software development

Lean software development on the cloud

share|improve this answer
2  
If You Don't Know Where You're Going, Waterfall Won't Get You There! –  Eric Wilson Nov 11 '10 at 17:25

Plan

Sit down with the client (or end user) and design a series of use cases.

Design

Layout the system on paper / whiteboard over a few beers and pizza. Snicker when something looks phallic.

Confirm

Confirm design with client (or end user) and freeze requirements.

Code

Self explanatory.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.