Bloggo, Buildo's blog
Artificial Intelligence

Buildo Event: AI-Assisted Software Development

Featuring expert perspectives from industry leaders such as Pamela Gotti, Marco Denti, Alessandro Panebianco, Enrico Bertino, and Davide Cifarelli, we delve into the power of AI in both the creation and management of code.

Arianna Mandaradoni
Marketing & Business Development
July 28, 2023
9
minutes read

At buildo, we strongly believe in the power of events to share knowledge and meet people who can enrich our wealth of experiences.

Over the years, we have organized or hosted various meetups and courses at our offices, including events by Milano Scala Group, Milano TS, Italia JS, Data Science Milan, Ministry of Testing, Avanscoperta, and many others.

On June 14th, buildo's offices were the venue for an immersive meetup on the theme of artificial intelligence. We delved into the world of AI applied to software development, accompanied by Luca Cioria, buildo's Co-founder and partner, along with our esteemed guests.

  • Pamela Gotti, Chief Technology Officer @ Credimi
  • Marco Denti, Head of Software Factory & Innovation ICT @ Gruppo Ospedaliero San Donato
  • Alessandro Panebianco, Head of Customer and Business Analytics @ Enel X
  • Enrico Bertino, Chief AI Officer & Co-founder @ Indigo.ai
  • Davide Cifarelli, Co-founder @ Safurai
Our guest speakers during the event “AI-Assisted Software development”

This topic is particularly fascinating and relevant for us at buildo, as we are convinced that AI is revolutionizing how we build software products and manage code. Transformations are underway in the realm of software, and it's crucial to engage rather than remain passive. Various innovation and research projects have been launched to stay updated on what is happening in AI and software. We have also started collaborating with clients interested in AI transformation and experimentation activities, and part of this activity was discussed during the event. Through discussions with our guests, we explored the impact of AI on software development, the role of developers, the changes in software architecture, and the implications for creativity and quality.

In this context, we will address questions such as: Is AI an evolution or a revolution in software development? How does AI affect the role of developers? What are the potential risks and strategies for prevention? And how does AI influence the quality and creativity of software?

Join us in this exciting journey as we delve into AI and its profound implications for the software industry!

AI is changing the world of software in ways that no one wants to ignore. But is it a simple evolution or a real revolution?

According to Pamela Gotti, AI is both an evolution and a revolution. On the one hand, it's the natural evolution of previous technologies. On the other, it's revolutionizing how we write and manage code, allowing more people to approach programming and speed up operational tasks.

Enrico Bertino argues that nowadays, people aim to maximize their effort on specific tasks to the point where they don't even want to deal with language and programming anymore. Undoubtedly, the technological shift has been incredible. At first, it seemed impossible that GPT-2 could execute the instruction:

"I would never have said that 3-4 years later, we would already be testing GPT by asking for second-order differential equations. Now the gap between expectation and tool is much smaller.”

What’s the Impact of AI on People and Professions?

AI is not only changing how we develop software, but it's also influencing how we work and the skills we need to acquire. For software developers, AI can be a powerful tool to improve productivity and the quality of work.

Marco Denti provided us with an interesting metaphor to better understand this concept:

"When the mercury thermometer was introduced in the 1800s, there was a revolt by doctors who thought they would be replaced. The inventor said that the thermometer would not replace all doctors, but the doctors who used it would replace those who did not.
Marco Denti during our event at buildo’s offices

However, AI could also significantly impact other professions, such as journalism and data analysis. Therefore, AI gives the ability to work better, speed up tasks, and eliminate activities that bore the developer.

The Impact of AI on Software Architecture: Gradual Changes and the Role of Data Science

AI could also significantly impact software architecture, for example, by bringing changes in data communication and flow management. However, these changes will likely be gradual and take time to realize fully. According to Alessandro Panebianco:

"The role that the data science team will play is almost that of a guide to change."
Alessandro Panebianco, during our event at buildo’s office

Among other things, Panebianco points out that cultural change should be understood primarily by the higher spheres of corporate management, which is not taken for granted.

As highlighted by our own Luca Cioria, the fact that decisions were previously more based on intuition and managerial experience, while today they have shifted to being more data-driven, is an example of the transformation of the executive role in the company.

Will Artificial Intelligence Redefine the Role of Developers and Shape the Future of Software Development?

Artificial Intelligence is becoming increasingly adept at assisting in software development. There are concerns that the widespread use of AI could marginalize or eliminate the developer's role or that it could level the differences between more and less experienced developers.

According to Davide Cifarelli, Artificial Intelligence will impact all seniority levels in software development. For junior developers, AI can be a helpful learning tool, allowing them to acquire skills quickly. However, there is a risk that AI could discourage learning fundamental skills. For more experienced developers, AI can enhance their development experience, not only in terms of code but also in terms of cloud architecture and system design. Tools like ChatGPT help complete the code and can be integrated into all stages of the software development cycle, from DevOps to security. While AI can help less experienced developers improve, more experienced developers will be able to make the most of the power of these tools, making a significant qualitative leap.

Enrico Bertino during his speech at buildo’s event

We at buildo have also reflected on our positioning in this sense. Revisiting the thermometer metaphor, we have decided to position ourselves among those who want to learn the thermometer’s use as soon as possible.

