How Artificial Intelligence Is Changing Software Development Right Now

For the first time in many years, the public has recently become aware of artificial intelligence (AI) again after OpenAI released their much-publicized chatbot, ChatGPT. Something about its uncanny intelligence and human-like fluency captured people’s imaginations, and maybe even freaked out a few folks.

If you’re involved professionally in software development, you’ve no doubt seen people generating fairly complicated code automatically with ChatGPT, and other similar technologies, and wondered if there was still a future for you writing code, or if the machines would eventually replace you.

Software Developers Aren’t Going Away

If you are a software developer, I don’t think you need to worry about your job going away any time soon–at least not if you’re willing to continue to learn and grow. 

Below, I’ve outlined several of the ways that human software developers and code-generating AIs are different. If you are a professional developer, or studying to become one, you will see there are things you can do to future-proof your skills against the rise of the machines. Similarly, if you’re a technology leader, I’ve provided ways that you can help your software team get ready for the future of AI.

Creativity

Machine learning algorithms like ChatGPT are impressive, but their “intelligence” is borrowed. What appears to be intelligence is actually derived from being trained on mountains of data generated by humans. 

They can combine concepts in impressive ways, but nothing output from a machine learning algorithm will be truly new or unique. Based on its very nature, a machine learning model will always produce derivative work based on what it has seen. 

Humans are somewhat the same. After all, we have sayings like “Good artists copy, great artists steal” and “All creative work is derivative.” However, you don’t have to look back over the history of any medium for long to see that there are moments of invention which change everything that comes after them. The ability to adapt after invention is a uniquely human characteristic.

There are many examples of genius developers inventing whole new ways of doing things over the years. Think of the creation of microservices architecture or inversion of control, for example. These patterns are special because of their break with what came before them. In other words, they were not derived from the coding patterns that were common when they were invented–they are a reaction against those patterns. 

AIs are simply incapable of this type of creativity. Only humans can invent something truly new and never seen before.

Problem Solving

I recently used ChatGPT to write a poem, and I kept asking it to change one line it wrote that didn’t make much sense. For whatever reason, the machine learning algorithm which makes ChatCPT tick was totally stuck on that line and just kept adding it back into the poem. 

This is a flaw of machine learning algorithms. In addition to being bad on creativity, they can’t solve complex problems without having seen the solutions (or all of a solution’s component parts) before. They can recall a solution they’ve been trained on, most likely sourced from a human, but they can’t create a new solution if a human hasn’t invented all of its parts already.

So much of software development is actually just a form of problem solving. Even as AIs become a bigger part of software development, they will not be able to solve problems the way we do.

Busy Work

Computers have always been good at doing the things people didn’t like or were too slow at doing ourselves. At first, that primarily meant doing math quickly (they are called COMPUTErs after all). More recently, machine learning has added other types of tasks to the list of work that computers can do more quickly than their human counterparts. 

For example, if you’re learning a new development language or framework, it might be helpful to ask a machine learning model, such as ChatGPT, to summarize how to achieve a certain design pattern in that language, and answer based on the countless examples it has already seen. This saves you from a bunch of reading and researching to likely arrive at the same answer.

Abstraction Layers

Developers started out writing machine instructions, such as assembly language. Later, they had more advanced languages, like C and C++, but had to manage memory themselves. Now we have quite a few more abstraction layers at our disposal: 

  • Very powerful and elegant programming languages
  • Frameworks that do the heavy lifting for us
  • Development tools to help us write and debug code
  • Garbage collectors for managing our memory usage
  • Compilers that automatically improve the performance of our code

Whenever a new abstraction is invented, developers can move up a layer, allowing us to write more complex software.

Machine learning algorithms that write code for us may just turn out to be that next abstraction layer that is getting added, abstracting away details and busy work so we can focus on the specific requirements, unique challenges, and business logic of our software systems.

Future-Proofing: What Developers Should Do

Look for opportunities to work on teams filled with people who are better than you. Get on one of those teams, learn what you can from whomever you can, and you will become a better problem-solver very quickly.

Try to embrace being a lifelong learner. We don’t work in a stable industry, but one that reinvents itself quickly and frequently. If you want to stay marketable, make sure you’re learning new skills and instead of being replaced by what’s invented next, you’ll be the one inventing it.

