by Sergey Kizyan, CTO, Intetics.
Many companies outsource software development. They expect high results and reliable performance from their partners, at the same time being always uncertain about timing, quality, and cost of software development. To relieve the tension, outsourcing companies must offer a new approach to the delivery of services. At Intetics, we’ve created and adopted a framework called Predictive Software Engineering (PSE), which addresses the bottlenecks in the performance of outsourcers.
We had dozens of projects managed by different people in different countries and under different conditions. Some projects were rather successful, others had many issues. Every time we started solving various problems on projects, certain trends could be observed. The issues laid mainly within the following areas:
- communication with the customer at the corporate level. Sometimes it occurred that a customer was left head-to-head with the team and did not feel that he was working with a large company.
- proper reporting from the team. We had several cases when the customer did not quite understand or had no understanding at all of what the team was doing. They simply hoped that everything would be fine. Such cases didn’t always have a good outcome. As a rule, a team that reports poorly works accordingly.
- lack of standard approaches. We’ve discovered that despite the fact that we had adopted certain development and management regulations on projects in the company, not all the managers followed them and not everyone understood them correctly.
In fact, the issues were of the same type, but even the three areas described above included dozens of typical cases that we solved switching from project to project. Reviewing problems and typical mistakes, we came to the conclusion: we can either create processes and regulations to solve those issues or remain life-long crisis managers.
Once we started setting these processes and regulations, they were named Predictive Software Engineering. We also realized that all this could be arranged as a framework that would form the basis for managing our company. Our idea is that Predictive Software Engineering framework helps the company to form and set up a team of developers tailored for their project. That is a team equipped with all the necessary set of skills, experience, and knowledge. In its turn, it helps to achieve overall effectiveness, both financial and productive. In addition, it allows to come up with the product that meets business goals with the least technical debt.
How PSE works
How do we achieve this? By introducing processes that educate and guide our employees and by monitoring the metrics on performance effectiveness. Let’s have a look at this particular example below.
This is an example of building a new team. Prior to the introduction of PSE, we did not have any recruiting metrics for the engineering department. We evaluated recruiting performance, but we never set any goals for engineering. What did we come up with? Our managers tried to choose only the best of the best experts, so we tried out up to 40-50 candidates for one position! We came up with thorough candidate selection procedures, which worked quite well at first. As the company grew and the competition intensified both in the labor market and within the project (customers began to cooperate with several companies at a time), we started losing to our competitors. Competitors were more flexible, hired faster, worked more efficiently while our managers kept on looking for perfect candidates. The problem had to be solved quickly and radically. We tried discussions and workshops to improve the situation, but it all had no visible effect. The only thing that worked was the introduction of the recruiting process and collecting rigorous metrics. Today, we have a process that clearly outlines the roles and responsibilities while hiring. It may be summarized as follows: for every 10 suitable CV’s there should be 1 hiring and / or every five interviews should result in a hiring. We strictly monitor each hiring and proper implementation of this metric. The managers who fail to follow this procedure should be restricted from recruiting on a project and replaced by more effective staff.
This is one of some minor aspects that had been solved by means of PSE, its impact on the company’s business can hardly be overestimated. We have created dozens of processes like this and they formed a framework called Predictive Software Engineering.
Here is a brief example. Our sales department works on closing project deals. Continuously, they cooperate with engineering departments to close the requests for software development requests. Those requests have different requirements, technologies, cooperation options, different scale, and budgets. Prior to the standardized approach, people from the sales department used to interact with engineers formally or informally, every time in a different way, the process was out of control. Just imagine the chaos in the interaction between different departments. We addressed this issue by introducing standard requests to engage the engineering department. We also introduced standardized processes for recruiting people on potential projects, for integrating technical experts, etc. Eventually, we came up with a dashboard to keep track of all new projects. All these steps helped us to manage the chaos described above and let us observe real figures on the performance of the sales and engineering departments. As soon as the situation cleared up, we discovered that many employees had poor performance and our productivity was not up to par. We kept on introducing more processes to improve performance, but this is another story 🙂
PSE hasn’t become one and only methodology within our company. On the contrary, it can be considered a supplement to existing world practices. On our projects, we use Agile methodologies such as Scrum, Kanban, Lean SD depending on a particular project. Disciplined Agile methodology has been adopted to manage our own company. It provides guidance on upper levels to remain Agile Enterprise. We adopted it as a basis, but then discovered it was not enough. Not enough particularly in terms of outsourcing. Teams are constantly being reassembled, new people are hired, projects change, customers change. We have to convince our customer again and again that we are capable, that we are better than our competitors, etc. At some point, we realized the need to create an additional framework (add-on to disciplined agile), which would focus on problems and sore spots of outsourcing. We started working on it. And as a result of this work, we formed a set of rules on how to manage and keep outsourcing in order.
This is the idea of PSE: it makes it clear to us and the customer that following this set of regulations we are more likely to finish the project within the intended timeframe, budget, number of employees and without loss of quality. PSE is an attempt not to leave everything to chance, expecting qualified and talented managers to sort things out on their own. We created an effective framework, as we once created Scrum, which is now letting millions of teams create high-quality products all over the world, even without any managers.
How PSE benefits customers, companies, and teams
PSE provides transparency and also makes the outsources software development process manageable and predictable by definition. First and foremost the client needs to understand is how it works. Therefore, we conduct training on our processes for all the clients. This was not a common practice beforehand and we had several cases when certain projects had issues that could be settled by means of PSE. We began to analyze these situations and discovered two problems. First: our managers did not have clear understanding of our processes and carried them out in their own way. Second: the client was unaware of the changes on our side and did not understand the significance of certain processes. Thus, there was no proper interaction between the company and the customer. Having studied these cases, we decided to arrange workshops for all the clients on how we are going to manage their projects. Today, clients understand what PSE is. They see that the methodology was created exactly the way to make our performance more predictable. From this perspective, it is difficult to underestimate PSE.
From the company’s perspective, PSE has brought standards, best practices, evaluation and order. Of course, we don’t think PSE is the ultimate solution. There is a number of things that the framework does not cover up or affect. I have to admit that many of our processes are not perfect. Therefore, we always state that PSE is not a static framework; we constantly supplement and adapt it. We highly recommend other companies that have just adopted PSE or considering it to adapt their PSE processes to their company’s needs. Our personal result is as follows: we no longer have a situation where work on a project depends on one person or a group of people. Another advantage from the introduction of PSE is reducing the workload of the company’s top management and letting them attend to matters outside the company instead of constantly looking inwards and “putting out fires”. Today, if we have some difficulties and they can be solved by proper execution of PSE processes, then we simply guide people through the processes and teach them how to execute the job correctly. We teach people to solve problems systematically and try not to introduce personal solutions.
Here is an example of such a solution: there was a client on one project who was always complaining about poor performance of the team. Each time the client complained, we addressed him on a particular case and tried to figure out who was to blame. The client had another team at the same time, which he considered stronger than ours. There is a whole area addressing the issues of quality and productivity in PSE. We joined the project, implemented various metrics of quality and productivity and began to evaluate the performance of the team. It took some resources though, but it was worth it. After we got the system results, we discovered that our team works very efficiently and quickly and that problems arise mainly when integration takes place. Next, the customer asked us to evaluate another team. We discovered that people from our company are almost one and a half times as more productive. As a result, we allocated resources to the team to constantly monitor and maintain metrics, and the problem has been resolved once and for all. Now the customer observes all the performance indicators and draws conclusions from metrics, not from subjective judgments.
What are the benefits of PSE to employees? The answer is obvious. Let’s imagine that you work in a team where everyone is independent. Some employees have excellent performance, some don’t. With time, you realize that such a team is not making any progress and you do not grow as a professional in such an environment. In general, the situation looks unpromising. Another story is when you come to a team of professionals with established processes. Every day you learn from them and observe that they keep on growing too. PSE stands for processes, processes mean order and policy of our company. Just like the laws of the state evolve, we change our processes and adapt them to the realities of the specific time. But the basis remains the same. Everyone wants to live in a state guided by the law, where the citizens are law-abiding. The same applies to a company. The first application of PSE: framework sets the rules and makes people execute them.
The second application of the framework is interaction with people. The processes described in it help to collaborate more efficiently. This improves the quality of work and increases employee satisfaction.
We have cases when a very experienced and strong team performed worse than a team consisting almost entirely of beginners. Moreover, the first team often ignored the processes of the company and the second one followed them precisely. As they say, “Practice makes perfect, but perfect practice makes perfection”.
To sum it up: for people, PSE means the facilitation of their life in the company and maintaining order in their activities. These are the two things that the modern world really lacks.
PSE implementation procedure in a company
This is a rather complicated process. I guess many people faced company transition to Agile methodology. Those who had to go through this remember how hard it was. The most crucial thing about this transition is to make people think differently and step aside from old stereotypes. This is a very difficult task, requiring efforts at all the levels of company management including top management and CEO. Unless management learns to accept this, the process is doomed to become a failure from the very beginning. PSE is, so to say, an add-on to Agile processes and its implementation does not differ dramatically. First of all, the company’s management has to be determined to introduce new processes. Next, you need to adapt the PSE processes to the needs of a particular company. We try to describe generic processes that can be adapted for a particular company with greater efficiency.
Our recruiting process and its metrics make a good example. We came up with one hiring to 10 CV’s, while someone may have other numbers. In our case it is the delivery manager who is responsible for recruiting, another company may have a special department or a recruiting agency. The approaches can be different, but the process needs to be standardized. Otherwise, there will be no result. This is what PSE all about. We highlight standard elements in the activity of an outsourcing company and create processes that standardize and make them effective.
Does PSE solve all the outsourcing problems?
It is impossible to solve all the problems. No matter how many theories and frameworks there are, new challenges and new problems will always appear. By creating a PSE we tried to solve typical and standard problems that arise in many companies and are repeated on many projects. Our goal was also to create processes that can be adopted as a basis for a company that has grown enough to implement them. We want to share our experience with other advanced and start-up companies so that they can use the PSE and complement it with their own achievements.
We created a website where all the articles and processes on the PSE are published. (www.predictivesoftwareengineering.org ) All individuals and companies interested can voluntarily join the creation and development of PSE.