Agile Software Development

606-agile.jpg

In a March 2012 article from Computerworld, the author asks, “Is your outsourcer agile enough?” She makes the case that it is rare for an outsourcer to be successful in delivering agile development. We believe that outsourcing agile development can not only be successful but in some cases more beneficial to a company.

Many companies feel that it is more helpful and effective when all developers are in the office because it is easy to connect, ask questions and adapt. In the short term, this is a great approach. However, if the bulk of work is done this way, there is limited written documentation and communication retained. If a developer is not present in the room during the exchange, he will not be privy to the information that was shared. Even having employees in separate rooms can help move communication from a verbal format to written.

Web Development Services and Solutions Require the Most Reliable Partners Explore how Svitla Systems can guide your web development journey with expertise and innovative solutions. Contact Us

Why is this important?

Written documentation or requirements are important in planning the next stage of activities. Often, a team of developers are brought into a project after the project begins. If a majority of work was not documented and is only passed on verbally, all of the transmission of knowledge about the project must again be passed on verbally. Inevitably pieces will get lost in transmission, much like the children’s game “Telephone.” As information passes down each consecutive link, it can get distorted, misinterpreted or omitted.

Written documentation provides a road map of the project. A team working together in the same room may not develop this because they don’t need it – they have each other. If new team members are brought into the circle on a regular basis, and written communication is missing, the existing team members must recycle all of the information to the new team member. The Computerworld article states, “Companies that do outsource agile development will inevitably face tough tradeoffs: They’ll likely have to give up some agile principles, as well as some of the cost savings typically associated with outsourcing.” However, as can be seen in our example, depending on in-house verbal communication, project management can be a big loss of time.

While there may be some challenges that exist with an offshore agile developer, the long term project benefits can end up saving a lot of time and headaches during the project life cycle.

FAQ

What is meant by agile software development?

Agile software development refers to an iterative approach, meaning it consists of a continuously evolving set of requirements and solutions made possible by close collaboration between developers and stakeholders with regular feedback and adaptation. This approach means effective communication practices when outsourced – not just co-location, but written documentation that preserves knowledge beyond verbal conversations in one room. Thus, agile outsourcing does not rely on informal in-person exchanges (that can be lost or even misinterpreted like the game “Telephone”) but rather relies on clear shared artifacts as a roadmap for current and future team members to follow. If done this way, offshore agile development will reduce long-term time loss and confusion and may even be better than purely in-house, verbally driven work.

What is Agile in simple terms?

Agile is an iterative and cooperative methodology introduced as a means of software development that allows for constant improvement and quick adjustments to changes. Agile prescribes breaking the entire work into smaller, manageable cycles so that working software can be delivered frequently with adaptation to changing requirements. The method calls for strong communication within the development team and with other stakeholders, hence ensuring a common understanding among all parties involved in meeting user needs. Agile intends to deliver excellent solutions expeditiously by adopting flexibility rather than sticking to an initial plan.

What kind of projects use agile?

Agile best applies to projects of the nature where requirements can change or evolve, such as web and software development initiatives needing frequent updates and close collaboration with stakeholders. It does particularly well when there are long life cycles to support the team, continuously bringing in new members or coordinating across locations, since agile encourages maintaining clear written communication, plus shared artifacts about the project. Agile supports projects that have long life cycles since enhancements continue afterward, as well as complex business needs, because through reiteration, miscommunication is minimized and rework is discovered over time.

What are the drawbacks of Agile?

A weakness of Agile is that work may become overly dependent on informal, verbal communication, wherein details can easily be lost and/or distorted in the long run. In the absence of well-documented work, inducting new developers into the project will always be slow and clumsy, since knowledge has to be continuously repeated rather than handed over in writing. Agile projects also work on making people physically dependent on each other being together, which makes scaling, distributing, or outsourcing the work much harder if good written practices are not involved.