Selling custom-made services is selling the invisible, the intangible—something that cannot be easily defined or put in any particular box. Therefore, in the service provider/client relationship, trust is the foundation of everything, and when a service is outsourced, the customer has to trust the company to deliver on their promises.
But what do service providers do when they have multiple projects going on at the same time, and some of them may be very different or even conflicting in nature? The first piece of advice is to concentrate efforts on making every project reach the standard the company has set as the required level of quality.
This means not working on just one ‘perfect’ project that may or may not be a success. Providing exceptional quality on every single project is the goal and motto of every service provider who stands by their clients.
What is quality?
Our software development company Itransition defines quality as the metric closely connected with client expectations. If the result of the project matches the expectations, then it is perceived as high quality. Because clients are buying services, they are always mindful of the consequences of low quality, which reflects on their image.
It’s not that clients are worried about getting the most outstanding service; it’s that they are afraid to invest in something that is not successful. They don’t want to seem to have made the wrong choice. That is why, in the services industry, the provider should be able to give a quality guarantee every time.
Functional and non-functional requirements
Functional requirements stem from expectations, which can be subjective. When there is a discrepancy between an expectation and the end result, it is deemed as a defect, an irregularity, or, at best, a special feature.
Non-functional quality requirements are something that the client may not be aware of from the beginning, and the end-user may never even notice the difference. This may include such aspects of the project as total cost of ownership, or such attributes of the quality of the source code as maintainability, reusability, testability, and others.
One example is a situation where there are two products that have the same functionality from the point of view of the end-user. But one of them can be changed relatively cheaply while the additions to the other one may cost as much as building a new product from scratch.
Both groups of requirements are all about money: how much will it cost to eliminate the discrepancy between the expectation and the end product? A solid service provider can always guarantee that the sum to erase the discrepancy is no larger than a certain amount.
Unique projects, different levels of quality
During every project, unique teams work in unique circumstances. Just because one person succeeded on a project doesn’t mean they will do well in a new set of variables. The same goes with techniques, tools, strategies, and methodologies. If the teams are left to their own devices, the success depends on the talent of the specialists and the personal relationship between the team and the client. Therefore, the level of quality produced over a multitude of projects can be different.
The art of a successful provider is to help the strongest projects shine while bringing the guaranteed level of quality and maturity as high as possible for every project. If you can make the guaranteed level of quality higher without robbing any project of the opportunity to be a sudden super-hit, you have succeeded.
If you have different levels of quality on every project, it is an opportunity to correct the situation. This can be done by bringing quality up to a desirable level and restoring the excellent image of the company.
So, it is imperative to find repetitive elements—elements of maturity and stability—so there can be a level of order achieved, with the results made predictable and expected. Not a single project should waiver in quality. Therefore, managerial efforts should involve an overall determination to bring up the level of guaranteed quality for the whole company.
How to achieve quality
In accordance with the CMMI (Capability Maturity Model Integration) recommendations, service providers should look for repeating processes and measure and automate them. It is important to focus one’s efforts on strengthening the weakest link so the whole chain becomes stronger.
One of the many methods to do this is through automation. Non-functional requirements can be constantly monitored using platforms for continuous inspection of code quality, like SonarQube, and source code evaluation methods like SQALE.
Also, it is extremely important to have an independent quality department or at least conduct independent audits at regular time intervals. This allows for all parties to see the situation objectively, avoid delusions about functional quality requirements, and be realistic about project estimates.
What are project cards?
A practice that is useful for quality control is keeping project cards that reflect the state of each single project at the current moment. They also show the overall quality of projects across the whole company. A project card is a collection of answers to simple questions about the project.
The questions on project cards may sometimes seem too obvious and almost presuppose the most trivial answers to them. But if one of them is skipped, a problem that may be lying beneath the surface will be left unnoticed. And, vice versa, if there are answers to all questions, it can guarantee that the problems that would have arisen otherwise never become bottlenecks. The questions to include on project cards may sound like this:
- Is there a project plan?
- How relevant to the present moment is it?
- Is the plan updated with actual progress tracking on a regular basis?
- Is the tracking based on binary (100% done vs not 100% done) milestones?
- Is every team member familiar with the plan?
One of the goals behind each management activity is not to leave projects without attention. At least some part of the project has to be monitored every day; that way, bottlenecks can be detected or predicted, and issues may be resolved before they become problems. Management by walking around (MWA) is a great way to stay connected to teams of various projects and control processes in a non-obtrusive manner.
Filling in project cards and looking through them every day is a variation of MWA, only without the actual walking around. Project cards are the ‘face’ of the project that can tell the manager a lot. Things like whether the team is on it, how current the answers are, how filled in the cards are, what answers are missing, and so on.
When flipping through cards every day, it is possible to eliminate a scenario where a certain project or part of it is being neglected. The weakest links can be detected early on, and, if the right action is taken, the chance of a project failing can be eliminated entirely.
It is important to discuss something, anything (the business of the day, the agenda, as small and insignificant as it may seem), every single day. Generic questions about the project’s low points, problems, or bottlenecks don’t work. Being in the middle of the action, the team may not even be able to see issues. So approaching control from other perspectives can give the manager a better view of what is really going on.
Game elements enhance motivation
The project card completion can be accompanied by game elements, where the team member is informed of the percentage of card fulfillment in a playful way, motivating them. The state of a project card can tell the manager of the level of project maturity, and if there are any changes that need to be made.
In companies that work on multiple diverse projects simultaneously, the focus is often on the bottom of the pile. Therefore, it’s vital to answer the questions: “If the project card is not filled in, why? Do the questions not fit the project’s unique agenda?” Spotting the bottlenecks and getting rid of them is the next step.
When working on one project, there are many project management tools at one’s disposal. When working on dozens or even hundreds of projects, checking the project for maturity is often the only way to really see where each particular project is in development. It may also be the only way to be realistic about the progress being made.
Making sure that ‘progressive’ or novice members of the team do not ignore the valuable practice of project cards is something a manager should always monitor and correct immediately.
Working on multiple projects effectively demands a set of skills developed through years of experience and is based on the overall expertise of the field one works in. Choosing the best possible way forward and making sure the rejected alternatives were abandoned for valid reasons is the only way to match user expectations with the end results.
It may be impossible to predict the future, but having a plan and utilizing quality control methodologies can guarantee project maturity and high quality on multiple projects of varying complexity.