Good afternoon, dear habrayuzer.
This post aims to try to inform the project / management manager of the need to purchase SSDs for developers.
It may seem strange, but in a large number of development companies there is no SSD, and the management does not understand why they are needed, this waste of money.
')
I decided to write this article while my project was being compiled. And it was still compiling when I wrote the third.
Brain and computer
The computer should not be perceived as something great worthy of worship, before which one must kneel when he performs calculations. No, this time has passed along with lamp computers of the mid-20th century. Now the computer is an assistant, a tool, a screwdriver, which should help quickly and in a timely manner. The work is performed by the user, the programmer, and the equipment should help this work, and not vice versa.
While a programmer is working, a lot of ideas, thoughts, options fly in his brain. The programmer needs to quickly check and implement them. To do this, the computer must clearly and quickly respond to user actions. Even a 30 second delay when opening a browser to googling any technical issue, the long launch of the version control system utility, the long opening of the project and even more compiling, at which, moreover, the computer starts to slow down a lot, knocks off the rhythm of work. You have to learn to think slowly, to write down thoughts on a piece of paper, because after 5 minutes, when you receive a technical opportunity from your electronic Pokemon Slopek to realize a thought, it is already too late. The brain is already occupied by another. And, the worst thing is if the brain loses flow (
Flow ). Now compiling Awad with three hundred projects in the solution took about 10 minutes. This is a loss of flow. The brain is already busy with other global tasks, the search for universal justice or another bug. And it takes another 10 minutes, in addition to the time to complete the current brain process, to return to the stream. It's horrible. On one project, to test changes in the code, it was necessary to spend up to 20 minutes to deploy. There were terrible and long code generators, and for the operation of the measured logic, the generators had to work out. So, that 20 minute delay turned into 40 minutes. Even after a 5-10 minute compilation, you can already forget why you did it. In a state of technical search and testing, it is necessary to quickly check various possibilities, and the time between delays for these checks should be minimal.
A fast computer that satisfies the desires of a programmer is a very important thing. Just like a racing car, it must be fast, allowing you to realize the full potential of the rider, and not delay it. It is comfortable to work at fast PCs, physically saves time, and most importantly, there is no dissonance with the work of the head, no loss of flow occurs.
PC speed
Obviously, the performance is affected by many details. With CPUs, everything is clear, they are faster and more multi-core, and they will be loaded only when compiling. 3D designers and mathematics in our calculations do not lead. Memory will help more programs work together. A studio gluttonous memory. Memory speed is also important. But it should be understood that accessing the computer’s RAM is the same as going to the library to a person. Depending on the technical characteristics, this library is either in the next room or in the next house. But to get data from a permanent storage device is equivalent to ordering a book on Amazon with its delivery across the ocean to the rowing gallery, and then also by Russian post on a cart drawn by an old nag. But now there is a very important revolution in data storage systems. SSD comes to us, this is a very important milestone, on a par, and even more significant than the appearance of multi-core processors.
SSD is a plane. This is the plane that the FedEX courier is sitting in, who will parachute right above your home. SSD gives 5-fold acceleration when reading large files. But it is not interesting. We work with thousands of small files with codes, configs, and the studio compiles all this. And in the segment of small files, the SSD read speed exceeds the HDD by 50-100 times. This means compiling 10 times faster, at least! And the overall performance increase, much faster system start-up, timely system response to user actions, system readiness to fulfill programmer’s requirements. SSD will give, relatively speaking, a 10-fold increase in performance; replacing the same memory, the processors will give two times. Investing in SSDs is the same as investing in platinum in the 18th century, when they were cheaper than copper. The result is much greater than the cost. But more about that in the next chapter.
Economic justification
Let's try to calculate the profitability of SSD
SSD with 120GB is required - this is enough for the system, projects and a reserve of ~ 40% free space, which is necessary for the full efficiency of the drive.
Initial data
- Arbitrary spherical SSD on 120GB 4000 r.
- Spherical programmer in a vacuum with a low salary per month 70000 p. (talking about Moscow)
- The duration of the working month is 176 hours.
- Company expenses for a programmer, including UST (30%) ~ 100000 p.
- Cost per hour programmer 570 p.
- Average number of working days in the month 23 days
Let us estimate the loss of programmer time per day.
Suppose active coding, 4 project compilations per day
- Compile time 10 minutes
- Simple due to long loading (time for full system and software launch - 7 minutes, with SSD 2 minutes) 5 minutes
- Simple due to general brakes difficult to evaluate 30 minutes
Calculate the loss of time
- 4 compilations 40 minutes
- 4 flow loss 40 minutes
- Download 5 minutes
- Brakes 30 minutes
Total 115 minutes. Suppose an error of + -50% and suppose that we overestimated the losses and were wrong in a big way. Suppose the total simple at 1 hour per day.
Total 23 hours per month. This is 13110 rubles. This is a 3.2775 SSD per month.
Thus, buying an SSD once can bring a reduction in damages to downtime due to a performance increase of 3,110 rubles per month.
Conclusion
Buying an SSD will increase programmer productivity and overall job satisfaction. The economic effect will greatly exceed the cost of SSD.
ps It was hard to choose the right hub. If you advise which hub to republish - I will.
UPDATE
For interest, I decided to add a survey.
Do you have an SSD?
This will be an occasion for a potential reader-manager to assess whether his approach is in line with the trend, and it is just interesting for developers.