Dark Light
Until recently, software development was created in silos using the “waterfall method.” A product was defined, designed, built, checked for quality assurance, and then presented to the client.

Agile Software Development Contracting 101

If you manage software development projects for your organization, then you’ve heard of agile software development. Until recently, software development was created in silos using the “waterfall method.” A product was defined, designed, built, checked for quality assurance, and then presented to the client.

This linear timeline caused many problems as the clients’ design is not always possible to develop. The quality assurance team finds many bugs at the end of the process that is time-consuming to locate and fix, and the final product does not always match what the client needs. All of these problems are mitigated with the more flexible and iterative agile software development process.

What is Agile Software Development?

In agile software development, smaller, more integrated teams include project managers, designers, developers, and QA members that work together and keep the project on track. The project is completed in “sprints,” which are shorter bursts of work on specific elements of the product. The developers regularly present the feature for feedback to ensure it meets the client’s needs and expectations.

The many different agile software development firms are defined by the teams’ makeup, the timeline of the sprints, and the overall development process. Three of the most popular agile methods are ScrumDevOps, and Extreme Programming. They differ in their development processes. The general principle of intermixing teams, quickly developing sections of the project, and regularly getting feedback from the client are constant across all agile projects.

Agile software development is becoming the norm in the tech industry, so it’s important to understand the differences between the various agile processes and the more linear process you may be familiar with. The different methods affect the management of your IT resources and will significantly affect the contracting process.

How Do I Contract for Agile Software Development?

Indeed agile projects cannot be covered under traditional IT contracts with a defined timeline and product deliverable because the process is ongoing and ever-changing. Instead, agile IT projects are best managed under a Time and Materials contract, where the developer is paid for the number of hours they work rather than a fixed price for a completed product.

Many companies are concerned about developers dragging out the time spent on the project to earn more money, but there are ways to minimize this risk. One is to create fixed prices within the process, either for a minimal viable product or completing each sprint. Another is to set price caps on the project.

While these safeguards will protect the budget, they may also undermine a successful agile process as software development never has a completely predictable timeline. All agile projects rely on trust between the developer and the customer. Hence, the best safeguard is to work with a well-respected company with whom you can build a reliable working relationship.

In addition to pricing safeguards, other contract negotiations can help your organization feel more comfortable with an agile development process.

Milestones

Every project starts with a project vision. The developer should then use this vision to create a list of items that need to be developed to build the product. Using this list, or “product backlog,” you can then define milestones in your contract by prioritizing items set for the contract’s length. The developer should provide cost and time estimates for each item on the list. Both parties should define the iteration process, including meeting schedules and determining each iteration’s completion.

Termination

One benefit of agile contracting is ending the contract at the end of each iteration without paying termination charges. A termination clause is included in all standard agile software contracts since the code is paid for in stages on an hourly basis. This allows the client to pull the plug on the project if it is not proceeding as needed.

It is important to have a complete understanding of the stages in which the product is being built when deciding whether to terminate a contract. For an organization unused to the agile development process, it can be a challenging switch to make. Don’t let confusion with the process lead you to terminate a contract that is proceeding as planned.

Agile projects are often safer for clients as problems and misunderstandings about software needs are caught throughout the process rather than in the finished product. But it is also important to understand the needs of your organization and the vision for the development. If neither are being met, it’s best to cut your losses and regroup rather than continue with a project that will not result in the desired product.

Resources

Working on agile projects can be a risk for both the client and the developer. Because of the uncertainty behind the project’s length, payment, and the potential for termination at any stage, some developers might seek to move their best developers or project managers from a risky project to more stable ones.

To protect yourself from losing your key team (and their project knowledge), you can seek to add specific personnel to your contract with the understanding that they cannot be removed from your project without approval. Alternatively, you could add a clause that ensures the developer provides all the resources necessary to complete each stage of the project promptly. This way, any short staffing that leads to extended sprints does not negatively affect your bottom line.

Warranties

Warranties are difficult to provide in an iterative process like agile development since the contract may be terminated before the final product is complete. Still, there are options to create a warranty on parts of the product. For instance, each separate code of code could be warrantied to meet all the iteration specifications. And barring any unforeseen problems, your agile software will likely result in a completed project, so the contract should also include a warranty on the final product to ensure all the pieces of code developed will work together in the envisioned outcome.

This list of potential contract clauses is only a fraction of the changes you might make to your contracting process to meet an agile project’s needs. No matter what type of IT project you are undertaking, it is important to consult lawyers who specialize in IT projects. The contracts require knowledge of technology and technological processes to protect the client and the developer fully.

The emergence of agile software development has led to streamlined processes that are better for the developers and the clients. Though contracting for such a fluid process can be complicated, the superior products that can be developed through the more collaborative agile development process are worth the extra work to get there.

This article was originally published on Webnoggin’s blog.

Read more about digital transformation and why your CTO cares.

Related Posts

Making Sense of the Digital Experience Ladder

Become Customer Obsessed. Have you welcomed in the age of the customer? The proliferation of channels (e.g. print, web, mobile, smart TV, etc.) have shifted the already fragmented relationship between marketing and IT.  Businesses wanting sustainable competitive advantages will have to understand how to use customer knowledge to build successful engagements.
janice_burney_blog

How to Get Marketing & Sales Certainty

The digital age has significantly changed how we share information. Social Media sites like Facebook, Instagram, Twitter and LinkedIn provide a multi-media backdrop for our private data. Indeed the lines between privacy and disclosure are often blurry. Privacy is the key issue, coming at us from many directions. It’s not likely to be solved in the near future. The polarizing debate between cyber safety and the right to information privacy has heated up on many fronts. Leading the charge is the Cyber Intelligence Sharing and Protection Act
SEC_building_logo

What Are The Different Types of Securities Offerings?

Are you looking to raise capital? Below are the different types of securities offerings that can help you determine the capital raise scenario that fits best for your needs. Before proceeding, it’s important to know that companies conducting a securities offering must comply with both federal and state securities laws. These laws enacted in the early 1930’s, while they may seem draconian by today’s standards, are intended to protect investors while providing a mechanism for capital formation and economic growth.
Fintech_banks

Fintech’s Revolution Asks If ‘Innovative Banking’ Is An Oxymoron.

Has your bank decided to join the technology and innovation ranks to embrace the fintech revolution? As should be expected, European Banks are ahead of this embrace-the-technology curve. From incubators to launching a fintech subsidiary, it’s clear an innovative bank will be the survivor in this emerging marketplace that is disrupting the banking status quo.