Home / Blog /
Is AI pair programming really going to help me?
//

Is AI pair programming really going to help me?

//
Tabnine Team /
3 minutes /
February 22, 2022

A few weeks ago I wrote an article that spoke about beginning my journey with Tabnine. At my previous job I had the occasion to play keyboard warrior in the application of machine learning and statistical processes to customer pipelines. But more often than not the job consisted of managing partners and working to ensure top notch delivery to the customer. So it was only moments few and far between where I found myself with the opportunity to code. As I admitted in my previous article I’m an average engineer at best and not having many opportunities to practice certainly did me no favors in improving my capabilities. PEBKAC should probably have been my username. So it was quite apparent to me that Tabnine, and especially Tabnine’s team trained models, would be of great help in getting my efficiency up as an individual contributor. In a few weeks I’ll write an interesting breakdown of some benefits I’ve found in using Tabnine as a dabbler of code, rather than a power user. Hopefully that will be interesting to some of the readers.

But today I’d like to talk about team leads and engineering managers. I won’t do them the grave injustice of assigning them the epithet of “middle management” but that’s kind of where most of these hard working, glue-of-the-orgs find themselves. By and large they don’t code much themselves (or at all as a PM might find) but spend much of their time and energy reviewing PR’s, fixing tech debt, mentoring new hires and working on product roadmaps. None of this work usually has them behind a keyboard for hours writing their own code. So can Tabnine help these valuable folks in their day-to-day, should they care?

Humorously we could perhaps sum up the challenges faced by team leads and managers thusly…

And while we may all laugh and nod knowingly at the preceding tweet, perhaps should ask what are the key motivations for team leaders and managers. According to this paper the top three motivating factors for developers are around improving code quality: finding defects, improving the code, and exploring alternative solutions. Largely, these tasks fall on fellow team members and quite often on the team leads and engineering managers. And while brainstorming code development isn’t something that Tabnine can assist with, reviewing code certainly is. In work by Tufano et. al. titled “Towards Automating Code Review Activities”, they state:

“Our long-term goal is to reduce the cost of code reviewing by (partially) automating this time-consuming process. Indeed, we believe that several code review activities can be automated, such as, catching bugs, improving adherence to the project’s coding style, and refactoring suboptimal design decisions. The final goal is not to replace developers during code reviews but work with them in tandem by automatically solving (or suggesting) code quality issues that developers would manually catch and fix in their final checks. A complete automation, besides likely not being realistic, would also dismiss one of the benefits of code review: the sharing of knowledge among developers.”

And Tabnine believes this is where value can be brought today. By giving the reviewers and mangers the opportunity to automate and improve the mundane aspects of code review and focus instead on the deeper, more complex parts of code improvement. Not only can this improve morale, but there are tangible business reasons to explore this opportunity as well.

Ultimately this points to an increasingly difficult issue facing our industry. The severe dearth of good developers for hire. In an ideal world we would all have access to highly qualified developers at a fair price. AI assisted programming tools might not have the valuable applicability they have today. But finding great devs is like finding hens teeth. Only in fairy tails. Moving forward our industry will have to rely increasingly on tools that enhance the existing skill sets of managers, save valuable time as well as help junior folks become more productive. So consider carefully what tools and methods look like for your organization’s enhancement. I bet that Tabnine will make a good fit!