Amidst numerous articles praising the remarkable advancements in AI, concerns are rising about the potential replacement of software development companies by artificial intelligence. Lots envision a future where AI and genAI directly create desired products without the involvement of traditional roles like designers and developers and software houses.
Obviously no. As we can read in this article The real problems are usually centered around what the software is supposed to do. The hardest part about creating software is not writing code; but it’s creating the requirements, and those software requirements are still defined by humans.
In a software house the designers and the developers do the most important operations. And, when we talk about “most important operations”, we don’t talk about creating the UX, the UI and the code. These are absolutely important operations, but not the most important.
The most important operations deal with communication, creativity, innovation and decisions about uncertainties.
So we can say that:
Rushing leads to mistakes. Despite this, a lot of customers think that starting coding first is equal to having the perfect project early.
Nothing could be further from the truth!
Starting coding without an understanding of requirements will end in a complete mess. First of all it’s not even clear to the customer himself what he wants. Then, there could be communication misunderstandings that add more randomness to the final result. Building an app, or a software, is like building a house. Have you ever seen a customer that directly tells the bricklayer the house requirements and how to build it? Everytime the project has to start from an architect or from a surveyor. This means that houses need to be projected and designed before “implementing” it.
The same is for software. That’s why AI can’t replace software houses. AI can write code like a (big) 3D printer can build houses. But without a project, specific inputs, coordination and supervisioning the 3D printed house couldn’t exist. Also software can’t exist without expert designers, expert developers and expert engineers that project and design the system.
Let’s dive into a software house method that allows us to create a disruptive product!
To manage the most important part of creating a software, DuckMa invests a lot of time and effort in workshops with customers. This is the best way to understand the project requirements and start the feasibility analysis.
The analysis is divided into two steps: Frame and Discovery.
The Frame is the first overview analysis of the feasibility. We involve a designer and an engineer experienced in software infrastructure in a 2 hours workshop. In this workshop we’ll study and analyze all ideas and requests and provide some advice. After the meeting we rework the notes and provide you a workbook that describes all requests and ideas. In addition it contains the macro functionality of the project, the opportunities and critical issues and a first project quote to let the customer know the investment.
The Discovery is a deeper analysis with focus on macro functionality decided in the Frame. In this phase there are other two workshops where we’ll design the user journey of the app and go meticulously through each page of the system. Then we’ll create a project document that describes what the software will contain. To be sure to have understood your requirements we will also create the wireframe of the app, that defines the content and the flow of each screen.
Last but not least we create the user story of the app that describes all possible actions in the app.
To conclude the analysis phase there is a third phase, the Plan, that is fundamental for scheduling the design and code phases. This is an internal part of the development that allows the developers to write a tech and a test document. During this the designers and developers divide the project in milestones and create a roadmap with the delivery dates. On these dates we’ll provide you a test version of the app, that you can start using and monitoring the progress of the work.
How much work we have done so far, and we haven’t written a single line of code yet!
But this is the opposite of what we said before!
Right, but now we’re sure about how to start developing. We build the project milestone by milestone creating the design first and coding it then. When the code is ready to be tested we do the first tests to ensure that all works.
As you can see the code is the last thing made, just before testing it. Working in this way allows all development processes to speed up a lot. The requirements are clear, the customer is aligned with the team and everyone knows all particulars of the projects.
Project first allows to discuss every possible problem before starting code. In this way the implementation flow is not interrupted by unconsidered critical issues. And many other stuff are resolved too, for example the delivery dates won’t be delayed by the arising of new problems.
Proceeding step by step allows the customer to see the work in progress and give feedback during the coding phase. The devs that are working on a project are faster to solve the small fixes that happen during developing.
Despite what we said about the importance of developers, AI is becoming more and more important in work support. For example, during the feasibility analysis it can be used to check documentation and obtain summaries. In the development phase AI can be used by developers to help them write standard parts of code or to check if there are errors in written code… and so on. In this way the app development firms can use AI as virtual employee that support developers.
It’s important to not confuse human and machine intelligence. The new languages and visual AI models are bigger and powerful, but far from human intelligence. The computers perform discrete and finite mathematical operations, the neurons don’t perform math itself, even if we can pass math exams!
As a result, designers and developers will still need to play a key role in requirements gathering and analysis. They need to be able to work with the customer to understand their needs, and they need to be able to translate those needs into clear and concise requirements.
AI is not likely to replace developers anytime soon. Developers still have a critical role to play in the software development process, especially in the areas of requirements gathering, analysis, and debugging. However, AI can be used to help developers be more productive and efficient.
Due to its continuous improvement, it is possible that one day AI will be able to replace developers. However, for the foreseeable future, developers will still be needed to create software and app dev companies will be happy to continue to hire them.