- Give an overview AI usage in the software engineering industry.
Companies have started making consumer facing products based on AI. However, they have been incorporating AI into their products and using AI to analyze data for years.
We will discuss two broad areas of AI usage among software engineers:
- Core Business Development.
- Learning Process and Development Workflow.
The “core business” of a company represents the central products or services that the company provides to its customers or clients. For example, Starbucks provides coffee and a consistent, familiar experience for its customers.
Companies have been incorporating using ML models to augment their product features, improve their services, and make better decisions.
We’ll briefly discuss 2 examples:
- Starbucks uses a system called Atlas to decide where to open new stores. This system takes into account various features such as population density, traffic patterns, consumer habits to estimate the economic viability of various locations.
- Netflix uses ML to augment search with in-session adapted recommendations. If a user has been watching stand-up comedy shows in a particular session, they will be recommended similar shows when they use the search functionality.
- Wildlife Conservation institutes have been using AI to automate wildlife tracking and monitoring. These systems have also been used to detect poachers and prevent them from harming wildlife.
As a software engineer, our goal is to solve problems while considering requirements and constraints. AI is another tool we can use to design and develop better systems. Software engineers often work alongside machine learning scientists to incorporate these models into various systems and processes.
The StackOverflow Survey has started including an AI section since 2023. They also have an article on the Developer Sentiment Around AI/ML in their 2023 survey. They break down usage according to subfields in software engineering.
The key takeaways for us are:
- Most developers are using AI tools in some capacity in their development process.
- A large majority have favorable views of using AI tools in their workflow.
- The majority don’t trust the accuracy of the output of AI tools.
- The biggest benefits for developers are increased productivity, greater efficiency, and speeding up learning.
Professionals are still in the process of fully understanding how to use these tools so there isn’t any general consensus on best practices yet.
In this course, we will primarily focus on the second category (Learning Process and Development Workflow). Software engineers have to constantly learn new things and make prototypes. Any tool that makes one or both of these processes faster or easier will greatly improve productivity. This is why we will focus on learning how to use these tools effectively.
As an early career engineer, it is imperative that you focus on learning the fundamentals of programming and computer science before trying to incorporate AI systems into your applications. Once you understand the basics of data modeling and APIs, you will be able to start using pre-trained ML models.
We will learn how to use AI chat bots to accelerate our learning process, debug more efficiently, and autogenerate data for prototyping.
Software engineers are still figuring out how to best use AI to improve their workflow and productivity. Although most engineers don’t trust the code that’s generated by AI, they have an overall positive outlook for the role of AI in development. Meanwhile, an increasing number of companies and institutions are incorporating ML models into their products and services to great effect.
AI tools are rapidly improving and it’s important to understand how to use them effectively while being aware of their limitations.
- StackOverflow 2023 Developer Survey (AI).
- Developer Sentiment Around AI (2023) by StackOverflow.
- Starbucks - Grinding Data.
- Augmenting Netflix Search with In-Session Adapted Recommendations.
- Revolutionizing Monitoring and Tracking for Wildlife Conservation.
- Machine Learning for Wildlife Conservation with UAVs.
- Perspectives in Machine Learning for Wildlife Conservation.