Sunday, November 8, 2009

SWOT Analysis On Agile Methods

SWOT is an acronym of strength, weaknesses, opportunities and threats. The main intention of this analysis is to specify the organization’s internal and external factors that are favorable or unfavorable for companies to achieve particular business objective. Strength and weaknesses are included within the internal factors, while opportunities and threats are part of external factors.

1. Strengths

Aligned with the business
There is evident alignment between agile development and business. The basic idea of these methods is that only business features that bring more value can be built, making these methods to be completely business-driven. This is because these methods are:
- providing flexibility – fast response to customer requirements
- faster – providing the highest return on investment
- cheaper – early delivery can lead to less time spent in development

High visibility of process
Agile principles allow the stakeholders to participate throughout the development process and project progress to give requirements and provide feedback. Business people and developers work together daily throughout the project (Cockburn, 2002).

This keeps the stakeholder updated in every stage of the process and provides visibility for the project’s progress.

Flexibility to change
In every iteration, change can be accepted and expected in agile methods. Agile welcomes changing requirements, even late in development. Agile process harness change for the customer’s competitive advantage (Cockburn, 2002). As the process of development is underway, requirements can emerge by the stakeholders who are actively involved in the process.

Reduced time to market
Agile techniques are incremental and can deliver the business value early, cost or revenue savings can be figured out sooner and the highest return on investment is provided.
Early delivery is also mentioned in one of the Agile Manifesto principles: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale (Cockburn, 2002).

Cost control

Agile uses time-boxing to control schedule and is encouraging the customer to prioritize all product functionalities that will be delivered. Using such a fixed timescale enables a fixed budget. Due to the evolutionary and iterative nature that agile techniques have, wasteful overheads, mistakes in requirements or architecture can be corrected in time without affecting the predetermined budget.

Risk management
The visibility in agile development helps to discover early any possible issue which might contain a potential risk. If this occurs, any required decision can be taken as soon as possible to mitigate that risk. Further, these risky items are considered as top –priority for the team, unless they are solved.

2. Weaknesses

Intensive customer commitment needed
One of the basic principles of agile development is to have continuous collaboration with the customer in order to deliver the demanded product. As the principle of active user involvement and close collaboration is highly recommended in agile environment, it requires very intensive commitment and concentration by the user throughout the development process. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation (Cockburn, 2002).

Constant need for testers

Testing is an integral part of agile projects helping to ensure the quality and the correctness throughout the project. The incremental nature of these methods implies that after completion of every iteration, the product must go through testing procedure before it can reach the market. For the tester, the most important things to note about Scrum are its iterative lifecycle
and frequent communication (Kohl, 2005). This requires the involvement of testers after each sprint or iteration. Even though testers are crucial during the project lifecycle, their involvement for every sprint will increase the cost of resources significantly.

Not suitable for offshore outsourcing

I already elaborated that agile methods work perfectly with collocated teams because the stakeholders are local and available for participation providing feedback at real time. Taking into account that fact, many questions can arise: What if we do not have face-to-face communication and teams are spread out between multiple locations with different cultural backgrounds. How agile techniques can help to mitigate the challenges of off-shored/distributed projects? Will the reaction for change be fast enough? (Ambler, 2003) believes that adopting agile techniques will be troublesome and taxing for offshore outsources due to cultural and communication barriers.
Even though teams can rely on recent technological tools for online communication such as videoconferences, VoIP4, or wikis5; the issue of security remains as a potential threat to this communications.

3. Opportunities

Team empowerment
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done (Cockburn, 2002). The teams need to receive continuous support, trust and empowerment to make decisions about how to respond to change and how to build the best architectures and designs. All the requirements must be collected and refined or prioritized by the whole team, and make collective decisions and agreements about the tasks that have to be delivered.

Revolutionize the business
Using agile approach, the team learns more about the customer side and can better develop software that meets the business needs. Recently, agile methods are becoming trendy and application development teams are increasingly following these methods.


4. Threats


Security and quality of communication when outsourcing
Communication is the key issue in development. Development is a lot easier when the teams are collocated and the IT and the business individuals are located in one location. For projects that are spread in multiple locations or are outsourced, this communication becomes more complex. The teams will face difficulties to track and monitor the development activities and to adapt to business needs and circumstances. Therefore, teams should use tools for online collaborations. When using these technologies for communication such as VOIP, videoconferences, teams must take into consideration many factors concerning the quality, reliability, security and safety of this type of communications. All these factors, if not managed properly can lead to lack of visibility of project progress, feedback delay, and reduced communication bandwidth.