Ken Block

  • Digg this article
  • Sphinn this article
  • Stumble this article
  • Facebook
  • del.icio.us
  • LinkedIn
  • Twit this article
Posted by John
on Saturday, 15 November 2008

...just might be The Stig ;-)

Agile Tips + Definititions

  • Digg this article
  • Sphinn this article
  • Stumble this article
  • Facebook
  • del.icio.us
  • LinkedIn
  • Twit this article
Posted by John
on Saturday, 04 August 2007

Agile software development is a conceptual framework for undertaking software engineering projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project.

Tips for an Agile Developer

  1. Blame doesn’t fix bugs
  2. Don’t fall for the quick hack
  3. Criticize ideas, not people
  4. Do what’s right
  5. Keep up with changing technology
  6. Raise the bar for you and your team
  7. Learn the new; unlearn the old
  8. Keep asking why
  9. Tackle tasks before they bunch up
  10. Let your customers decide
  11. A good design is a map; let it evolve
  12. Choose technology based on need
  13. Keep your project releasable at all times
  14. Integrate early, integrate often
  15. Deploy your application automatically from the start
  16. Develop in plain sight
  17. Develop in increments
  18. Estimate based on real work
  19. Use automated unit tests
  20. Use it before you build it
  21. Different makes a difference
  22. Create tests for core business logic
  23. Measure how much work is left
  24. Every complaint holds a truth
  25. Write code to be clear, not clever
  26. Comment to communicate
  27. Actively evaluate trade-offs
  28. Write code in short edit/build/test cycles
  29. Develop the simplest solution that works
  30. Keep classes focused and components small
  31. Tell, don’t ask
  32. Extend systems by substituting code
  33. Maintain a log of problems and their solutions
  34. Treat warnings as errors
  35. Attack problems in isolation
  36. Handle or propogate all exceptions
  37. Present useful error messages
  38. Use stand-up meetings
  39. Good design evolves from active programmers
  40. Emphasize collective ownership of code
  41. Be a mentor
  42. Give others a chance to solve problems
  43. Share code only when ready
  44. Review all code
  45. Keep other informed

reference: practices of an agile developer, pragmatic programmers

Scrum

  • A product backlog of prioritized work to be done;
    Completion of a fixed set of backlog items in a series of short iterations or sprints;
  • A brief daily meeting or scrum, at which progress is explained, upcoming work is described and impediments are raised.
  • A brief sprint planning session in which the backlog items for the sprint will be defined.
  • A brief sprint retrospective, at which all team members reflect about the past sprint.

Extreme Programming (XP)

  • An attempt to reconcile humanity and productivity
  • A mechanism for social change
  • A path to improvement
  • A style of development
  • A software development discipline

Waterfall Model

The waterfall model is a sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through it’s phases;

  1. Requirements specification
  2. Design
  3. Construction (aka: implementation or coding)
  4. Integration
  5. Testing and debugging (aka: verification)
  6. Installation
  7. Maintenance

As you can see the more Agile methods like Scrum and XP offer development teams the ability to evolve their products and bring them to market faster with a greater emphasis on rolling development and successive betas boiling down to a final solution.

Enjoy,

John.