Coding with AI


I coded with GitHub Copilot for the first time recently. Since moving over to Product Management, I haven't coded much except in small bursts for personal projects. But, at 9:12am I decided to download VSCode and just see how long it would take to get myself up and running.

9:20am, I was up and running and asking IT to do all the things I'd normally spend time doing through IntelliSense, and other shortcuts.

9:25am, I hit a snag - and before turning to Google, I just asked the built in Copilot. It pointed out what I'd overlooked, and let me resolve with a button press.

17 minutes and I'd written a basic app. I started to build out an imagined user story - user types in a texbox, clicks a button, event triggers, etc.

As I built and refined the workflow in my head, I used the inline Copilot to rapidly prototype the code. Sometimes it gave me a less efficient solution, other times it referenced objects that hadn't yet been declared... But the capabilities were all there. I still had to use my engineering knowledge to sequence things and correct the code it had broken because of my fractured non-sequential prompts, but I didn't have to spend time on the basic building blocks.

Then I tried to push its limits - asking it to build out the logic to some real world challenges: compare data sets in non-trivial ways while applying filters based on varying criteria. I asked it to retrieve information without giving it all the explicit instructions and I watched as it made logical inferences purely based on the variable names.

Without being told, it knew to rationalized that it should exclude anything where IsDeleted=true. It was really, truly and scarily impressive.

Does this mean the end of software engineers? No - but, I do see this as the end of Software Programming and Software Development. And that's an important nuance.

Programming, Development, Coding... it's component assembly. It's putting things together based on defined plans - and provided you stick to the plan, it will work. You don't have to worry about the problems and challenges it will face, or how it solves for them. Those are handled for you. It's how IKEA made every day people into amazing modern furniture builders. It's how LEGO turns us amazing builders.

Behind that IKEA furniture and the LEGO kits are engineers. Engineering is about building robust systems that can handle a number of stresses, account for problems. LEGO kits are incredibly well engineered. IKEA furniture does, suprisingly, last more than a couple of moves. You engineer to withstand stresses - and which stresses are up to the engineer (and the business team). To do a good job, you consider the known challenges, plan for the unknown challenges, and plan for the maintenance.

It's about problem solving for the real world. For as long as there will be problems, there will be engineers. Yes, AI has also made a lot of this far easier - but what is still required of the Engineer is context. Context - whether its fed to the GitHub Copilot, or it's manually created via spec and writing lines of code - comes from somewhere. Context requires to consider the known fchallenges, plan for the unknown challenges, and context requires maintenance as it changes.

If you're worried about AI, you shouldn't be. That's like a mathematician being worried because calculators just made their abacus useless. They're all tools. But you should be asking: how much time are you spending on the assembly rather than understading, defining, and planning around the problem and the context?

Popular

Work Experience vs Professional Experience

Let's Clear Up The Ambiguity!

FAQs for a Software Engineering Hiring Manager

7 Steps to Writing an Amazing Resume

7 Steps to Building your Portfolio MVP