Modern software development methodologies
Softwares projects are often considered pale due to inability to cater to changing user requirements.
Modern software methodologies encourage using shorter iterations, an iteration is a single development cycle that delivers a limited set of features which is usually done in 1-2 weeks.
Agile software methodologies:
A group of software methodologies and practices that enable to accommodate frequent changes in user requirements during the project time period. They are based on iterative and incremental development.
Dynamic systems development method
Feature driven development
Agile software methodologies:
Accepting changes in requirements anytime
Customer centric software development
Light weight software development (less prominence to documentation) Good for small teams of experts
Agile manifesto is a formal declaration of 4 key values and 12 principles to guide an iterative an people centric approach to software development
4 key values of Agile
Individuals and interactions are valued over processes and tools Working software is valued over detailed documentation Customer collaboration is valued over a contract negotiation Responding to change is valued over following a preset plan
Extreme Programming (XP)
An agile methodology which is intended to improve software quality and responsiveness to changing customer requirements.
XP specialised in quality, XP specialised to adapt to change
Risks of XP:
4 control variables of XP projects:
External parties (clients, managers etc) can decide the values of any 3 variables the XP team get to pick the value for the 4th variable. Deciding the values for the 4 variables is done in a transparent manner.
The 12 practices that define XP:
The planning game
1. Planning game
A meeting attended by both IT and business tea that is focused on choosing user stories for one iteration.
User stories are provided by the end users.
2. Small releases
XP releases are small in terms of functionality (1-2 features per iteration)
XP encourage using a naming concept for classes and methods that make it easy for a team member to guess the functionality of a class or method just by its name.
This supports stand-up meetings
A stand up meeting is held every morning to communicate problems, solutions an promote team focus each member has to tell:
What was accomplished yesterday
What will be attempted today
What problems are causing delays
It is a time-boxed meeting where everyone stands up in a circle
4. Simple design
Do as little as needed. Only the basic features the customer wanted.
Avoid unnecessary complexity, abstractions, expand ability in the design.
Unit test- test small code unit
Changing the internal structure of software time to time to make it easier to understand and cheaper to modify without changing its observable behaviour
7. Pair programming
Two developers are assigned to code one module. One person concentrates on...
Please join StudyMode to read the full document