Round-up of Processes, Methodologies, & Best Practices

Post by Jesse O'Neill-Oine

Here’s a nice round-up of the major processes and methodologies out there. I’m sure the list isn’t complete, but most of the major ones are touched on. It’s a nice reference because it’s short and sweet.

The author doesn’t specifically endorse any of them over the others, but I’ll go ahead and share my favorites in the Best Practices category (hopefully it’s obvious at this point that we endorse Agile processes and methodologies):

  • DRY (Don’t Repeat Yourself) – I’m always amazed at how an implementation can be flushed out to a nice design when you keep this in mind. When you force yourself to refactor out duplication, you often end up with a far superior design as a nice side effect. I tend to use the “Rule of 3″ with this; the third time I’m about to duplicate something, I try to refactor out the duplication. I find that trying to absolutely eliminate duplication can cost more time than it’s worth. See Refactoring to Patterns as well.
  • TDD (Test Driven Development) – I don’t have as much experience with this as I’d like, but even a taste of it has shown me that there is merit here. It can be a difficult mind-hurdle at first, but testing first has many benefits. You get increased test coverage (duh!), a fast feedback mechanism on what you’re doing, a simple place to start a complex problem, an organic design, etc.
  • YAGNI (You Ain’t Gonna Need It) – Trying to predict the future, especially in software development, rarely works out well. Just accept up front that you don’t need to worry about all the what if’s and life can be so much nicer. Not writing code is probably one of my favorite activities after removing unnecessary code. :)

Well, those are three of my faves; feel free to add any others that you like to the comments.

This entry was posted in Agile Processes. Bookmark the permalink.

You may also like:

One Response to Round-up of Processes, Methodologies, & Best Practices

  1. Ben says:

    Jesse you hit on some good ones, and there are many on the list. Here are three additional refactr faves:

    • Pair Programming – We use this a lot here at work. More interesting for me is how we sometimes pair a designer and a developer for work on more of the client side work.
    • Iterative and Incremental Development – One of the most important things we do is release new code each week. This allows for a great deal of flexibility and responsiveness to the needs of the client. We can essentially change course each and every week; accounting for shifts in focus and priorities.
    • KISS principle (Keep It Simple, Stupid) – Whenever I am trying to solve an interface problem, perhaps deciding between two or more options I know I can rarely go wrong by selecting the simplest solution.

    Great list!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>