Methodologies
The Waterfall Method
- The Waterfall Method is a type of software development that focuses on a set lifecycle.
- In each stage, there is a set of activities that must happen in a certain order, and a set of outcomes (called 'deliverables') that must be produced and signed off as completed by the Project Manager for each stage before the next one is started.
- An example of a Deliverable is a report or documentation.
- Notice with this model that there is nothing stopping a stage feeding back into an earlier stage, so that the project can constantly loop around until it is perfect!
The Aglile Method
- The Agile methodology focuses heavy on delivering small working pieces of code that can be easily implemented into a larger codebase.
- This approach has blown up as a result of Object Orientated Programming because of the modular nature of the code.
- Agile has a set of values to follow:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan.
- These are only rough guidelines.
- The Agile methodology is iteritive and goes round and round until the project is complete.
Extreme Programming (XP)
- Work on one thing at a time, incrementally.
- Release as many small releases as possible, as quickly as possible, to get as much feedback as possible.
- Use metaphors in documentation e.g. the Shopping Cart' is often used as a metaphor for the online shopping experience.
- Always use the simplest design to get the function working. Don't add things that may not be used.
- Test everything. Use automatic testing if possible.
- Design as you go, making improvements when you need to.
- Program in pairs or small groups, to allow discussions about requirements, designs, coding, testing etc.
- Anyone on the team can make a change to code at any time - everyone owns the code.
- The entire product is constantly being tested as new parts are added.
- The teams should not be stressed out when they work, trying to meet unrealistic deadlines by working late and weekends and not seeing their families, for example.
- Everyone in the team should aim to be able to do anything that needs doing; generalisation rather than specialisation of team members.
- Everyone in the team should know and follow whatever standards are agreed.
- Aim for constant and direct customer access, to facilitate feedback and general communications.
- XP is different to other Agile Methodologies in that it has an iteration time of from one to four weeks for each production of software.
- XP focuses heavily on the aspect of Agile that involves delivering small working packets of code.
- It also uses lots of storyboards which allow prioritisation of tasks and due to it being object orientated, it doesnt require a linear approach.
- However the lack of a linear approach may make it hard for a customer to understand the methodology.