To stay relevant, developers should also focus on exercising their creativity. Learn a new platform or type of development. Learn other related skills, like how to talk to stakeholders to understand their needs and turn those needs into requirements for the software that will help solve them. Heck, even learn a musical instrument! The key is to always be learning something new to keep your mind sharp and ready to learn.

Know what tools AI offers you to become a better programmer so it’s your friend and not your enemy, and practice using them so you get better at it. You should also know how to use the different types of AI in your projects, so you can hit the ground running when you need one. Finally, familiarize yourself with the offerings on your favorite cloud platforms, such as Azure AI, AWS AI, and OpenAI API.

Future-Proofing: What Technology Leaders Should Do

Technology leadership should try to hire teams with diverse experience levels and look for ways to organize those teams so that mentorship happens naturally. The experienced developers on your team will have solved more problems, and therefore be better at it. Your less experienced developers can watch and learn from the experienced ones and before you know it, you’ll have a whole team of experienced problem-solvers.

Leadership should also make sure their software developers are getting access to the best tooling and training so they can prepare themselves for the future. Encourage your team to use the AI tools available to them already, such as Visual Studio’s Intellicode or GitHub’s Copilot.

Look for opportunities to add AI functionality to your software in ways that enhance the experience for the humans using it. A good example of this is how Microsoft is incorporating ChatGPT technology into its Edge browser and Bing search engine

While a lot of solutions that use the latest buzzword feel like solutions in search of a problem, Microsoft’s AI approach is a perfect example of how AI can revolutionize something stagnant. Even though internet search hasn’t really changed much in 20 years, Microsoft is doing it in a way that feels so integral and natural you wonder why it wasn’t just done like this before.

Summary

We don’t have to fear artificial intelligence if it’s on our side and we know how to use it as a tool to improve our software. Get to know AI and what it is good at, and focus your attention on the things humans do better. 

With these perspectives, you will quickly find that AI becomes an ally of your software teams, and not your enemy.

Picture of J. Tower

J. Tower

Jonathan, or J as he's known to friends, is a husband, a father, and the co-owner of Trailhead Technology Partners. He is also an 8-time Microsoft MVP in .NET and frequently speaks at software meetups and conferences around the country and the world. He doesn't mind too much because he loves sharing what he’s learned, and it also gives him an excuse to visit any nearby National Parks, a passion of his, proven by the fact that he's currently made it to 52 of the 63 parks. J. also has a passion for building community and has served on several non-profit boards over the years as a result. Currently, J. sits on the SoftwareGR board, a non-profit trade organization dedicated to building the software industry in West Michigan. He also runs Beer City Code, a software conference, and has served as president on that board for over a decade. J. loves hiking, reading, music, photography, and trying to see all the best picture nominees before the Oscars ceremony.

Related Blog Posts

We hope you’ve found this to be helpful and are walking away with some new, useful insights. If you want to learn more, here are a couple of related articles that others also usually find to be interesting:

Our Gear Is Packed and We're Excited to Explore With You

Ready to come with us? 

Together, we can map your company’s software journey and start down the right trails. If you’re set to take the first step, simply fill out our contact form. We’ll be in touch quickly – and you’ll have a partner who is ready to help your company take the next step on its software journey. 

We can’t wait to hear from you! 

Main Contact

This field is for validation purposes and should be left unchanged.

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the form below. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Montage Portal

Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.

Project Background

Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.

Logistics

We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:

Custom App and Software Development

We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.

Cloud and Mobile Applications

The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.

User Experience and Interface (UX/UI) Design

We want your end users to have optimal experiences with tech that is highly intuitive and responsive.

DevOps

This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.

Trailhead stepped into a challenging project – building our new web architecture and redeveloping our portals at the same time the business was migrating from a legacy system to our new CRM solution. They were able to not only significantly improve our web development architecture but our development and deployment processes as well as the functionality and performance of our portals. The feedback from customers has been overwhelmingly positive. Trailhead has proven themselves to be a valuable partner.

– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services

Technologies Used

When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

Expertise

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

  • Project Management
  • Architecture
  • Web App Development
  • Cloud Development
  • DevOps
  • Process Improvements
  • Legacy System Integration
  • UI Design
  • Manual QA
  • Back end/API/Database development

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

Our Gear Is Packed and We're Excited to Explore with You

Ready to come with us? 

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Thank you for reaching out.

You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.