Soft Skills, Software Development, and AI

2024-04-17

, ,

I’ve always maintained throughout my software development journey that soft skills = hard skills. The code I write isn’t just for the sake of writing code, I could never contend to be a code monkey. What are the organisational goals? Does this feature align with those goals? How do we deploy? Who can help me push this through? Who are the customers? How does my work impact them? Code alone doesn’t answer these questions. Conversations do.

The developer community has had mixed feelings about the equivalency of soft and hard skills, though it’s not a premise that’s usually in the spotlight. Deep technical knowledge is the golden path of progression, and that’s still true - you need to be a master of at least one thing.

Now we find ourselves in the age of AI. When ChatGPT threw itself into the public domain, it rightly changed the world. Neural networks in the form of large language models never looked so good. ChatGPT can write code as well! This wasn’t a hype train, this was a hype spaceship. I did some small coding tasks with ChatGPT, and was reasonably impressed. As this technology progresses, devs with strong soft skills are going further than before.

I’ve worked with different organisations with different communication habits and expectations. My dev career has been tremendously boosted by my capacity to be effective in synchronous and asynchronous forms of communication. For example, I once got a Slack request for a data migration from the product owner. It was vague, so I asked a few questions and set out some requirements on a Linear ticket so it could be tracked. This alone adds value to the business. I do it out of habit because it helps me determine what’s needed for a task. I’m also a remote worker, proof of my output and productivity is required in remote environments more so than in-office. Plus, I can get sick, fired, quit, who knows - the verbose tickets and documentation will help the dev that comes after me pick up and move forward.

This habit is now super powered with LLMs. No less than 5 times I’ve been able to take the tickets I created, with clear problem definitions and requirements, and prompt ChatGPT to get the solution. Granted, those tasks were straightforward enough that I could do it myself. At a glance it looks like I saved a few mins of my time and some typing. But I’ve saved something a little more important - my brain power, my energy. The more of this I can save for bigger tasks, the better.

What are the hard parts of software development? Knowing what the problem is. Knowing what the solution is. Designing the solution. Executing the solution. AI gives me a shortcut, I can figure out the problem and what the solution looks like, it can design and develop it for me.

Admittedly, there are problems I can quicker solve by coding myself instead of crafting an effective prompt. These LLMs hallucinate… a lot… Many times I turned off GitHub Copilot as it kept getting in my way with suggestions of little use. The current state of LLMs tend to write a lot of suboptimal garbage code, adding unnecessary complexity. There are days I don’t use any of the AI tools at all.

Despite those limitations, these suite of tools are constantly improving. Leveraging human communication, soft skills married with technical know-how will elevate developers of today and tomorrow. Soft skills should never have been neglected, and now more than ever, they are necessary.

© 2024 Marcus Sanatan