What is Agile Software Development
Agile Software Development Methodology advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.
By implementing Agile software development methodology, we can start delivering software quickly and adapt to changes in the process of development, for example if you decide to implement a change or a new feature during the development. Agile helps organise the process of delivery around flexible scope and adaptive requirements of the client.
Agile Methodology Values & Principles
Agile software development values:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
Agile software development principles is based on twelve principles:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximising the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from organising teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
Agile Methodology in practice
Clear and concise project management
We employ simple yet effective agile project management. The basis of any project is a process called Scrum, a lightweight, iterative and incremental framework for managing complex work. Scrum meetings are held regularly, issues are identified rapidly and changes are communicated timely to the team. We believe communication is the key in delivering excellence.
Strict on schedule
We focus a lot of attention on planning. Our project managers and team leaders pay a great level of attention to detail, set realistic milestones and always consider the risk in their analysis. We follow the following principles:
- The project must be broken into as many phases as it makes sense logically
- Each phase must be divided into as many milestones, with many resulting in a measurable release
- Tackle the most difficult parts of the project first (the big rocks first approach); this helps tackle the risk early
- Progress tracking on the daily basis, with weekly or bi-weekly reports, depending on the project
Specifications in Agile
“A software requirements specification (SRS) is a description of a software system to be developed, laying out functional and non-functional requirements, and may include a set of use cases that describe interactions the users will have with the software.” – Wikipedia
Agile is based on the principle that creating specifications in too much detail is not in the interest of the customer, because high effort specifications take longer to create and will necessary get something wrong. In addition to this, the scope is likely to change as we get more knowledge about the solution and its problems.
With agile, the documentation is usually created with the current sprint or perhaps the next one. This is called “Just in time documentation” – it means that we create just enough documentation, just in time. Read more about this approach – “Just in time Documentation”.
We’d love to hear from you
We’d love to hear more about your requirement, and help you materialise your project — give our team a call on +44 (0) 20 8090 0828 if we can help.