Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Value vs Time: an Agile Contract Model

Value vs Time: an Agile Contract Model

This item in japanese

An agile contract model can help us to focus on the value delivered to the customer. It allows for rewarding teams and people, and can drive continuous improvement towards common goals. Andrea Zomer spoke about how Zupit applies an agile contract model at Agile Business Day 2020.

The agile contract model at Zupit is a combination of the two traditional models: fixed price and time & materials. Customers pay a fixed price for User Stories when they are done, where the resolution of the bugs is included.

Zomer mentioned that this model allows them to reduce risk by being able to estimate smaller chunks of "the whole project" and spread the estimation activity over time when they have more information about the project and the customer.

By using an agile contract model both the supplier and customer benefit, as Zomer explained:

The real benefit though is that both we and the customer have the drive to be more effective and we can focus on the important things. When this happens we earn more and the customers spend less.

Customers are initially a bit skeptical about the contracting model because it isn’t a common model and needs to be explained and understood, Zomer mentioned. But once they understand the basic principles, they appreciate this contracting model, he said. They see that there are many pros for them and that a solution where they win together is better than one where only one wins:

We often manage to make it clear that real savings are not in asking for a discount of a few euros, but in understanding what the project priorities are, creating efficiency. The Pareto principle also applies to software development: 20% of the features return 80% of the value. Part of our job is to help customers identify that 20%.

InfoQ interviewed Andrea Zomer, CEO at Zupit, about their experiences with an agile contract model.

InfoQ: What are the drawbacks of traditional contracting models like fixed-price, or time & materials?

Andrea Zomer: In general they are biased towards the customer or the supplier and do not allow them to have a common goal.

For example, in contracts with fixed-price, the supplier takes all the risk because, in the moment of maximum uncertainty, they must decide on a fundamental thing such as the price of the project. Furthermore, the customer, since the price is fixed, has every interest in asking the supplier to do as much as possible, who instead wants to do as little as possible to get more profit.

In time & material contracts, the situation is reversed: the supplier has no interest in optimizing his work or being efficient, because the customer pays all the time dedicated to the project. In addition, the customer takes all the risk of inefficiencies or problems and also pays for any bugs.

InfoQ: What does the agile contracting model at Zupit look like?

Zomer: Customers pay a fixed price for the User Stories (US), informing them before putting a US in the Sprint how much it will cost (regardless of how big it is) and allowing them to decide if the cost is justified by the business value of that feature.

User Stories are estimated by the Team in Story Points (using the Fibonacci sequence: 1, 2, 3, 5, 8, 13, ..). At the beginning of the collaboration with the customer, we agree on the price of one single Story Point (eg. 100 Euro). The cost of a User Story is therefore "Story Point estimation" X "agreed price" (e.g. a 3 SP User Story x 100 Euro = 300 Euro).

Then the customer pays only if the US verification is positive and the resolution of the bugs is included.

InfoQ: How do you handle bug fixes?

Zomer: The cost of bug fixes is included in the price, so our interest is to have as few bugs as possible in our software. This is obviously great value for our customers, but also for users who will run into fewer bugs while using the software.

To do this, we use the common agile practices and methodologies such as TDD (test-driven development), Pair Programing, Pull / merge request management, and a strict procedure of verification and human tests before releasing to the customer. Also, continuous improvement techniques such as retrospective meetings and a lot of training help us deploy higher quality software.

We have a clear DoD (Definition of Done) shared with the customer for each User Story (which also covers the UX / UI mockups for each US), and the teams are autonomous in managing the implementation part, while respecting the DoD and a minimum level of quality that is guaranteed by the practices and processes listed.

Including any bug-fix in the User Story development cost also has a commercial advantage for Zupit. Customers don’t always "digest" that bugs are part of the software development process and aren’t happy to pay the cost of fixing them. A model where the supplier takes care of this aspect helps us to convince customers about the quality of our work and to close contracts more easily.

Another advantage for us is that it is common for customers to have an annual fee for the corrective maintenance of the software they outsource. Having fewer bugs (and therefore fewer tickets and work) allows us to have much more margin from these recurring fees or to be able to apply discounts. Clearly we must always find a balance, because having a process that limits bugs has a cost that we must consider.

InfoQ: What are your experiences with this agile contracting model?

Zomer: This model is challenging. We have to be more and more efficient and produce solid software with few bugs.

Initially, but sometimes even now, it would certainly be easier and more profitable to work in Time & Material, without worrying about optimizing all aspects of our work. The agile contract model we introduced allows us to reward the teams and people in Zupit based on the value they can deliver. In Time & Material, there is a psychological cap on the daily rate, which makes it difficult to reward those who are more efficient and take less time to create features.

Furthermore, in Time & Material there is no interest for the supplier to avoid introducing bugs because the time it takes to solve them is also paid for by the customer. On the other hand, with our agile contract model, it is in our interest, even economically, to push towards improving people’s skills so that they become more efficient and learn how to avoid bugs.

InfoQ: You mentioned in your talk that employees at Zupit work with a 30-hour per week contract. What does this look like, and what are the benefits and challenges that come with this?

Zomer: The decision to start working 30 hours per week (Mon - Fri from 8:00 to 14:00) while keeping the salaries as a full-time job came about for several reasons. First of all, we believe that a better work-life balance is vital. When you work every day until 6 pm or 7 pm, you can not make time for your passions and affections. In addition to office work we have to take the bus or the car and go home (now with smart working this aspect is also improving), stop at the supermarket, cook, take a shower, etc.

However, there is also a business aspect. In our industry, it is very difficult to hire new people. There is more demand than supply. The best developers have to decide which company they are going to work with. For our business model, we cannot offer very high salaries, so we must focus on the quality of life and on creating an environment in which people can feel good, grow and improve their skills. Moving to 30 hours allowed us to attract talented people who we had more difficulty reaching before. This is a win-win situation because our customers can count on excellent skills that lead to quality products.

Clearly there has been a lot of work and we have to optimize many things to make this approach sustainable, and we are still changing things daily. But luckily, we like challenges.

Rate this Article