Improving the (software) development process
Anyone familiar with the hi-tech industry knows that there are several problems that seem to appear in a lot of companies. Definitely not in all, but many companies.
Some of the problems
- Slow development of new feature.
- Bugs that manifest after deployment or at the clients impacting user experience and even losing money.
- Dead-lines not being met by the engineering team.
- Low satisfaction level of the employees.
- Bugs that return to hunt the developers even after they were fixed.
- Security vulnerabilities.
- Fast turn-over of employees. Especially among developers.
- Long working hours in the engineering department that reduce the employ satisfaction and increase the turn-over.
Probably not surprisingly there are companies that are much less effected by these problems.
Learning from them and implementing their methods can help improve your company as well.
Naturally one has to take into account the differences between companies.
Something that works for Google with almost 200,000 employees will not necessarily work at 200 person company or at a 10 person start-up.
A process that works for a company building web applications will be probably different for a company that develops components for the automotive industry or the defense industry.
Yet there are some common aspects for the solutions.
Some of the solutions
I'll write more about the solutions that seem to work for some of the companies with highest market value.
- Creating a process where developers can get feedback fast.
- Creating a process where bugs, especially regressions, are found and can be corrected fast.
- Creating a process and an environment where developers don't need to fear making changes.
- Reduce or even eliminate breakdown in communication between parts of the company. Especially within the engineering team.
- Reduce or even eliminate the knowledge loss in the company.