journalist, tech entrepreneur
In the modern world, software development has become a crucial part of business operations, even for companies in non-tech industries. You need software, mobile and web apps to automate routine business tasks, reduce costs, and create a better experience for your customers.
Creating new software is a complicated process with multiple obstacles that might harm overall productivity. Today we will talk about how to make your software development process super-efficient, without the need to hire more developers.
Everyone knows a cliche programmer: one who only wants to code, but not to think about business goals, end users, the needs of colleagues etc. The truth is, such programmers were probably not always like this. The chances are that in his first days in the company, such a person tried to offer some ideas on how to make the product better, but was not heard.
This is a matter of corporate culture. How managers and co-workers react to new ideas says a lot about innovation and the overall effectiveness of development. If the developer offers something but his ideas never implemented, then he will just stop saying anything, concentrating only on something more comfortable: writing code.
As time goes by, such an employee’s thoughts will shift from “We aren’t building the right thing” to “We aren’t building the thing right”, as it perfectly outlined by Marcus Blankenship in his article. When people focus on highly local things like technical debt, using something which is not the latest tech stack, or an approach to forming comments in the code rather than discussing how to make the product serve users better, it is absolutely inefficient.
If your development process involves the use of programming languages rather than frameworks and technological platforms, you may end up in a complete technological mess.
You will have to incorporate multiple tools and languages, take into account the peculiarities of the certain operating system, manage containers with your applications, fight with cloud services, and spend lots of time on visual things rather than developing the core of your product.
All of these activities require lots of resources. Developers might like to learn new technologies or try innovative tools, but this has nothing to do with solving the main goal of reaching maximum development efficiency. Thus, you should try to limit your technology stack as much as is possible.
Once you’ve fixed your corporate culture and tried to minimize the number of tools used in the development process, you might find that making developers think about not only the coding level but also the business level, is still very hard.
This problem can be solved by starting to use frameworks and platforms that combine a predefined set of tools for developers. For example, the 1C:Enterprise platform doesn’t allow developers to waste time selecting certain tools, as they can go and build new things right away.
As a result, the technological complexity of the development process is drastically reduced, the development process itself is made standardized and more predictable, and employees cannot only just generate ideas, but test them very quickly as well.