Agile Methodologies are the latest in software development but what advantages and disadvantages do they present from a client and provider perspective? Software development is a complicated process from both perspectives and it is important to understand the pros and cons, common problems, and when to use an agile methodology.
Software development is something all types of companies around the world are having to adopt. How they go about purchasing custom software development services is key to their success. When purchasing custom software products, companies basically have two choices:
- Waterfall Model
- Agile Methodologies
The Waterfall model is basically a linear model of software design. Just as its name suggests, Waterfall employs a sequential design process. In contrast, Agile methodologies propose an incremental and iterative approach to software design. Agile methodologies were born after the Waterfall model and in response to the shortcomings of the Waterfall model.
Hiring a software development team is a challenging task for most companies. Nowadays everyone seems to sell software development services, prices range significantly, companies are young and quotes are rarely transparent, etc. Software development companies with agile methodologies respond to this inconsistent environment in the following ways.
Pricing and Transparency
Agile contracts offer transparency. The standard Agile contract openly defines resource types, and resource dedication. For example:
- 1 Project Manager 50% dedication
- 1 Technical Leader 50% dedication
- 2 senior .Net developers 100% dedication
- 1 junior .Net developer 100% dedication
Clients actively participate in requirement definition and associated costs with the development team. Everything is discussed out in the open as a united team. Times and costs associated with every software functionality are discussed openly with the development team.
Business Value Comes First
The agile process promotes and requires that functionalities with higher business value are done first.
Great Communication: Clients are required to actively participate in the project, improving communication overall between the client and the provider. Clients are aware of every detail every step of the way.
Costs: Payment is done in regular installments and based on completed and approved work. Clients see the costs associated to each functionality before it is programmed and can back out on “non essential” items to reduce overall project costs.
No Fixed Pricing: Software product pricing is not fixed. In other words, clients cannot know how much the software product will really cost them until the project starts and even then, they just get an estimate.
Agile Methodologies require that clients participate proactively and as a project requirement. Resource availability (on the client side) is sometimes scarce, putting a strain on the client company.
The Lingo: Agile Methodologies require that the client company use Agile terminology such as “scrum,” “sprints” and “points,” etc. This is often confusing and not perceived as necessary.
Working with various clients can be challenging from a software development company perspective. All clients have different backgrounds, products, teams and expectations, etc. The learning curve is constant. What may be obvious to one client is not obvious to the next, yet all clients are what they are and the software product has to be developed regardless of what the party involved may be like.
Transparency: Agile methodologies require transparency, making a project less cumbersome from a communication point of view. Agile methodologies require software development companies to explicitly communicate functionality costs and development times.
Collaborative Effort: Clients are obligated to actively participate in the requirements definition process, thus reducing unknowns and making the overall process more efficient. And the method requires software development companies to basically “rent out” a software team at a fixed amount until the client chooses to end the project. This pay-as-you-go system makes project finances very easy to manage from a revenue and expense point of view.
Complicated Sales Cycle: Clients like fixed amount contracts. This is true in software development as in other types of services. When bidding on a project, clients like to know “how much is this going to cost me more or less”. Selling software with Agile Methodologies makes answering this question very difficult. First of all, it can never be answered until iteration ends and frankly clients don’t like hearing this.
Training the Client: Clients do have to go through a training process to be successful in the product development. The lack of client participation and understanding will affect the software quality and therefore reflect on the software development company.
Small projects and maintenance projects are a big part of software development services, yet Agile Methodologies are not ideal for these kinds of projects. This forces software development companies to have hybrid solutions.
Common Problems: Applying Agile Methodologies has its problems just as all processes do:
- Selling software with Agile Methodologies is quite challenging since the question “how much will this cost me” arises and an ambiguous answer is not what clients want to hear.
- The learning curve is repeated with every client.
- Heavy client participation is required and although clients are told this in the sales cycle, the first couple weeks of the project sometimes overwhelm the client.
- Developers do have client-facing roles and training them on this matter is required.
- Poor client participation directly affects product quality.
When to Use Agile Methodologies
There are many ways to develop software but Agile methodologies really accomplish a win-win solution for clients and providers. Software development is not going away and how companies approach this service is key to their success. Working with Agile Methodologies has its challenges yet in the end, both client and provider win.
This information in this article has been added to an easy-to-digest infographic. Check it out by clicking right here.