Agile Methodology

Question of the day?

Would you like to consider Comnez as your technology outsourcing provider?

 Yes     No

Submit

 

Agile Methodology

Agile methodology is a method of software development that is based on requirements change management and high involvement of the stakeholders with the development team throughout the project. This is one of best ways for getting the desired software but has certain limitations in certain types of software development projects. There are a few important concepts one needs to understand to get an overall idea of agile methodology. The following paragraphs will try to address the various aspects of this popular method of software development.

Motivation behind Agile Methodology

The primary goal of any software development project is to deliver an end product that satisfies the needs of its stakeholders. In order to achieve this goal, the product must be designed to fit the needs of the customer/end users.

Agile methods realize that it is often impossible to visualize all the requirements at the very beginning of a development process. Additional requirements emerge as the software development is in progress. These requirements often change because:

  • Stakeholders realize that the system is missing a feature that they did not foresee during the  initial requirements phase
  • Stakeholders gain deeper insight about their actual needs as they realize that the system developed is not what they needed
  • Change is company values, business models and processes
  • Markets change and new requirements are added to the product
  • A defect is found in the system and needs to be addressed

The emphasis of Agile methods are on the importance of simplicity and embracing change because the requirements certainly change for the reasons stated above. Realizing the fluid nature of any software development project, we can easily establish that keeping track of new requirements and managing existing requirements is a challenging task. Agile methodology provides a solution to software development by introducing a dynamic and highly participatory way to tackle requirements engineering.

Agile Change Management

Requirements will almost certainly emerge during the development process. The new requirements are changes to the existing requirements and these changes must be managed throughout the development process. Changing system requirements require a constant and organized management of system requirements in order to ensure that the development process is moving in the right direction. Similar change management approaches are offered by Agile methods.

In Agile methodology only the key requirements are handled at the beginning of a software development project and the remaining requirements are gathered while the project progresses. It is very important to have an Agile Change Management process in place right from the beginning of the software development life cycle. This helps the team with freezing requirements during an iteration cycle and modeling ahead in order to obtain foresight. Prioritizing and estimating requirements are also integral to the change management process.

Agile is heavily based on hidden knowledge, skilled and motivated employees and frequent communication. It is also useful to monitor the progress and workload of the software development team. Agile methodology is more people oriented than process oriented. It is well suited for a small project or at the beginning of any medium sized project.

Comnez has handled several projects using Agile methodology and our teams have produced outstanding results on each of those projects.

Extreme Programming (XP)

Extreme programming is a development technique that mainly focuses on the features that are going to be built, rather than creating detailed requirements specification at the beginning of a project. For storing and managing the requirements, the development team uses a stack for the validated, prioritized and estimated requirements which need to be implemented before the product is finished. Some of the possible changes to the requirements stack are:

  • New requirements are validated, prioritized, estimated and added to the stack.
  • Changes to existing requirements are made by taking the requirement out of the stack and handling it like a new one.
  • Unnecessary requirements are simply removed from the stack.

Other elements of Extreme Programming include: programming in pairs or doing extensive code review, unit testing of all code, avoiding programming of features until they are actually needed, a flat management structure, simplicity and clarity in code, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.

Limitations of Agile Methodology

Where Agile methodology has several advantages, it is not preferred for all types of projects. Our professionals carefully evaluate a project and select the appropriate development model to maximize the return on investment for our customers. Our goal is to complete the software project using the most efficient model of software engineering for that project. Below are certain vulnerabilities of agile methodology:

  • Accurate cost estimation is unrealistic and nearly impossible for the proposed software project. The agile methodology emphasizes on an adaptive methodology rather than being predictive.
  • Stakeholders must be responsible for making decisions and providing information on a timely manner. Without effective stakeholders' involvement, the development poses greater risks to the project.
  • Highest priority requirements become a very large scope to handle effectively. Stakeholders must prioritize the requirements in a proper way.
  • XP presumes that all the stakeholders are technology oriented
  • Scaling the development team can be challenging in terms of project management
  • Managing traceability with requirements tools can be difficult.
  • Agile can't be used in large projects or very big teams

Now that you have an overview of the Agile methodology at Comnez, we assure your that we will always choose the right development methodology for your projects and handle the process very effectively.