Selling custom-made services is selling the invisible, the intangible, something that cannot be easily defined or put in any particular box. In the service provider-client relationship, therefore, 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 a lot of 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 a standard the company has set as guaranteed level of quality, instead of working on just one ‘perfect’ project that may or may not be a success. Not losing quality on every single project is the goal and motto of every services provider who stands by their clients.
Quality is 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 into 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 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 a special feature, at best.
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 functionally from the point of view of the end user, but at the same time 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 bigger than a certain amount.
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 to say about 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 guarantied 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 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 fall in quality. Therefore, managerial efforts should involve an overall effort to bring up the level of guaranteed quality for the whole company.
In accordance with the CMMI (Capability Maturity Model Integration) recommendations, service providers should look for repeating processes, 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 that allows for all parties to see the situation objectively, avoid delusions about functional quality requirements and be realistic about project estimates.
A practice that Itransition introduced for quality control is keeping project cards that reflect the state of each single project at the current moment while also showing 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, the problem that may be lying beneath the surface will be left unnoticed. And visa 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:
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: 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. The team may not even be able to see issues, being in the middle of the action, so approaching control from other perspectives can give the manager a better view of what is really going on.
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, and it’s vital to answer the question: “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, and be realistic about the estimation. 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 company experience and based on the overall expertise of the field one works in. Choosing the best possibility 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.