How Software Engineer and AI newbies can collaborate together
Cinnamon AI
Cinnamon AI provides an AI platform for enterprises to utilize unstructured data.
Software engineering (SE) and Artificial Intelligence (AI) are the two fields of computer science. From the perspective of SE, there are many valuable edges of collaborating with AI newbies, including an excellent opportunity to improve coaching skills, sharing knowledge between departments, and learning from young, aspiring engineers. They are together toward common goals, such as productizing AI research for client usage, improving development workflow in future projects, through experience gained from existing ones. The work in this blog discusses problems and suggested solutions between a senior SE and AI newbies, and various techniques evolved while collaborating in Rossa Voice project.
AI models aren’t appropriately packaged for integration.
To integrate an AI model into a product, it is required to be packaged under a given standard. However, since AI newbies are generally only familiar with researching, packaging is a foreign concept to them. The SE will then step in to walk them through the integration process: help reorganize the codebase, write scripts to wrap the AI models, provide metadata required for packaging, etc.
Solution: ?Introduce AI newbies to the packaging process and tools to automate the process
Source code for AI models is usually untested since automation testing is an unfamiliar concept to AIR.
In general, a newbie feels satisfied when their code executes successfully, neglects thinking about what to do in uncommon situations, edge cases, or when an error happens, leading to the lack of test cases in their source code. Sometimes, they might find the idea of testing a hassle and try to avoid it. It might not be a problem in earlier phases when everything is still straightforward, but after the project has grown to a decent size, human testing will be a nightmare for whoever has to do it. To avoid such a situation, the SE will intervene early to help build test cases and apply automation tools, i.e: CircleCI, which helps the newbie realize that: It’s necessary and pain-free. Then they can do it by themselves in later projects.
Solution: ?Provide example test cases and guidance on testing
Debugging issues
This one is relatively easy because it is common. Software is never without bugs; we all know that. We resolve this by logging often so that when it shows a log message or an expected log message doesn’t appear, we immediately know which part is behaving incorrectly. The next step is simple since we have acquired the necessary information: Transferring to the corresponding stakeholder to resolve the issue, then updating the system. For example, if the bug appeared in AI models, the AIR will resolve it; if it appears in integration code, the SE will handle it.
Solution: Inspecting and transferring to the appropriate party
The ultimate goal is to deliver products that satisfy the client’s needs. However, due to the difference in expertise, some gaps need to be narrowed down to work effectively. In turn, the knowledge and experience gained from current projects can be applied to future ones for a smoother workflow, less friction, creating better products. In addition, we develop a culture of working with teamwork and collaboration and create a friendly technological environment.