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
- Blame doesn’t fix bugs
- Don’t fall for the quick hack
- Criticize ideas, not people
- Do what’s right
- Keep up with changing technology
- Raise the bar for you and your team
- Learn the new; unlearn the old
- Keep asking why
- Tackle tasks before they bunch up
- Let your customers decide
- A good design is a map; let it evolve
- Choose technology based on need
- Keep your project releasable at all times
- Integrate early, integrate often
- Deploy your application automatically from the start
- Develop in plain sight
- Develop in increments
- Estimate based on real work
- Use automated unit tests
- Use it before you build it
- Different makes a difference
- Create tests for core business logic
- Measure how much work is left
- Every complaint holds a truth
- Write code to be clear, not clever
- Comment to communicate
- Actively evaluate trade-offs
- Write code in short edit/build/test cycles
- Develop the simplest solution that works
- Keep classes focused and components small
- Tell, don’t ask
- Extend systems by substituting code
- Maintain a log of problems and their solutions
- Treat warnings as errors
- Attack problems in isolation
- Handle or propogate all exceptions
- Present useful error messages
- Use stand-up meetings
- Good design evolves from active programmers
- Emphasize collective ownership of code
- Be a mentor
- Give others a chance to solve problems
- Share code only when ready
- Review all code
- 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;
- Requirements specification
- Design
- Construction (aka: implementation or coding)
- Integration
- Testing and debugging (aka: verification)
- Installation
- 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.













