Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Introduction to Scrum and Agile Development

Recently I gave two days worth of talks introducing an organization to agile management and development with Scrum and XP practices.  I've made available the presentations and exercises for the betterment of mankind...or at least to get a few more people familiar with agile development.

  • Going Agile - Management.mht:  This IE-readable presentation walks through the basics and history of agile development, a close look at Scrum, its usage in actual project work, and selling agile development to clients along with an overview of various contract types.  As you may have guessed, this presentation is management oriented and was effective in convincing the "suits" that agile is a good idea.
  • Management Exercises.doc:  This contains a few exercises focusing on organization improvement and reducing waste.  The exercises were adapted from Lean Software Development by Mary & Tom Poppendieck.
  • Going Agile - Development.mht:  This presentation is very similar to the previous presentation but gets much more developer oriented after going through the Scrum basics.  It also has finer grained details concerning Scrum.  The developer oriented slides cover topics such as refactoring, test-driven development, acceptance testing, continuous integration, design by contract and a few important design patterns for writing maintainable software.
  • Development Exercises.doc:  This contains a few developer oriented exercises aimed at improving development efficiency, reducing waste, and honing refactoring skills.  Poppendieck's book inspired the first few exercises and Refactoring Workbook by William Wake inspired the refactoring exercises.  Although the exercises are in Java, it'll make perfect sense to C# developers alike.

After three years of working with agile techniques, suffering through many (self-induced) mis-applications of it, and seeing the beneficial results it has on project work, I can confidently state that there is simply no better way to develop higher quality applications with happier clients than with agile project management and development.  Although many agile approaches exist, the balance I've taken to prefer is a combination of:

  • Scrum for Project Management:  Scrum is very project management oriented and dictates a number of beneficial practices for increasing the visibility of project completion, improving the development process with retrospectives, and getting the client involved.  (Yes, I know XP recommends all this too, but management is Scrum's primary focus.)  Although Scrum recommends a 30-day iteration, my preference is to set sprint length at two weeks.  Two essential resources in your Scrum toolbox, to get you going (and keep you going in the right direction), are the Scrum Checklists available via InfoQ.com and Agile Project Management with Scrum by Ken Schwaber.
  • XP for Software Development:  XP is to development what Scrum is to project management.  Although I'm most likely preaching to the choir, XP is chock full of valuable suggestions for making you a more efficient and quality driven developer.  Kent Beck's Extreme Programming Explained is the obvious starting point for getting into XP.
  • Reducing Waste When Possible:  Even with Scrum and XP in place, there are always opportunities for reducing waste, improving communications, and increasing organizational efficiency.  Poppendieck's Lean Software Development, taking inspiration from Japanese manufacturing techniques, is an essential guide for augmenting your agile practices with waste reduction techniques.

While I'm in the agile mindset, I'll throw in Mike Cohn's Agile Estimating and Planning and User Stories Applied as two other vital bookshelf residents for rounding out the start of your agile process library.

Billy McCafferty
http://www.itsamuraischool.com 


Posted 08-15-2007 3:09 PM by Billy McCafferty
Attachment: AgileDev.zip

[Advertisement]

Comments

Derik Whittaker wrote re: Introduction to Scrum and Agile Development
on 08-15-2007 7:59 PM

Excellent post, great content.

Sean Chambers wrote re: Introduction to Scrum and Agile Development
on 08-15-2007 8:23 PM

Bill,

Excellent post. I was just looking for this exact information last week. I wish you would post more often because each one of your posts is a gem.

One question for you, I work for a school district and am the only developer on board. As a result I have read a few agile books but question whether any of the XP practices apply to me since I am the only developer. I have already tried to practice some scrum procedures mainly with keeping a backlog and using Trac for project management. Any other pointers in the right direction?

Thanks for the great post.

Christopher Bennage wrote re: Introduction to Scrum and Agile Development
on 08-15-2007 8:29 PM

I just started reading User Stories Applied and I'm very pleased so far.

Eric Brown wrote re: Introduction to Scrum and Agile Development
on 08-16-2007 7:33 AM

Thanks for the post...there are some great links and resources here.

Thanks again.

Eric

Billy McCafferty - Introduction to Scrum and Agile Development | Connecting Technology, Strategy and Execution wrote Billy McCafferty - Introduction to Scrum and Agile Development | Connecting Technology, Strategy and Execution
on 08-16-2007 7:52 AM

Pingback from  Billy McCafferty - Introduction to Scrum and Agile Development | Connecting Technology, Strategy and Execution

Billy McCafferty wrote re: Introduction to Scrum and Agile Development
on 08-16-2007 11:50 AM

@Sean,

It sounds cliche, but using agile practices by oneself, or any disciplined development methodology for that matter, requires a lot more discipline than when working on a team.  When on a team, developers feel accountable for showing each other the progress they made each day.  But when developing by yourself, it requires a lot more discipline to keep the processes in place.

With that said, I feel that Scrum/XP practices are just as relevant for the one person team as they are for average team sizes.  Here are the key things that help me when I develop alone:  commit to having a certain % of your code covered by unit tests and don't let it fall behind; make clear your development goals for each iteration and track your progress on a cordboard with index cards along with a burndown chart; and take 5 minutes each morning with your corkboard to note what you finished yesterday, what you're committing to accomplish today, and what's keeping you from being efficient.  (For me, I often note that I need to close Outlook for a few hours at a time...that's usually my biggest distraction.)

These recommendations really aren't too different than what Scrum/XP recommends for teams of any size; but when working alone, we often have to work a little harder to keep the processes in place since no one's looking. ;)  But if you do it, you'll find that development becomes more fun, that you're accomplishing more each day, and that you're building the experiences needed for future jobs that are using those same agile processes.

DotNetKicks.com wrote Introduction to Scrum and Agile Development
on 08-16-2007 11:54 AM

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

Sean Chambers wrote re: Introduction to Scrum and Agile Development
on 08-16-2007 7:33 PM

Bill,

Thanks for the tips. You don't know how much that really helps me. In the near future I will be working on much larger projects and want to make sure I have my ducks in a row.

I just completed a fairly large monorail/windsor/nhibernate project using ideas from your codeproject article. You can find it at http://www.flaglerschools.com. Thank you for the great articles and tips! Keep it up!

tobsen wrote re: Introduction to Scrum and Agile Development
on 08-20-2007 1:10 PM

good article, +1 Kick from me.

Jason Meridth wrote re: Introduction to Scrum and Agile Development
on 08-23-2007 1:29 PM

Do you happen to have a key to these exercises?

Are they mostly present in the Lean Software book?

The team I'm on used the developer exercises in a brown bag and enjoyed it deeply, just wanted to see if we missed anything.

Thanks.

Billy McCafferty wrote re: Introduction to Scrum and Agile Development
on 08-23-2007 2:06 PM

Glad you all enjoyed it!  The Lean Software Book and Refactoring Workbook are good resources to go along with the exercises.

art wrote re: Introduction to Scrum and Agile Development
on 10-05-2007 9:44 AM

Want to read the blog....

Patrick wrote re: Introduction to Scrum and Agile Development
on 05-19-2009 11:46 AM

Unfortunately the link to your presentations and examples does not work anymore (devlicio.us/.../AgilePresentationsAndExercises.zip).

I had read this a couple months ago and found it very good. Can you put this up again?

Billy McCafferty wrote re: Introduction to Scrum and Agile Development
on 05-26-2009 11:32 AM

Thanks for letting me know Patrick.  I have re-added the zip file to the bottom of the post.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)