tags:

views:

1784

answers:

13

How do I get started in Agile and TDD. I have learnt a bit about Agile, but finding it difficult to get started. How do I get started.

+2  A: 

I think you can start with the Agile Manifesto.

John
+1  A: 

Well, first off you have to read the Agile Manifesto to understand the motives behind Agile.

That being said, there are a lot of "introduction to Test Driven Development" documents online (just Google for them) available, but you have to be specific as to which language you will use it in.

Jon Limjap
+7  A: 

Well the first thing I would do is decide what goal you are trying to achieve. There are several different 'agile' methodologies out there that attempt to tackle different things. Often times you can mix and match good ideas from each one of these. I'd check out Scrum, which is a great all around methodology that easily mixes with other agile practices. XP, which has many great tips from a developer aspect, especially TDD and continuous integration. I'd also check out Lean Software Development.

Once you've had some time to look at these and know what you want, I'd pick the practices that best suit your needs. One thing I've learned about agile is that you just have to pick some simple steps like Scrum and jump in headfirst. Do the daily scrums / stand up meetings, do TDD, determine Sprint/iteration times and stick with it. At the end of every sprint have a good retrospective to see what worked and what didn't work. Then plan on improving the process the next time.

Sam Merrell
+1  A: 

The reading is good, but there's nothing like real-world experience when learning software engineering methodologies. My first pick would be to get a small team at work to try out agile on a little pet project - something management won't get too fussy about. If this isn't possible, try to get involved in an open source project that uses agile (or spiral or waterfall or whatever methodology you want to try).

James A. Rosen
As a beginner, combining open source with agile may be difficult because team members on OS projects tend not to be in the same physical location. Distributed agile introduces additional challenges beyond agile basics.Is there an agile users group in your area? That could be a good start.
JeffH
+3  A: 

This is my favourite blog post about Agile:
http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html

I think you can learn a lot from it.

John Smithers
+1  A: 

Kent Beck's Extreme Programming Explained: Embrace Change book is a great concise read on XP topics.

Also check out his Test Driven DEvlopemnt book altough I prefered David Astel's Test Driven Development: A practical guide

That would be enough to get you started on XP at least.

John Nolan
+1  A: 

I used John Boodhoo's screencast to learn TDD.

Dan
+1  A: 

I think Alistair Cockburn has a very good and basic view of what "Agile" is all about. He is more for being critical even about Scrum etc. I think one could say he is for - " Try to find what works for you "-methods.

Why not listen to him?

Podcast 1

Podcast 2

epatel
+1  A: 

Agile and TDD are really 2 separate disciplines you can work on together or independently. XP (Extreme Programming) is an Agile method that includes TDD but you can certainly do other methods than TDD.

To get started with Agile, there's a couple of really good books. Agile Software Development with SCRUM by Ken Schwaber is how I started. Scrum is more of an project management methodology. It doesn't have much to say about TDD or other engineering practices but as far as the core agile processes of iterations, tasks, etc., Schwaber is a good resource. The Art of Agile Development by James Shore is also a good overview. I'm a Java guy so I like Agile Java as well but ymmv.

As far as TDD, I recommend getting familiar with your language's flavor of the xUnit unit testing framework. Once you're familiar with writing tests in general, you'll be better equipped to write them first. I'm just getting used to TDD myself so I don't have any book recommendations on that one but any articles or books about XP should get you going on that.

All in all, I'm a huge fan of Agile methodologies but the key to starting out is to do what works for you. Don't get caught up in being strict about anything to the point of hurting your practice or productivity. If you don't get ramped up to 100% test coverage with TDD immediately, fine. Just work on it. The rewards will come and if you're like most Agilists, you'll learn to love it quickly.

MattGrommes
A: 

Agile and TDD are two different things.

Agile is a principle of thought coming from a manifesto. It addresses e.g. the human factors of software engineering. The Agile Manifesto clearly states the following:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

There is a lot of buzz associated with Agile and many methodologies try to claim they are agile.


Test Driven Development (TDD) has the following equation:

TDD = Test First + Refactor

Test first means before you do any coding you write the test first (typically done with one of the many xUnit frameworks). This leads to ease of refactoring (i.e. the process of changing the internals of code but keeping the external behavior). There are many pitfalls associated with writing tests, so find someone experienced and let him or her explain it in detail with you. There is much to learn when you do TDD.

Now go get 'em tiger!

Spoike
A: 

You could take a look at tddTestDrive.com

I put the website together last year based on a tdd workshop I do for TDD newbies (ranging from testers -> managers -> analysts -> seasoned coders). It runs through a simple TDD session (writing a function to convert integers to roman numerals) using Excel and VBA. Some of you hardcore programmers my choke at the mere thought of using Excel and TDD in the same sentence but pop over to the webiste (ignore the poor editing) and take a quick look at the exercise. The tests (e.g. 1 = i, 2 = ii) go in the spreadsheet, you write the function in VBA, you throw in a a little conditional formatting. It's really easy to follow, it's really easy to get started and since it's not nearly as threatening as some "real" programming environments.

A: 

http://agileinaflash.blogspot.com/2009/07/essential-unit-test-cards.html.

Digest the info in these cards, especially UncleBob's three rules and the Red-Green-Refactor idea. Then read the others and start practicing.

agileotter