Two different fields with manufacturing similarities
AI is driving manufacturing software development.
It took some time for me to realize the intersection points to drive a successful software team, seeing the similarities between software development and engineering. Similarities are more pronounced than differences; I think manufacturers can be inspired by software development, while also seeing the similarities with leading a successful team on the manufacturing shop floor.
In software development, just as in manufacturing, you are managing complex projects and processes, and where the outcome isn’t clear in the beginning or even in the middle of it. People, infrastructure and organization structures play key roles, and it is not always predictable to understand customer value of products or services until you engage with customers. Thus, being agile and interacting with real world feedback is as important in software development as in manufacturing engineering.
Both are different fields and yet they have similarities. With the future of automation already evolving on our shop floors, both fields are continuously being transformed. Since some years, we use Development Operations (DevOps) continuous improvements and development in software. We see how AI infused tools increase productivity for software developers. It’s important for shop floors to stay updated on the latest AI developments.
There are manufacturing customers with a large amount of annual engineering changes, resulting in significant human hours spent on these processes—largely due to a lack of standardization and reliance data mapping and on file-based integrations. Leading manufacturers will in the future apply a software-first approach and hardware-second.
Shop floors using AI for data decision-making
For some time now, modern software development has embraced the cloud, a new generation of user-friendly tools, as well as rich analytics with real-time operational data enables data-informed decisions to enable a pipeline of continuous improvements.
This new generation of manufacturing tools frees up more time and space to tackle creative and challenging tasks.
With the introduction of Generative AI in software development, documenting code functionality for maintainability can be completed in half the time.
For example, writing new code in nearly half the time in some languages, and optimizing existing code (e.g., code refactoring) - and this is just the start.
Additionally, in my opinion it's about respecting both domains for their capabilities to deliver value to an organization.
For example, CNC machines have more dependencies such as tools, machines, fluids, and materials. Then, when we look at the successful strategies from a connected field like software development, we can apply them and make the manufacturing techniques and processes better.
What are the similarities between the workflows and methodologies used in both fields?
Version control: It is very important in both fields to keep a version record of the code and change. For software developers, they can maintain the version of their program using Git or SVN, but for manufacturing engineers, it is keeping the version of the NC/machine code to make sure that both machining programs are the same and traceable.
Simulation and testing: Developers use testing frameworks and debugging tools to simulate applications and ensure quality in a production environment. Further, CAM software also has simulation tools added to it to visualize the process of machining, identifying regions where a problem may arise, and optimizing operations before doing it for real.
Simulation and optimization tools, such as Vericut, can be compared to code analyzers and QA tools, while in CNC, the in-machine and automated inspection follows trends seen in automated tests in software development.
The stakes for failure are high in two areas:
- Companies that highly value integrity will be affected by cybersecurity breaches or machine crashes, and
- Delays in delivering components can significantly impact manufacturing companies.
Task management: The other area of significant overlap is heavy reliance on task management systems in both disciplines to provide visibility to work in progress, prioritize work, and ensure work reaches its recipient on time.
Both teams cited working commonly with Lean principles and agility. Some shop floor teams are operating close to a software engineering DevOps team.
The use of Kanban boards and similar tools shows common lessons learned about the importance of visualizing work, managing workflows, and dealing with WIP.
In the manufacturing sector, MES solutions are the equivalent of pipeline management tools, such as Azure DevOps, and the product management tools are similar to PLM systems, like Trello or Aha!
Collaboration and communication: Both fields rely strongly on collaboration. Developers communicate changes and updates using platforms like GitHub, Slack, or Teams and task management tools like Monday.
Shop-floor teams work together on seamless operations and can share knowledge using PLM, MES systems, CAM software, and chat tools like Teams. Software developers work off internal knowledge bases or Stack Overflow, and while there are forums, there is a lot of unstructured data out there—not too seldom personal networks to talk with.
There are, however, many areas within it that need to be simplified, learnings to be reused, and the knowledge at hand is to be exposed. One of those ways includes the use of manufacturing Copilots and seamless integration between CAD-PLM-CAM.
Continuous improvement: Agile methodologies thrive on continuous improvement brought about by iterative cycles. Constant improvement practices, not unlike those in software development, stand to benefit software development and manufacturing engineers just as well with regular feedback loops, transparency, retrospection, and incremental improvement, thus optimizing and enhancing outcomes.
Continuous improvement benefits both by increasing productivity, quality, accountability, and, most importantly, adapting to change with no glitches in any process. Practices of continuous improvement will, therefore, reduce technical debt, reduce waste, and avoid costly fixes in the future.
Code development and analysis: While in software development the writing and analysis of code remain at the very core, in machining engineer development the generation and optimization of G-code are most critical. Both rely on a trial-and-verification setup, which is the only key to legitimizing that the codes are doing the appropriate things correctly.
CAM software could be viewed as Visual Studio, IntelliJ IDEA, or Eclipse for machinists.
Improved creativity time : Both software development and manufacturing engineer development involve great creativity not just in solving complex problems but in innovating new solutions or designs and for optimizing the processes.
Already generative AI has shown potent performance in the case of software developers. This, by addition, includes the likes of GitHub Copilot, which is a source of inspiration for how CAM software should evolve to diminish repetitive tasks and at the same time enhance creativity and innovation through simplified code generation, documentation, and assistance in debugging. In my team, we can already see a 20% productivity improvement by using GitHub Copilot and this should be our ambition in manufacturing as well by infusing AI into the manufacturing engineering process.
The role of generative AI in software engineering
The integration of automation pipelines, collaboration tools, and Generative AI has led to substantial advancements in software development. Here's how Generative AI is reshaping the landscape:
- Code generation and completion: Generative AI tools assist in writing code by suggesting lines, completing code snippets, and even generating entire functions based on prompts. This reduces the time spent on coding, allowing developers to focus on designing and implementing new features. Productivity gains of up to 20% have been observed, but there's still much more potential to be unlocked.
- Automated testing and debugging: AI-driven tools can automate the creation of test cases, perform automated testing, and even identify and fix bugs. This helps maintain code quality with less manual effort and quicker turnaround times.
- Code review and quality assurance: AI tools analyze code for potential issues, enforce coding standards, and suggest improvements. This streamlines the code review process, ensuring higher code quality and freeing up human reviewers for more strategic tasks.
- Project management: AI can help prioritize tasks, predict project timelines, and manage workflows more efficiently. This allows teams to focus on creative problem-solving and strategic planning.
Complexities in manufacturing engineering
While manufacturing engineering also benefits from AI, it faces unique challenges that make automation more complex compared to software development:
- Physical hardware dependencies: Manufacturing engineers rely on various types of machinery and tools that must be precisely controlled, maintained, and fine-tuned for each component. Hardware compatibility and physical setup add layers of complexity that require careful coordination and optimization.
- Material variability: Manufacturing operations handle a wide range of materials, each with unique properties that affect machining strategies and quality. AI systems need to learn and adapt to these variations, making automation more challenging in this environment.
- Process complexity: CNC machining often involves multiple steps and operations, such as milling, drilling, turning, and roughing, which need to be precisely coordinated. Each step can affect the subsequent ones, adding to the overall complexity.
- Environmental factors: Temperature, humidity, and other environmental factors can influence machining accuracy and tool wear. Intelligent systems must account for these variables to ensure consistent quality and reliability in the machining process.
- Safety and compliance: CNC operations must prioritize safety, with robust fail-safe and emergency protocols in place. Regulatory compliance and the protection of intellectual property add additional layers of complexity to automation efforts.
Achieving synchronous automation in manufacturing
Although both software development and manufacturing engineering are moving towards greater automation, the complexity and dependencies in CNC operations mean that achieving the same level of automation will likely take longer. However, advancements in AI and robotics are steadily transforming both fields.
As we transition from the cloud and digital age to the AI era, humanoid robots may soon interact with us in these environments.
By automating routine tasks, professionals in both domains can focus more on creative, high-value activities, leading to greater innovation and productivity.
Rather than eliminating software developers or CNC/CAM operators, AI may redefine their roles. Embracing change and cultivating a mindset of lifelong learning will be essential for staying ahead in these rapidly evolving industries.
The key is to embrace AI and deepen domain expertise. Despite the differences, there are valuable lessons to be learned from the progress in software development to assure competitiveness through reliable speed from idea to manufacturing to delivery. This goes hand in hand the importance of up-skilling, culture change, continuous mindset, and improved manufacturing software to drive the future of manufacturing.
Other AI related pages you might like
The struggles and potential of AI integration in modern businesses today