Subscribe :: Bookmark and Share

Random ravings from

sponsors

eBay Auctions

IBM X220 EServer PIII 1.2 GHz/512 mb Server   IBM X220 EServer PIII 1.2 GHz/512 mb Server
USD$95.00 Bids: 0
Location: US
General Technics PIII 1.2 Ghz Blade Server 512MB 20G   General Technics PIII 1.2 Ghz Blade Server 512MB 20G
USD$9.00 Bids: 0
Location: US
HP DL380 G5 DUAL CORE 1.6 GHz 4GB 4x 72GB SAS Server 2U   HP DL380 G5 DUAL CORE 1.6 GHz 4GB 4x 72GB SAS Server 2U
USD$2,995.00 Bids: 0
Location: US
Tyan Server S2882-D Dual AMD Opteron 248 2.20 GHz, 8GB   Tyan Server S2882-D Dual AMD Opteron 248 2.20 GHz, 8GB
USD$750.00 Bids: 0
Location: US
Sun Fire V210 Server w/  2 x 1.34 GHz / 4Gb / 2 x 73GB   Sun Fire V210 Server w/ 2 x 1.34 GHz / 4Gb / 2 x 73GB
USD$3,400.00 Bids: 0
Location: US

07 April 2008

Agile Development

Comments (0)

Agile methodologies seem to be a bit of buzz word lately. A lot of people seem to be using the term in different ways. What is it exactly?

To me Agile is an umbrella term that encapsulates many different things, but its heart is the recognition that a large number of software development projects were failing and perhaps there could be a better way for most projects.

Basic principals of Agile Software Development

  • Customer satisfaction by rapid, continuous delivery of useful software
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Even late changes in requirements are welcomed
  • Close, daily cooperation between business people and developers
  • Face-to-face conversation is the best form of communication (Co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances

Several different interpretations of the Agile manifesto

I've tried to use & implement various agile components process in a number or projects, From short 6-8 week projects with a couple of developers to 18 month projects with up to 50 resources and hundres of stakeholders. Success depends upon the willingness to negotiate, the team's confidence of domain expertise, and the willingness to try new things. Team members who can see the benefits become motivated & start to champion elements effecting their domain.

Issues for Client

  • Fixed price bid versus Agile is difficult to accept
  • Acceptance of negotiation; from the beginning acknowledge that requirements will most likely change
  • In return they will get an increase chance of success or at least fewer suprises; this is your chance to leverage 50+ years of software development experience
  • Accepting greater risk; trading off a fixed price contract with a higher level of progress feedback. This gives clients the ability to hit the stop or review button much earlier.
  • Accepts greater involvement and responsibility; providing accountable feedback earlier in the process.

Issues for Project Managers

  • Split the project into as smaller iterations as possible. An iteration being when something useful is complete.
  • User stories lead to less detailed specifications to write & update.
  • Be more proactive in managing scope-creep,resource workload & resulting budget changes
  • Involve the team in task planning
  • Enforce use of tools amongst team - wiki updates, bug-tracking, task pool, daily builds, test coverage [BDD & TDD]

Issues for Programmers

  • Closer interaction with client/customer leads to increased understanding, but can lead to unplanned for feature creap.
  • User stories provide less detailed specifications, must think before coding
  • Smaller milestones mean regular deadlines
  • Behaviour Driven Development [BDD] & Test Driven Development [TDD] means developers will have to get used to writing their own tests [unit/functional/integration].
  • Developers should split code into very small routines - which are easier to test, reuse and share
Just to recap. There is no silver or golden bullet. What works best in one environment may not work in yours. It's ok to pick & choose elements, and to introduce them slowly.

Leave a comment
Name (required)
 
Mail (will not be published)(required)
 
Website
 

 

Back