Looking back on a project, you can ask yourself: Have we delivered all functionalities according to the set requirements? Has the customer tested and validated the quality of the software? Have we delivered on-time and in-budget? Great! Many software development projects will end like this. But is merely delivering functioning software your ultimate goal? In my opinion, it should be just one of the milestones towards something bigger. In this blog, we will explore delivering an optimal customer experience across the entire lifecycle of your software.
Customer Experience - an example outside of IT
Imagine that you are tasked with recruiting a new employee for your company. You work together with recruitment to go through all the necessary steps. Your corporate website has already been designed with your target group in mind. You have written a compelling vacancy text. All of this will attract the right potential candidates. And finally, you select the perfect match and offer them a job which they accept. Your assignment is fulfilled: you have found and hired a good candidate. Fantastic.
But was the real purpose of your assignment limited to just hiring the best candidate? Isn't it more important that the new recruit feels at home in your company? Giving them the ability to develop their skills and take their team to the next level? And how will you meet their expectations that were created during the application process?
At Avisi, we try to ensure that everyone has a consistent and positive experience in every interaction with our company. Here are some examples of these touch points in our 'employee lifecycle':
- Our beautiful office and workplace (location, layout, good coffee/beer, etc.).
- A well thought-out application process from vacancy to recruitment.
- Congratulating a new employee by sending them a booklet after adoption.
- A well-designed onboarding process including gamification.
- Organizing a welcome drink to celebrate their arrival at the company.
- Utilizing the best tools to work with at our innovative company.
- Offering extensive training options.
- Techdays & show-and-tells for and by employees.
- Celebrating successes together.
- Team outings, our annual Avisi birthday & quarterly activities.
Hiring a new employee is only a small part of our entire 'employee lifecycle'. We want to offer them so much more.
I can say from experience that employees will end up disappointed if their expectations that are created during the first part of the lifecycle do not correspond with later experiences. As a result, their loyalty will be lower and they will be more prone to leaving a company.
Customer experience & software development - 9 requirements
The examples above illustrate that an employee (or a customer) won't necessarily be happy when you achieve your primary goal (e.g. hiring a new employee, or delivering software in-scope, on-time, and in-budget). It's also about what happens next. If you want to establish long-term relationships then you have to realize that developing great software is about much more than just delivering features. It is also about creating a positive experience for both your customer and the users of the software.
So how do you ensure that all stakeholders are happy about your software? There are many important factors, but I have made a top 9 of minimal requirements:
- Involve the right people
Make sure that the right stakeholders are involved in the project from the start.
- Gather requirements
Start off with a user story mapping workshop with all key stakeholders. This will give you an opportunity to gather all requirements, which can be classified into must haves, should haves, could haves and would haves (MoSCoW).
- Set the right price
Provide customers with an honest quotation with room for rework. This will prevent frustration and disappointment in the future. Did you stay under budget? Maybe you can build some extra features or offer your customer a financial windfall!
- Measuring value
It's important to know the added value for the customer. How does your software contribute to their business goals? How are these results measured? How can your technology improve certain aspects of their company? Thinking about - and answering - these questions will transform you from a software supplier to a software partner.
- Product owners are important
Make sure that the customer appoints a product owner with sufficient knowledge of the project. Be sure that they have the mandate to determine priorities during the software development project.
- Involve users
Having users test new functionalities will involve them during the development process. This should be done regularly, e.g. following every two-week sprint. This will get users familiar to - and enthusiastic about - the software even before they start working with it.
- Celebrate successes together
The process of developing software is a collaboration between software developers and customers. The customer delivers the requirements based on their business objectives. Software developers use their knowledge to convert these requirements into awesome software. Establish milestones and have a party to celebrate together!
- What's next?
Set up a proper plan for the period after the initial go-live. Have a good support system in place for your customers' support needs. This will be key in giving them an outstanding customer experience.
- Think ahead!
Stagnation is deterioration: both functional and technical. Know your client's future plans and make clear agreements regarding maintenance and further development of the software accordingly. This extends the life of the software and prevents new, large development processes.
I believe in long-term relationships with customers. Getting to know your customers will give you an understanding of their business and way of working. This transforms you into a software partner that delivers maximum value to their organization. You can only build these long-term relationships when you have your customer experience in order. Think about all the touch points that the customer has with your organization. Map and optimize these touch points into a customer journey. This is not a one-off process, but a process that you should be constantly monitored and improved.