Agile development practices within a traditional sdlc

I was recently involved in a project as the development team lead where we successfully applied a number of "agile" development practices within a traditional software development lifecycle (SDLC). I have agile in quotes as we weren't following any particular methodology, we just took different practices (not all of them agile) and applied them in a successful way.

I want to outline the things we did and how it helped us be a more efficient, effective team. These development practices were applied within a fixed scope, fixed timeframe environment.

  • Use of user stories
    This practice originates from scrum and xp I believe. We broke the requirements down into cards that each described a single user interaction with the system. From here we had a member of the test team help us write acceptance criteria, the things that must occur for the story card to be accepted or complete. This was a great way to organise development and track/measure the progress of the development team.
  • Delivery in milestones
    In an FDD manner we delivered useable software in fortnightly milestones. This allowed us to get regular feedback on the working software from our sponsor and built confidence in our work and progress. The user stories made communicating the content of these milestones easy.
  • Co-location
    Lots of methodologies endorse this, much as it may seem obvious it makes a big difference to the workings of a team. We had the development team all sitting together in a 'pod' along with a fulltime tester and a part time business owner. This resulted in easier, earlier communication all-round.
  • Daily builds
    We had a daily build process where the tester in the 'pod' was running the previous days build. This was a great way to bring forward any testing feedback, so where possible issues could be sorted out within the milestone while the suspectible user story was fresh in the development teams mind.
  • Morning standup meetings
    Everyone STANDS. The key here is speed. Quick resolution of issues and everyone kept on the same page.
  • Continuous Integration (CI)
    Another XP practice. We had automated builds both CI and the daily build which ran like clockwork. The benefits of unit tests are a whole seperate post, we had 650 of them at project completion.
  • Code Review
    We had a policy that before any code is checked into the repository it must be reviewed by any other member of the development team. This results in shared knowledge, learning and an increase in quality.

All of this resulted in a measurable increase in quality, and a successful project. While we may not be able to always run agile projects - there is no reason we can't use good engineering practices in all the work we do.

 

Tags: , , , , ,

Comments

development
development United States
4/21/2010 7:41:09 AM Permalink

This is a good piece, I was wondering if I could use this article on my website, I will link it back to your website though. If this is a problem please let me know and I will take it down right away.

trackback
DotNetKicks.com
4/24/2010 10:02:11 PM Permalink

Agile development practices within a traditional sdlc

You've been kicked (a good thing) - Trackback from DotNetKicks.com

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading