Based on Agile Manifesto there have 12 principles. These principles describe some characteristics and those characteristics make the difference of agile practices from a heavyweight process.
Satisfy Customer through early and contentious delivery of Valuable Software
- Deliver partially developed software within few weeks of start of the development
- Continue this delivery process throughout the entire life cycle of the project
- Each delivery should contain either new developed feature or update of previous delivered feature as per feedback of client
Customers can put these systems into production if they are functional enough. Otherwise they will recommend the functionality to change.
Welcome changing requirements, even late in development.
- Allow change of system as per customer feedback
- Help team to learn what needed to satisfy customer
- Design software structure flexible; so that change can be easily adapt.
Deliver working Software frequently from a couple of weeks to couple of months
- Deliver working software early and often that satisfies the customer’s goal/ meet customer’s need
Business People & Developers must work together daily
- Customers, developers and stockholders must have significant and frequent interaction.
- They will work together to make the product success.
Build projects around motivated individuals
- Build team with motivated individuals who are self-organized and cross functional
- Trust on the team to get job done
- Give better environment and all supports they needed
Face to face communication is the best form of Conversation even in co-location
Face to face conversation is the most effective and efficient method for conveying information within the team. So agile suggests
- Use face to face conversation so that attendees can see each other.
- In case of co-location can use video calls
Working software is the primary measure of progress
- Progress of a project measures by the amount of functionality of the software that meet the client’s need.
- Strictly disregards
- In which face the project is currently in
- The volume of documentation that have been produced
- Amount of infrastructure code has written
Here 30% done means 30% functionality is working properly.
Agile processes promote sustainable development
Agile project is not like a 100 meter sprint. It’s like a marathon. So the team will not run with full speed at the very beginning of the project because this will make them tired very soon as a result they will get slowdown. Running so fast can introduce burnout, shortcuts, and debacle. So they will run in such a speed so that they can maintain a sustainable pace thorough the entire project life cycle.
- Sponsors, developers and users should be able to maintain a sustainable constant pace
- Team will not work with full speed at the beginning of the project. It will make team tired very soon and they will get slow down.
- Working with full speed also can introduce bugs, errors and obstacles. So strictly avoid work with full speed
- Team will not try to do tomorrows work today although they have some time to do that. Instead they will save their energy to keep the pace.
- Team will always work at a rate so that they can ensure a constant pace as well as highest quality of the software for the entire life-cycle of the project
- Team will strictly keep their pace and don’t allow getting tired at any way.
Continuous attention to technical excellence and good design enhances agility
- Software should be clean and robust
- Team members should committed to produce high quality code
- This will ensure high speed also
Simplicity the art of maximizing the amount of work not done is essential
- Similar to Keep it Short and Simple (KISS) principle
- Avoid unnecessary complexity of the software
- Select the simplest path to meet the goal
- Don’t try to anticipate tomorrows work today
- Also don’t try to defend tomorrows problem today
- Do the simplest and highest quality work for today with confidence that it can be easily changes if there any problem found tomorrow
The best architectures, requirements, and designs emerge from self-organizing teams
- Agile team members are self-organized and cross functional.
- They will work together in a project; they will work as a whole to determine the best way to fulfill the responsibility
- No single team member is solely responsible for design the architecture or requirements analysis or test.
- All the responsibilities should be share to entire team
- All members should have influence over all the responsibilities
Regular adaptation to changing circumstance
- Team will concentrate on how to increase their effectiveness at a regular interval basis. Then tune and adjust as per observation result.
- Team contentiously adjusts its organization, rules, conventions, relationships etc.
- Team must need to change with the change of environment to remain agile.
CSM, CSPO, CSD, CSP-SM, CSP-PO (ScrumAlliance.org)
Certification Profile Link-
Currently working as Lead Team (Application Architecture) at Raven Systems Ltd. Passion for software development especially agile practices such as TDD with in depth knowledge of Object Oriented Programming, SOLID Principles, Gang of Four Design Patterns, Some Enterprise Application Architectural Patterns. Over 8 years of software development experience ASP.NET. Has the ability to understand and transform complex business requirements into software ensuring applications are delivered on time. Also experience in non Microsoft .NET technologies such as Dapper.Net, Git, Structure Map & Angular, Bootstrap, HTML-5, CSS-3 etc.