10/01/2022
Artificial Intelligence was once a topic reserved for research scientists and Hollywood movies.
In my pre-teen and teenage years, I remember feeling inspired by watching The Jetsons, E.T., Short Circuit, RoboCop and of course Star Wars. I imagined someday building a robot of my own, for no purpose other than expressing creativity through engineering.
But as inspirational as that was, by the time I earned my Computer Science degree, A.I. really wasn’t something advanced enough to add value to my life as a Software Engineer.
Yet what feels like an overnight transition, artificial intelligence has advanced so rapidly and so far, that current teenagers feeling the same inspiration I felt while watching those movies, could use A.I. to perform mundane tasks that take humans far more time and effort, without mistakes.
Robot kits are within the intellectual reach of youth, but as fun as that still seems to me, there’s one thing in my life that I need more of. Time!
I now have over 2 decades of post graduate experience in the software engineering industry. I still love my job and exude passion for architecting applications and coding for 16 hours a day. My brain rewards me with an endless supply of dopamine injections as I solve mini problems throughout the day while usually expressing myself through the C # programming language.
I once had a strong passion for the sport of motocross (If not for recurrent injuries I’d still be expressing that passion.). Just like many other sports, there is one mental phenomenon that we all sought to catch, to keep and to harness its powers; a state of mind referred to as “flow”.
I also experience flow as a Software Engineer, mostly while in the development phase. Since I have much more training and expertise writing software, flow’s arrival is far more predictable and prevalent than it was for me during motocross.
Since I enjoy writing software so much, as long as the task at hand isn’t overly mundane, outside of spontaneous disruptions and a day of meetings, keeping that focus for the duration of the day is only broken by an overly mundane task at hand.
In the context of the .Net Framework, creating interface files for an API, POCOs for database ORM interaction, enforcement of conventions, and autocomplete for LINQ suggestions are features of development tools that are standard, but are a form of artificial intelligence.
However, GitHub co-pilot goes beyond this in ways I have heard many other experienced developers describe as “freaky accurate” when it comes to predicting not just their next keystroke, but large swaths of code and algorithms.
To be clear, I took part in the trial of co-pilot, but I never actually used it. I was listening to the “.Net Rocks” podcast when I first heard about it, quickly jotted down the name and later downloaded it, but the trial expired before I made time to use it.
Often times new tooling can disrupt one’s flow and as promising as those tools sound, most of us developers have experienced enough disappointments over the years that it’s sometimes best to wait for the product to mature and for additional feedback to be written.
It is now of my opinion that the time has come for me to give co-pilot a shot. It sounds like an auto-complete algorithm on steroids and this survey is enough evidence for me to believe that co-pilot will help me keep ”the flow” by filling in those mundane segments and reducing a few Google searches to remind me of a particular algorithm or even create initial test cases.
Am I worried that A.I. will replace the coding part of my job?
No, but it’s going to change development forever. It could help offset the rising cost of software development for customers and enforce consistency in adhering to coding standards that new developers sometimes lack.
I am excited for the application of A.I. in my day to day job. The more time I can save performing mundane tasks, the more time I will be able to spend focussed and in the flow of a more complex algorithm, class or library.
If this tool doesn’t workout for me, I’ll be surprised. However, even the most mundane portions of software development do not bore me as did other tasks in my more youthful years, working to pay the bills as I searched for my passion.
Most memorable was my job plugging car alarm disarm switches, on an auto parts factory assembly line, in my early 20’s. For 8 hours a day I had to pick up a connector, plug in 3 wires and apply the tape label before sitting it in a bin. It wasn’t a difficult job but it was so mundane that I had to work hard to find a flow, and walked in each day intent on breaking my previous day and personal record, just to force time to pass more quickly.
It took me a while to find my passion before I chose Computer Science. Maybe the myriad of positions I held before graduating from college 22 years ago, at the age of 27, help me appreciate even the most mundane software development tasks.
It’s not that I need these tools to perform my job, but it sounds like it will take productivity to the next level and this excites me the most. For better or worse, and for as long as I can remember, I walk away from the day judging myself on how much I accomplish and all of the personal optimization tricks I have found, don’t compare to the percentage of productivity improvements they sited in this article.
The developers in the study who used co-pilot completed tasks 55% faster than those who didn’t. 73% reported that it helped them stay in the flow and as much as 75% reported feeling more satisfaction while coding with co-pilot.
It sounds like a formula for added job satisfaction, and substantially improved productivity, which definitely helps a developer remain in the the flow.
What do you think about A.I. as a tool in engineering? If the stats in this survey are accurate, I worry the veteran developers who resist will be left behind.
Jason Brower
There's no doubt that GitHub's 'AI pair programmer,' Copilot, has shaken up the dev world, but by how much?