Thursday, September 6, 2007

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)
  • Best Practice
    • The best way to get a specific outcome your looking for.
  • Constructionist design methodology (CDM)
  • 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)
  • 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
  • KISS principle (Keep It Simple, Stupid)
    • Everything should be done as simple as possible.
  • MIT Approach (Worse is better)
  • Open Unified Process
  • 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)
  • Spiral model
  • Software Scouting
    • Experiment before building (proof of concept, prototypes, mocks, simulations, etc.).
  • Test-driven development (TDD)
  • Unified Process
    • Iterative and incremental software development process framework that can and
      should be customized before use by any organization.
  • Waterfall Model
  • Worse is better (New Jersey style)
  • You Ain't Gonna Need It (YAGNI)



Article grabbed from Software Development in the Real World. Powered by ScribeFire.

No comments: