27 lipca 2018

How we ensure a high quality of the code when outsourcing software developers

“How do you ensure the code quality?” is one of the most common questions our clients ask in preliminary talks. It is actually so frequent that we decide to discuss the issue in an article. You will find out how we contribute to the results of our work in Atinea. First, we will explore the myth that a contract may guarantee the code quality.

Illusive contract

Many people believe their interests will be safeguarded during collaboration by the contract. It is a false hope. As we have seen, contractual provisions will not guarantee a high quality of results. It is technically infeasible as the area of software development is too vast. Suffice it to say that a single system may be developed using several technologies at least and a dozen or so different methods. That gives rise to a whole lot of scenarios for code creation and improvement, which would border on the miraculous to anticipate and provide for in the contract. If anyone claims otherwise, they have no idea what they are talking about.

What do we do to ensure the top quality for our code?

Since the contract does not hold good in this place, how do we make sure that our work brings effects as required by our clients? Our clients often object and say: “According to your contract, hotfixes for errors will require additional hours of your labour. That implies that you will not ensure a high quality of the code while developing it. How do you solve the issue? How are your going to assure me that your code will be of a high quality?”

This is an excellent question. And our answer is as follows.

First of all, note that IT outsourcing, largely simplified, involves the hiring of employees in a faster and more secure manner. Do bosses require their full-time software developers to stay after hours and correct their mistakes free of charge? Of course not. The same applies to typical outsourcing – possible errors require extra time to correct. The difference is that we have tried and tested methods in place to monitor and reduce the number of errors. Further, our outsourcing differs significantly from typical body-leasing.

Besides the methods and unique service formula, we also have an excellent developer team. Why is it so important?

Software developers’ high skills

An outstanding software developer will carry out their work faster and better than a mediocre one. With their knowledge and experience, the outstanding developer will make fewer errors and will note them soon. The outstanding developer will find it easy to learn a new technology since they already know its foundations i.e. a less advanced language. To nobody’s surprise but…

What does that have to do with the issue?

Those are the software developers we employ and their skills are the foremost contributor to the high effects of our work. They are genuine code masters and that is not an exaggeration to say so. The recruitment process is the responsibility of Andrzej Gąsienica-Samek, who has won the World Champion in Team Programming title. He used to work as the R&D Department Head at Comarch. Now he is the President of the Management Board of Atinea.

With his methods and expertise, he can select the best and reject all other applications. We also hold competence tests for our staff once a quarter. Both for the recruitment and tests we use tasks from programming olympiads. A single task is sufficient to separate mediocre developers from master programmers. The former developers will never work with us.

Note that our software developers know the C/C++ language. Based on that, they build their competence in higher-level technologies. Knowing the C language as a foundation, they understand precisely the code mechanics and acquire new technologies quickly.

They work in an efficient manner, eliminate errors, work ahead and anticipate possible problems. They are the first pillar of our quality assurance.

Thought-out processes

Another factor determining the quality of our code involves the manufacturing processes. Again, they are prepared by Andrzej Gąsienica-Samek. His experience from the R&D Department management has proven to be invaluable and still pay off in Atinea. What does our process consist in? If you skip the details, it comes down to effective monitoring of every stage of code creation, modification and takeover. When a system component turns out to be more difficult to implement, we learn it immediately and solve the issue. Thus we are able to find out problematic code parts while still working on it and eliminate any possible errors successfully.

Ultimately it is the client who has a decisive impact on the testing and correction process. Based on the client’s guidelines, we adapt our processes and deliver the chosen system component which is consistent with the client’s requirements. We can work fast and implement the main functionality and then add other modules. We may also upgrade existing systems in a sustainable manner, so as not to impair their stability, and to be able to test precisely even the smallest modifications. It all depends on the current needs and requirements of our clients.

Knowledge, skills, and experience

The three above-mentioned factors determine the success in the IT industry. We give no false hope with contractual provisions which do not actually guarantee anything. Instead, we offer the most significant things: excellent programmers and accurately developed processes, drawing upon over 20 years of experience in the IT industry.

We focus on the relevant matters, i.e. efficient coding and full control of the entire process. To streamline the progress monitoring, we assign our manager to every software developer team. The team allots work and estimates the time required for completion while the manager controls all the issues and reacts when estimates begin to diverge from the reality.

Those are our quality assurance methods in a nutshell. We can provide more details and are willing to do so on the phone or at a meeting. If you would like to learn more about our proven collaboration methods, please use the following form or give us a call to make an appointment.