The word “software development process” gives rise to the image of large and dusty piles of pads filled with rules, directives and forms with an abundance of administrative jargon.
But usually such deposits of documents can be found only in very large companies, which write software at snail speed for government organizations and companies included in the list of the first 500.
There, the software is developed in huge rooms by armies of programmers managed by managers like the boss with the “horned” hair of the famous cartoons of Scott Adams about Dilbert.
In fact, the process of software development does not have to be so monstrous. Everything depends on the scope of the task and the size of the organization developing the software. A good process can be adapted for any project – as for the mastodon, designed for 200 developers, and for a dwarf, which will cope with one person.
The purpose of the software development process is not to complicate the life of the developers and to destroy the creative beginning by the need to write an unimaginable heap of papers. This process is needed to ensure that the software development organization can predictably, on budget and on time, create high quality software that meets all user requirements.
To understand the nature of the software development process, let’s consider a very simple project performed by just one person.
Software Development Solo Project
Although Nick, a programmer with twelve years of experience as a developer, prefers to work alone, he follows a well-defined process.
Works for a small company as a software development manager. Trying to increase the efficiency and predictability of the development process, this company recently trained its employees in the Personal Software Process.
But then there was the following problem. The key element of this approach is that the developer takes into account how much time he spent on each type of work, for example, collecting technical requirements, designing, testing, administration.
But each developer has its own accounting strategy, so collecting and consolidating all this data at the end of the week becomes a nightmare. The assistant has to collect all the notes, e-mails and voicemails with the help of which the project participants evaluated what and how much time they spent.
This is depressing, because in a software development organization, accurate measurement of the work required for different operations is essential to track performance, identify bottlenecks and effectively plan future projects.
I suggested that try to automate the labor-intensive work of tracking labor costs. Each developer’s screen should have a small timer that he can activate, associate with the name of the operation, stop when he leaves for lunch or another break, start again when he returns, and close at the end of the task.
This data should be stored securely and at the end of the week, retrieved and consolidated in a spreadsheet.
I will pay you as much as you say. Of course, within reason. How long will you take to develop it?” I told Gary I had to think about it. I didn’t have any urgent work planned for the next week, so I could have made something in a few hours.
The rest of the weekend I thought about the project with timers several times, and when I woke up in the morning, I already had an idea and two options for its implementation. But since the task I was offered was a serious business proposal, I needed to make a serious business case. What exactly will I create, how much resources will I spend on this?
The main cost is my time; in addition, I may have to buy some software. And finally, what is the fee to ask Gary for? So I arrived in my office this morning, cleared my desk and put four sheets of paper on it. On one of them, I wrote the following headings at the top:
- The concept
- The plan…
- Economic feasibility study
I started with the concept. I had to describe to Gary and myself what we wanted to get out: the main problem he needed to solve was what the appearance of this tool would look like and how it would be used.
The problem is…
In the organization where Gary works, the lack of ability to collect accurate time spent on software development operations makes it extremely difficult to track project progress, assess work required, invoice clients, make payments to contractors, and finally, accurately assess future projects.
Formulation of the concept
A personal timer (PT) that measures time spent, collects and stores data so that it can be sorted and retrieved, will allow the organization to quickly, systematically and uniformly account for each project participant’s time and compare it with the planned costs, and to better assess future project labor costs.
- the developers;
- administrative assistant;
- Project managers.
- measurement of the time spent on the operation;
- making a spreadsheet with the time spent per week;
- Consolidation of project data;
- Configuring the tool and database for the project.
I will schedule a few days’ schedule, indicating the main steps – the points where I will have to make decisions either on my own, which is more likely.
I will need to discuss some of the details with Gary today at lunchtime and make sure he makes some commitments – at least he starts paying me for the work. It will be necessary to agree with him on the concept, plan and my assessment of the project.
I will also make a business case, which Gary will not see, in which I will calculate in detail how much time I will have to spend on this project.
If I manage to do all this, i.e. to agree on the overall concept, plan and cost of the project, as well as to get a guarantee that I will not remain in loss, it means that the first stage of the project – the stage of goal setting – will be completed, and this phase of the survey will be completed.
To sweeten the pill that has to swallow, and to make sure he doesn’t have any unforeseen difficulties, I’m going to offer him to pay for the schematic prototype that I’m going to show him on Tuesday night.