The Complete List of Software Development Frameworks, Process's, Methods, or Philosophies
There are so many software development process's, best practices, philosophies, and frameworks out there that I just wanted to create a complete reference list of valuable things to remember. Note that some of these I recommend NOT using, however I have listed them so that we can ensure to remember what not to do. However, you would be surprised how in some cases some of these practices are valid, even though they might see ridiculous. Anyway, here is the list, and as always feel free to post your comments and I will try and review them and add the ones that are valid!
- Agile Software Development
- Extremely popular at the moment, Agile tries to minimize risk by developing software in short iterations. Each iteration is a small project in itself.
- Agile Unified Process (AUP)
- A simplified version of the Rational Unified Process. It is based around four phases: Inception, Elaboration, Construction, Transition.
- Best Practice
- The best way to get a specific outcome your looking for.
- Constructionist design methodology (CDM)
- A methodology used to develop cognitive robotics, artificial intelligence systems, and communicative humanoids.
- Cowboy Coding
- Your screwed, well.. I guess unless your trying to learn something new, some quick solution for an extremely small problem, or seeing if something might work.
- Design by Use (DBU)
- A software development technique that helps if your working with multiple teams building components that will be integrated to build a larger system. Communicate early and integrate immediately.
- Design-Driven Development (D3)
- An Agile process for creating really cool and innovative requirements to build awesome solutions. Works really nicely with SCRUM and XP.
- Don't repeat yourself (DRY) or Once and Only Once (O3)
- Process philosophy aimed at reducing duplication.
- Dynamic Systems Development Method (DSDM)
- A framework based originally around Rapid Application Development, now an agile method based around continuous feedback from users and responds nicely to changing requirements.
- Extreme Programming (XP)
- A set of rules to run a team based around: Communication, Simplicity, Feedback, Courage, and Respect. This is done by: Coding, Testing, Listening, Designing.
- Pair Programming
- An extreme programming practice, works great! Two programmers working side-by-side, alternating turns on the keyboard and mouse, while the other watches and analyzes.
- Iterative and Incremental Development
- The idea of developing software systems incrementally, giving time for developers to learn from earlier releases.
- KISS principle (Keep It Simple, Stupid)
- Everything should be done as simple as possible.
- MIT Approach (Worse is better)
- Simplicity of the interface is the most important than anything else, even correctness, completeness, and consistency.
- Open Unified Process
- Part of the Eclipse Process Framework, it's just an implementation of RUP and UP.
- Quick-and-Dirty
- A crude solution or programming implementation that is imperfect, inadequate, but solves the problem, or masks the problem, at hand.
- Rational Unified Process (RUP)
- A well known refinement of the unified process, it is an iterative software development process created by Rational Software Corporation (now a division of IBM).
- Scrum (management)
- Agile methodology wrapping extreme programming.
- Spiral model
- Combines top down and bottom down methodologies.
- Software Scouting
- Experiment before building (proof of concept, prototypes, mocks, simulations, etc.).
- Test-driven development (TDD)
- Write test case first, then write code that passes the test.
- Unified Process
- Iterative and incremental software development process framework that can and should be customized before use by any organization.
- Waterfall Model
- Requirements, Design, Implementation, Verification, Maintenance.
- Worse is better (New Jersey style)
- Simplicity over correctness.
- You Ain't Gonna Need It (YAGNI)
- Never add functionality until it is necessary.









Thx, i really need those links
http://freewarelist.net
Posted by: FreewareList.net | November 04, 2006 at 03:33 PM
You have done an amazing job of consolidating all this information on 1 page. Keep up the great work!
Posted by: Michael the Whotspot Software Man | November 04, 2006 at 04:19 PM
Bits and Pieces or best intentions programming
which takes the following form
Start off with KISS or good methodology like AUP then gets applied as a Best practice, until the client changes the goalposts.
When it turns Agile, however this is usually superseded by Extreme programming or Pair Programming. depending on how much work is actually required given the time the project management team promised the client.
It usually goes though all or a least 6 of the other methodology's and ends up at a mixture
cowboy,
Kiss
Yagni
Quick and Dirty
and my own personal favourite , scream at the screen programming
regards
blambo
Posted by: Balmbo McFlambo | November 06, 2006 at 08:47 AM
In the no-framework direction my team and I usually use the concept of microcalls.
It's an even simpler way to do client/server connections like REST or XML/RPC.
It follows the KISS principle.
http://www.microcalls.org
Posted by: Friky | November 08, 2006 at 08:38 AM
Thanks for compiling a great list. Keep up the good work guys ! cheers, Mike.
Posted by: VideoKarma.com | November 08, 2006 at 07:28 PM
Design By Use can be found at:
http://home.comcast.net/~gslinker/maverick/DBU.html
Thanks,
Geoff
Posted by: Geoffrey Slinker | September 24, 2007 at 09:12 AM
Thanks! Is a bit more than I need, but always a great job! keep doing it
Posted by: Jose Torres | November 19, 2007 at 06:48 AM
I started (months ago) implementing Agile methodology with Scrum as the management process and D3 as the development process. I've seen a direct effect on colleagues' morale and quality of code produced.
Thanks for this post, it extends the zone of thoughts.
Posted by: Tarek Koudsi | November 22, 2007 at 10:15 PM