Filter posts by Category Or Tag of the Blog section!

Agile fundamentals and Principles

Thursday, 16 August 2012

"Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001." Wikipedia

What is all the fuss about !?

Every product has its own developing process and defiantly software has its own and one of the best new ways for creating software is agile. Agile is Not a framework or methodology, they say! It is a kind of thinking that has some manifesto and principle to reach the best software products. Agile is something like Lean (if you are familiar with) to creating a better product and so-called to create what exactly customer wants. Agile has no any complex concepts to go through or spend more and more time to discover what's going behind, remember that every newly tools, discovers, knowledge's and etc. are for making things simple.

In traditional waterfall project management, everything is by sequence, for example, you create the User interface, database, code and finally test the project to make it prepared to deliver to the customer. but In agile, the customer is in the process of creating the software and everybody like a developer, Product owner, domain expert sees the product result in developing process and unlike waterfall method, it's not only the developer or product manager who can estimate the future of the project. one of the agile purposes is customer satisfaction.

agile could be used in many industries Like lean but it mostly is seen in software development. As I said Agile is unlike waterfall approach, it's based on group working and separation of concern . also there is a Big issue in software developing and it is changing, changes are inevitable in every software project, In the agile approach, Changes are easier because of breaking large scenarios to small. Agile is based on testing the product in the process of developing not at the end by product owner! Agile doesn’t mean without a group of people in communication.


Agile Glossary and terminology

There are lots of agile terminology and framework that You can see the list of all them here.


As mentioned in the agile manifesto official website, agile is :

  1. Real-Time Planning
  2. Emergent Design
  3. Integrated Testing
  4. Collaborative Discussions
  5. Just-in-Time & Just-Enough Requirements

And also Agile has 12 main and famous principle,  I've listed them below :

  1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is the face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity — the art of maximizing the amount of work not done — is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.


take a look at these links for complete information :


Category: Software

comments powered by Disqus