Before digging a bit further, I think it is important to understand that I am not a developer. I am just really fascinated, and I try to learn everything I can on the subject. As a young entrepreneur in digital, I think many opportunities can be seized, and even if you have great ideas, you cannot get anything done without developers. So, I am getting up to speed on the subject of software development in order to be able to prototype a project and, in the future, to manage a team of developers.
This article will not cover technical issues in depth… But I will try to help you understand the developers ‘world, to be able to deal with them more efficiently.
The wide world of developers…
Do you think it is an easy job? Do you think a developer has just to follow instructions? Do you think the only thing he has to do is coding? If you answer yes to these questions, you should probably read the following.
Developers usually work in teams, because they have many things to handle. However, as a team, they need to be coordinated and think in a long-term perspective to avoid doing some crappy code. In addition, they are in relation with many departments because the initiative of launching a project rarely come from them. That is why they need a solid workflow to handle a tons of requests.
What should a developer really do?
Generally, developers like adding features or starting a new project, because it is the visible part of their job. And it makes perfect sense, because they finally see their accomplishments. Perhaps, this is not the unique part of their job. For instance, they also need to collaborate with the support services to get user’s feedbacks on their application. And then, they have to fix bugs to improve the user experience. Believe me, it is not the exciting part of their job! Unfortunately, it is really time consuming. Also, optimisation is needed, especially in big projects with a large audience. So, developers need to rethink the way they structured their app in order to improve performance, which also means, in a business perspective, to increase conversions.
In addition, they must think generic to reuse parts of their code in other applications, and by the way, save valuable time! But it is not as simple as it might seem, they need to abstract things and programming skills that are not enough for it, they need to use their brain. As a developer, you can reach a purpose with a tons of way, there are no set standards. There is a common syntax but you can write the way you want, as you do when you speak or write in your native language. And the difficulty is to find the “best” way to do it, but it depends on the objectives. They need to figure out how to handle the request (which can be to design an application, a website or a software…) to deliver the “best” product on time.
For instance, a developer might just write lines of code regardless of architecture, security, performance, modularity or even maintenance. He can just do some bad code that reaches the functional objective and it works! I would not invite developers to do so, because if you want to improve it in the future, it could quickly become a tremendous mess! If another person should take over the project, it will be a waste of time for him to understand what is going on. In addition, this person might need to rebuild the full application in another way before starting to add new features.
As a developer, it is hard to take a step back because technical tasks are overwhelming, but this is very important. Developers should think about the architecture upstream, because it will be a nightmare to change it along the way and very costly. In addition, they must pick up the right technology, in order to save time during the designing process. Perhaps, it might worth the price to use another technology, maybe more difficult to implement, but that will lead to better performance and security. Decisions taken at the beginning are crucial. Obviously, these decisions must be taken while taking into consideration many factors. Is there any sensitive data? Is there a large audience expected? Is there a need to regularly improve the application? Answering all these questions will help developers make better choices, only if they have an updated overall vision on technologies. That is why it is also important for them to watch technological evolution almost every day. Obviously, what you need to keep in mind is that they cannot meet all objectives without making compromises, their scope is too wide and complex.
What I retain from this experience is that being a developer is a full time job. There is no magic formula, a developer must dig further constantly. The basics that I learnt at school are not enough. And if I want to build a digital start up, I need to gather different experts. Be kind with them, it is a hard job!