Agile Development (from a Developers Perspective)
What is “Agile”?
Set of Processes for Development
Produce Better Software Faster
Misconceptions
Code and Fix
Way to Skip Documentation
Design-Free Coding
Skimp on Quality
Ignore Enterprise Concerns
A Magic Pill
What’s Wrong Today?
Fundamentally Flawed
Building Industry != Software Industry
Waterfall
 
Agile
 
The Agile Manifesto
While the items on the right have value, the items on the left are valued more….
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Agile Principles
#1: Happy Customers The #1 priority is to satisfy customers through early and continuous delivery of valuable software
Talk is Cheap The most efficient and effective method of conveying information is face-to-face conversation.
Effective Communication Poor Rich
Clear the Decks Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Results not Effort Working software is the primary measure of progress.
Inspect & Adapt At regular intervals reflect on how to become more effective and adjust accordingly.
Stay Debt Free Continuous attention to technical excellence and good design enhances agility.
Minimise Waste Maximizing the amount of useless work not done is essential.
You Touched It, You Bought It There is no distinction between “your code” & “my code”.
Soooo.....
What’s This Mean For You?
A Paradigm Shift
Communication Changes
Attitude Changes
Approach Changes
Practices Change
Let’s Talk About Practices
Scrum
 
Scrum Framework 3 Roles Product Owner Scrum Master Team Ceremonies Sprint Planning Daily Scrum Meeting Sprint Review Sprint Retrospective Artifacts Product Backlog Sprint Backlog Burndown Chart
 
Sample Product Backlog
 
Daily Scrum
 
 
 
Sample Sprint Backlog
Burndown Chart
Tools for Managing the Process
www.officeworks.com.au
Whiteboard & Pen
Engineering Practices (And Plenty Of Tooling)
Pair Programming
Quality
Time
Morale
Trust & Teamwork
Knowledge & Learning
Unit Testing & TDD
Add A Test Change A Little Code Run The Tests They Work! They Fail
DEMO
Mocking
RhinoMocks ( www.ayende.com/projects/rhino-mocks.aspx ) Nmock ( nmock.org ) EasyMock ( www.easymock.org )
Use Real Version Control
SubVersion ( subversion.tigris.org ) TortoiseSVN ( tortoisesvn.tigris.org )
Team Foundation Server
Continuous Integration
CruiseControl.NET ( ccnet.thoughtworks.com )
TFS with TeamBuild & TFSIntegrator ( notgartner.wordpress.com & blogs.madtechnology.net/blogs/chris )
MSBuild or NAnt
Metrics
Low Code Debt
FXCop/MSTest SourceMonitor ( www.campwoodsw.com )
 
Code Coverage: Ncover ( ncover.org ) NCoverExplorer
Functional Testing
SharpRobo ( sharprobo.thoughtworks.com ) NUnitForms ( nunitforms.sourceforge.net )
Selenium ( www.openqa.org/selenium ) WatiN ( watin.sourceforge.net ) Test Recorders Available
Mercury ($$$)
Acceptance Testing
FitNesse ( fitnesse.org ) WatiN Fixture ( www.sourceforge.net/projects/watinfixture ) NBehave ( www.codeplex.com/nbehave )
Automate Install Kits
WiX
Performance Testing
dotTrace ( www.jetbrains.com/profiler ) ANTSProfiler ( www.red-gate.com/products/ants_profiler )
Documentation
Wiki’s
Code Comments (SandCastle)
Keep Your Tools Sharp
Know Your IDE
Hanselman’s Tool List ( www.hanselman.com Tools List)
Tips For Success
Attitude & Approach
The Customer Decides (most of the time)
Architects Have To Code
Don’t Take Shortcuts
Keep It Releasable
Question Until You Understand
Work As A Team
Collective Ownership
Work For A Result
Blame doesn’t fix bugs
See A Problem.... Fix A Problem
No Gold Plating
Think About It
Any Questions?
Richard Banks http://richardsbraindump.blogspot.com Readify RDN Sessions http://www.readify.net/rdn

Agile Development From A Developers Perspective