It is very difficult to find customers who are willing to go Agile on outsourcing development work. Majority of them may not be familiar with software development and would like to have assurances on Time and Cost commitments on their requirement.
Other customers who are familiar with Agile, have difficulty moving away from the level of comfort and level of guarantee of having fixed scope, schedule and cost on their projects. This is possibly because of the control mechanisms in their organization or the project maybe on highly regulated industries such as medical/automotive.
Unless you are working for a multinational company embracing Agile Practices and extending their development team in the Philippines, the chances of getting Agile Customers are close to zero.
Here are some recommendations on how to make the customer more flexible and more engaged in the development of their product:
- Agree on a more Flexible Contract
Fixed Price (FP) contracts are what most customers prefer not only for outsourcing but for contracts in general. In this type of contract, the customer pays the provider a fixed amount for the service or product that met agreed upon criteria. The risks of budget and schedule overruns are on the provider. Based on experience, meeting all these constraints, unless padded sufficiently, will result to several Contract Negotiations throughout the duration of the project. Budget, schedule and scope are usually fixed at the start of the contract. This is the default choice of the majority of customers.
Cost-Reimbursable contracts on the other hand usually favor the provider. It is used when project scope is uncertain and high risk, such as Software Development Projects. The buyer pays all costs, so the buyer bears all the risk. Under a cost reimbursable contract, the provider works for a fixed time period and raises the bill after finishing the work—a fee that represents the profits for the contract. Very few buyers would agree to this contract type as the work expands at the given time or budget.
Time and Material (T&M) contracts are the most common contracts for consultants, lawyers, freelancers and in many cases… Software Developers. This is a hybrid between Fixed Price and Cost Reimbursable contracts. Cost of the project is estimated and gets billed in humanhours or in humanmonths. The amount of the contact really depends on the customer’s risk tolerance and trust on the provider. Usually projects with this type of contract do not exceed 6 humanmonths. The customers and the supplier spent time to manage and account every detail of each humanhour leaving less time to jointly explore opportunities that will further increase the value of the product.
In the Agile Manifesto, customer collaboration is valued over contract negotiations. To facilitate collaboration, have a contract that allows room for flexibility for both the customer and your company. Have a type of contract where changes can be accommodated without the need for frequent contract revisions.
In the Scrum Master Course for Professional Scrum Master licensed under Scrum.org from knowledgehut and RCG Philippines, I learned the following key points on how Scrum can deal with fixed priced contracts:
- Add provisions that any requirement that is not yet worked on can be swapped out for another of equal size
- Add provisions that the order of requirements can be changed
- Customer may request additional releases at any time at prevailing time and material fees
- Customer may terminate the contract early if the value has been satisfied for 20% of remaining unbilled contract value.
The usual Fixed Priced contract can be adjusted to accommodate a more Agile approach. I recommend a Fixed Price contract for the defined requirements with the provisions added above, and a T&M or Support Contract (additional 20%) on top of the FP contract to accommodate changes discovered during the course of the project.
In administering the contract, you should employ Progress Billing. These are series of invoices prepared at different stages in the process of a major project to seek payment for the percentage of work that has been completed so far. A progress billing (invoice) shows the original contract amount and any client-approved changes to that amount.
You can also initiate Incremental Delivery Contracts. It allows customers to review contracts at designated points in the contract life cycle. These inspection points at regular intervals can be set for the customer to make decisions regarding product development periodically and allow customers to make changes, continue, or terminate the project.
You can also suggest short contracts by starting small and delivering value in each contract. However, depending on how contract administration is performed in both companies, this may require processing overhead.
In any of the contract you may choose, bear in mind flexibility for the customer to introduce change even late in the development and collaborative approach to always strive for Win-Win.
2. Increase customer engagement
The period between requirements gathering and handing over the finished product is full of opportunities to increase interaction with the customer. Constant communication ensures that the products you are building are the product they will need and pay for in the end.
Based on my experience, there is a strong correlation between project success and customer involvement. We had higher user acceptance rate and customer retention (repeat orders) due to increased involvement and ownership of the customer in the development process.
Here are some ways on how to involve your customer in product development, increase their interest and facilitate communication in the project:
- Define the requirements in their own terms and help them discover their needs
A sure way to disengage customer is to bombard them with terms they don’t understand. The Product Owner, this can be the Project Manager, Business Analyst, Sales Representative, or UX designer, should be able to talk in the customers terms. User Stories and User Journeys are effective in capturing customer goals and needs.
- Establish information sharing systems with your customers
Accessibility of information and real-time visibility of progress ensures that the customer and the developers are on the same page on project execution. Having the same view of the project and increased in transparency will facilitate efficient communication. An effective system can capture feedback, can show forecast and can highlight impediments.
Here are some free systems you can use for information sharing: 1) Redmine with useful plugins such as Backlog, DMSF, Knowledgebase, 2) trac, 3) OrangeScrum. Paid solutions include Atlassian JIRA, RedmineUP Plugin and many more. To ensure security of the information systems, you may need to setup a VPN with your customer.
- Establish regular meetings with the customer
Customers are also busy; they would appreciate scheduled discussions with clear agenda. Having a consistent meeting time and place would make communication and interaction a habit. In case daily communication is not feasible, aim for at least weekly face-to-face meeting. Due to physical distance, it is difficult to arrange for on-site meeting all the time. Virtual conferences and meetings should be fully utilized. I use the following as they support desktop sharing: Cisco WebEx, Microsoft Lync (Skype for Business), and TeamViewer.
During the regular meeting, consider the time difference with your customers. It is also good that the regular meeting schedule can coincide with project milestones or decision points.
- Empower competent Product Owners
The Product Owner delivers business value to the customer through Incremental Product releases. Qualities of a competent Product Owner include managing stakeholders’ expectations and priorities, being a good communicator, having clear vision and knowledge of the product domain. The Product Owner should have the necessary authority and budget to facilitate effective and fun customer engagement events such as kick-offs, demos, sprint reviews and joint retrospectives.
- Create awareness of the customers’ responsibilities to the project
The customers have rights and responsibilities. Their responsibilities include: evaluating the cost of development and changes, make timely decisions about the requirements, set priorities, act as subject matter experts on business domains, etc. They play an important role in the success of the project. They are partners who share accountability and responsibility with the development team.
3. Build Customer Trust
Customer loyalty is built on trust. When customers have high trust on the development team, the more scope and opportunities for your company! In the book The Trusted Advisor, a model of the provider’s trustworthiness from the point of view of the customer was presented:
You can find a short eBook in their site, 15 Ways to Build Trust Fast on how to build Trust in 15 ways.
The TQ, stands for Trust Quotient has the variables below from the point of view of the customer
Credibility: has to do with the words. Based on what the provider says about its company and based on public information about their company is capable of. This will include credentials, certification and information quality.