quality – Atinea https://atinea.pl Kolejna witryna oparta na WordPressie Tue, 08 Oct 2019 09:02:18 +0000 pl-PL hourly 1 https://wordpress.org/?v=4.9.5 What does our code development process involve? https://atinea.pl/what-does-our-code-development-process-involve/ https://atinea.pl/what-does-our-code-development-process-involve/#respond Fri, 31 May 2019 10:00:34 +0000 https://atinea.pl/?p=1176 Besides a great, well-managed team of software developers, there is yet another contributor to the high quality of our work. It is a polished development process. The best team ever would fail developing a relatively simple code without such a process. What does our development process involve and why is it so effective? Working time […]

Artykuł What does our code development process involve? pochodzi z serwisu Atinea.

]]>
Besides a great, well-managed team of software developers, there is yet another contributor to the high quality of our work. It is a polished development process. The best team ever would fail developing a relatively simple code without such a process. What does our development process involve and why is it so effective?

Working time log

First of all, we keep detailed records of each and every working minute of our software developers. We have in place an internal system we have developed ourselves for our needs. At the end of every month, the system generates a detailed worklog which we send to our clients.

The system reports working time by projects, each project being broken down into single tasks. On that account, our client gets a direct insight into our overall and detailed working time and our managers always have an up-to-date comparison of the estimates v. the actual working time.

Now, I am going to tell you about our task system.

Task system

In our process, tasks are well-defined technical jobs of 40-80 work hours. We decide on their size so that software developer should be able to evaluate their time requirements. We group minor tasks and divide the large ones and thus our managers always have a clear idea of work progress. Whenever asked about the progress, they can provide a precise answer and control the actual working time devoted to a specific task.

Thus their work and overall project management are facilitated and our clients receive specific information about what tasks our team is currently handling, as every work hour HAS TO be assigned to a task.

So the manager has an effective system to track the completion of all the tasks of his or her team. We have included another procedure though to help the manager manage the budget even better.

In line with the procedure, our software developer should have the first prototype and know any and all challenges and unknowns halfway through the estimated working time required for the task. On that account, the manager gets an insight into the developer’s work and if the manager determines that the task will exceed the original estimates, he or she will consult the client immediately.

Such a consultation may result in the cost revaluation, scope change, task abandonment or another optimal solution. Every such change is confirmed with an e-mail at least.

This is another way to ensure both our managers and clients have a clear insight into the project.

Upon completion of each task, we also monitor the stabilisation costs. Every time we assume that we will allocate 20% of the estimated completion cost of the task to its optimisation. A higher cost means the code quality was lower than expected or there was an issue in the task analysis.

In such a case we always look for the cause and based on that we optimise the estimation process for future tasks.

So now you know how we manage the time and monitor the performance of the smallest tasks. Every project however must consist of major portions which group the minor ones and are responsible for the completion of specific system sections or modules. We call them initiatives.

Initiatives

An initiative is a major task defined with business targets. It represents a specific system function or module which needs to be included in the system due to the client’s requirements. The initiative consists of several up to a dozen or so tasks which combine to provide a functionality.

An example of initiatives is a module for communication with an external date base provided by a third-part company or body. The module needs to be included in the system since it is required for its proper operation – hence it is a business target.

As we already know what the initiative is, we may plan the tasks required thereunder to implement the communication module. The manager divides it into tasks and assigns them to individual employees in his or her team.

As compared to tasks, the performance of every initiative has a more formal nature. Every initiative is represented by a document describing its goal, work scope, working time estimates and schedule. The document shall be accepted by the client and the management board of our company.

At the end of every initiative, the manager draws a client acceptance protocol once the production version is launched.

The main objective of the project manager on our side is to carry out such task planning and client communication so as to obtain an optimum implementation of the project business targets within the working time set. Initiatives and the subsequent division into tasks are effective tools helping him or help achieve the goal.

Now you know our project allotment and time management fully. Are there any other contributors to the effective completion of our projects? Most certainly. It is a crucial process which ensures our clients have a full insight into our work progress.

Reporting

This is reporting of course. We provide our clients on a monthly basis with:

  • A detailed worklog of working hours
  • Progress degree of the tasks started and plans for the next month
  • Initiative performance status

Task and initiative reports also provide information on changed working time estimates as compared to the previous-month plans. The information may include: increased estimated for a more difficult task, a scope change made by the client, modified priorities etc.

That’s basically all; one last puzzle piece remains … The one which will determine our cooperation in the long run.

Continuous improvement of the process

Managers hold regular meetings with our CEO responsible for the production and review projects, initiatives and tasks together. The objective of such meetings is to confirm that projects advance and to detect potential issues before the client reports them.

We also meet with our clients to sum up the objectives achieved in the last period, plan further objectives and receive the feedback on our cooperation and methodology. We analyse all the problems and failures and look for their causes. We implement our findings from the analyses and talks with the clients in our methodology to eliminate any similar problems in the future. Then we deploy all the enhancements in all our projects and thus improve our development process on a continuous basis.

Excellent management is our priority

Working on extensive IT projects does not only require technical mastery but also excellent management. I hope I have explained in this article how we manage a project and how we carry out the code development process. To sum it all up, we always focus on the precise control of the process, provide our client with a full insight into our work and refine our cooperation base on the lessons learned from problems or understatements.

Our development process is a perfect complement to the high skills of our software developers and enables them to use their abilities in the implementation of projects for our clients.

Artykuł What does our code development process involve? pochodzi z serwisu Atinea.

]]>
https://atinea.pl/what-does-our-code-development-process-involve/feed/ 0
How we ensure a high quality of the code when outsourcing software developers https://atinea.pl/high-quality-code/ https://atinea.pl/high-quality-code/#respond Fri, 27 Jul 2018 17:11:22 +0000 https://atinea.pl/?p=868 “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 […]

Artykuł How we ensure a high quality of the code when outsourcing software developers pochodzi z serwisu Atinea.

]]>
“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.

Artykuł How we ensure a high quality of the code when outsourcing software developers pochodzi z serwisu Atinea.

]]>
https://atinea.pl/high-quality-code/feed/ 0