37

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.

5 Answers 5

52

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.

4
19

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.

5
  • 2
    yay! bang-bang!
    – mlvljr
    Nov 5, 2010 at 0:23
  • 4
    "likely won't work in a corporate setting". Says you! ;) Nov 5, 2010 at 5:16
  • +1 Aaa, cool! I do it sometimes, but i did not know how to name this "process" :)
    – Zzz
    Nov 10, 2010 at 21:11
  • yeeee-haw padnah!
    – ybakos
    Nov 15, 2011 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, 2012 at 21:50
5

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

1

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.

1
  • "Freeze requirements" is the biggest easier-said-than-done ever. Feb 23, 2017 at 15:27
1

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

1
  • 3
    If You Don't Know Where You're Going, Waterfall Won't Get You There! Nov 11, 2010 at 17:25

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