In this short article I would like to share some thoughts about how the ideal development process can look. It doesn’t matter the area in which the process is establishing. It’s quite versatile, and can be suitable for organizing a variety of works. But the emphasis will still be placed on software development.
Many may have noticed how enthusiastically a new task can be taken. Anyone wants to start from scratch, make it perfect. But in fact it happensrarelyand this type of work stop being enjoyable. In programming, it is revealswith pilling up of code and undocumented,nonoptimal solutions, increasing complexity. You need to make too many efforts and hold the entire context in memory.
This is partly due to objective reasons –system growth and its complexity. It becomes too difficult to keep in mind all correlations, even a well-designed system. But often this excessive complexity is stipulated bynonoptimal solutions that constantly developer takes in the process.
Enjoyable work is one of the important factors of productivity and quality. You always need to like the results, and not only at the initial stage of the project. No matter of project stage – ideasdescription or codewriting, but the results should always be wishful. This is one of the most important conditions for productive work.
Wishful means simplicity, clarity and expressiveness. And so we come to the second important part of the development process is the collective checks. I consider the model «X» checks to be the most optimal, where «X» – is the number of sequential checks. This means the following:
Each task is tested, it does not matter whether it’s design or the result of documentation development or creation. The more important task, the more it affects other tasks, the more developed and clear solutions. This is achieved through multi-level checks. The developer making first check, thereby «X»cannot be less than 1.
For this purpose it must have the performance criterions. At this stage, the contradictions can be identified, which can be removed by the developer. If there is a problem in decision that the developer cannot fix (and consequently, he doesn’t enjoy the solution), and take it into the next checklevel. And gradually with every new test round the solution is perfectand overcome the contradictions, and getting moresimple and clear. While experimenting with collective thinking,I came to conclusion that it is necessary to have the initial decision (even not always an optimal) before constructive discussion. Joint ideal solution is a great way of team training, it encourages people to think constructively and see the contradictions.
I mentioned above that it is necessary to use performance criterions when testing solutions. And this is the next important element in the workflow. It can be used various quality criteria, depending on problem type (construction, coding, design, documentation). In addition, the specific subject areacan also make changes to these criteria. As well as successive check-outs, performance criterionsare valuable for team training. Man hardly doing his work poorly from harm. A reason for poor quality is often a lack of knowledge on how to make it correct. Performance criterions help to avoid common mistakes.
I want to highlight the joint planning work as a separate element of development process. Portioning of tasks can often lead to bulky results. As a result, the task looks exaggeratedly important, eats upimpermissible much time. And perhaps the most dangerous: the developer is too absorbed in task, overlooked the whole system. This can lead (and it often happens) to nonoptimal solutions. Therefore, I emphasize the importance of joint planning tasks. Constant review of tasks allows not to sheer and usepersonnel more optimally to perform tasks according to their importance. In addition, jointplanning helps each participant to see the whole system, give a meaning inside of it, and hence make the system more integral and rational. Nevertheless, the development of information systems is teamwork.
You can’t manage what you don’t measure
Visual workflow control is also an important component of well assigned process. Kanban methodology is more close to me, but with a few additions. I tried to outline, how this Kanban-board might look:
Here we have used the following notations:
- Red frame of task points itsimportance. That is other tasks depend on this project. Need to pay high attention when working on task and checking. Importance and impact on other tasks defined due tojoint planning process.
- Gray font shows that this object depends on tasks that haven’t beenmade yet.
- The background color in«In Progress»column indicates status of the task. For instance, if the task is«hangs» on the developer too long (the actual run time exceeded the planned), so this situation is indicated by a red background.
- To get attention, the developers can set the status. For example, “encountered a problem” or “found an original solution”.
- The right column of «Done» tasks is grouped according to the operating plan.
I haven’t talked about the different types of testing and using version control systems in this article. It is supposed that they are used by default.
As a conclusion, I would like to mark key points again:
- Enjoy every work is done. The result should be like a source of pride.
- X-steps checks. The more important is task, than it is more basic, the more carefully it must be checked.
- Performance criterionsfor different tasks categories.
- Joint discussion and work planning.
- Visual workflow control.
The article is written by Belitsoft Company: effective outsource software development services, where you can hire php developers and find a dedicated team, according to your project requirements.