According to Enrico Bertino, the change in the field of software systems due to Artificial Intelligence will probably be gradual. Currently, many problems in computing concern communication and data management. Introducing generative elements could further complicate things, but it will take a long time before this happens. Initially, we will see small microservices in software development where human intervention can still control the output. Since AI models are probabilistic, we can never be 100% sure of their correctness, but we can reach a point where we trust their robustness enough, just as we do with people who are only sometimes 100% correct.

Autonomous driving may experience accidents, but it’s essential to consider how many human drivers would have encountered similar incidents.

AI and Code Quality

Pamela Gotti believes that Artificial Intelligence can significantly impact code quality in terms of performance and security. AI can act as a programming partner, providing suggestions and helping to cover all aspects of the code, thus accelerating the writing process. Additionally, AI can automatically correct errors in the code through a process known as self-healing. However, there are also several challenges. For example, a beginner may have to review thousands of lines of AI-generated code, which can be daunting. Furthermore, using AI can lead to a new type of technical debt, as automatically generated code may not be optimal. Despite these challenges, Pamela sees excellent potential in AI to improve code quality and foresees exciting developments in this field in the coming years.

Pamela Gotti, during our event at buildo

According to Davide, AI can significantly impact productivity in software development. AI can assist in code analysis, making it easier for a new developer to understand a large codebase. However, using tools like Copilot can also lead to bugs that require time to be resolved, as AI-generated code may take time to be precise. Nevertheless, statistics show that AI can increase the amount of code written and improve developer well-being by automating repetitive and tedious tasks. Additionally, AI can create a more enjoyable work environment, allowing teams to focus on soft skill aspects and improve internal communication. In summary, AI can enhance productivity, but balancing the benefits with the potential challenges is essential.

Davide suggests that with the integration of Artificial Intelligence in software development, the developer's role could morph into that of a 'validator'. The characteristics of this role include:

  • Validating the output of AI models: validators will be responsible for reviewing and validating the work generated by AI models, such as GPT-4.
  • Utilizing their skills: validators will need to use their skills to interpret and synthesize the output of AI models.
  • Validating training sets: in the realm of data, validators will be responsible for validating the training sets used to create machine learning models.
  • Reusing AI tools: one of the challenges for validators will be to reuse tools like ChatGPT in a business context, ensuring data privacy and confidentiality.
  • Embracing change: validators must be willing to accept change and adapt to new processes.
  • Renewing their skills: it will be necessary for validators to update their skills to adapt to these new roles and responsibilities.
Davide Cifarelli during his speech at buildo’s event

Exploring the Impact of AI on Coding Pattern and Creativity in Software Development

According to Marco, there is no risk of standardization in coding style with AI, as the primary goal of code is to be functional and performant. Standardization, if oriented towards the best possible functioning, may be acceptable.

Regarding the impact of AI on creativity, Luca and Enrico discuss whether creativity is necessary for software development and how AI could influence it. Enrico suggests that AI language models are inherently creative, producing output based on probabilistic interpolations. However, the use of AI could limit personal creativity among developers.

Enrico also mentions the role of designers in the software development process, suggesting that AI could also influence this role. AI could generate different user experiences for an app or a web application, impacting the designer's creativity.

Finally, Luca mentions that certain professions, such as journalists, may feel threatened by AI regarding creativity.

Development Speed and Software Quality in the AI Era: Risks and Prevention Strategies

According to the speakers, using Artificial Intelligence AI can accelerate software development, but not necessarily at the expense of quality. Marco argues that if an organization has a solid code validation process, the speed at which the code is produced (whether by a human or AI) should not impact the final quality.

Luca adds that quality control processes, such as code reviews and static analysis, can be enhanced by AI. He also mentions the concept of "self-healing," where AI monitors the performance of a service and automatically corrects any issues.

Davide cites the example of Copilot X, a tool that automatically generates a series of unit tests whenever AI produces new code. If the tests are passed, the code is given to the user.

However, Pamela raises the question of the validity of automatically generated tests and self-healing, emphasizing the importance of having a robust quality control process.

In conclusion, the speakers agree that AI can increase the speed of software development, but they underline the importance of robust quality control processes to ensure that quality is not compromised.

Conclusion

Artificial Intelligence is revolutionizing the world of software development in ways we cannot ignore. From being a tool that enhances productivity and code quality to potentially influencing professions and required skills in the industry, AI is changing how we work and think about software development. However, it is crucial to address AI's challenges, such as the need for robust quality control processes and the potential threat to personal creativity. As we venture into this new era of AI, we must be ready to adapt and learn, always aiming to create high-quality software that meets users' needs at the forefront.

During the event, all the discussion was transcribed using Deepgram with Whisper. And once again, this serves as a delightful reminder of how AI is permeating our day-to-day tasks, making the seemingly daunting incredibly effortless!

Arianna Mandaradoni
Marketing & Business Development

Arianna joined Buildo to give support in the marketing & sales field. She loves organizing events and is responsible for creating new market opportunities and outlining the strategic marketing initiatives of buildo.

Still curious? Dive deeper

Design System
Buildo Event: Design System Conversations

December 20, 2023

5

minutes read

Artificial Intelligence
Software Development Companies in the AI Era

November 3, 2023

6

minutes read

People & Org Design
Creating an Inclusive and Welcoming Workplace for Foreign Employees

February 21, 2024

5

minutes read

Let's get down to business

Are you searching for a reliable partner to develop your tailor-made software solution? We'd love to chat with you and learn more about your project.