Yes, I know for the last hundred plus posts it has been about getting better. But over the last four months I got into playing around with AI. Well, I hate to call it AI, GPT is a better name (Generative Pre-trained Transformer.) The speed of announcements and actual tools are coming so fast it boggles the mind.
First if you do not know the history of Agile, nor read the Extreme Programming Explained book, please google that, and get some back history. One key concept in EPE is the notion of pair programming, where two developers sit together to work on a single piece of code. There is a lot of good to this, one developer can catch the other typos, opine on unit tests, and in many cases two brains are better than one. This part of Agile is what I am going to say should change based on the tools I have played with. Note I have no investment in any of these tools and will focus on the free ones for this writing.
So, the outcome of pair programming is better code quality, faster problem solving, knowledge sharing (no single point of failure) and reduced on boarding time. A developer can be productive from day one via pair programming.
Now pair programming does have some negatives. Finding two developers that work well together is not easy, even finding a programmer that ‘wants a partner’ is hard enough to find. Add scheduling, developers working remote (Covid) and some companies having global presence. There are even more reasons why pair programming did not take off,
Now the curve ball, along comes Chat-GPT. And even a non-programmer can send a simple request and it will spill out code. No developer needed! Now, of course, the problem is making sure that code works, does what it says it does, has all the non-functional requirements etc. With us geeks (programmers) we have got our hands on some new tools. Codeium, Code Whisperer, Git Hub CoPilot etc. show up. And presto we now have tools to help us code. Of course, they suffer from some bad reasoning that GPT tools have.
Some of the tools (Codeium) have a ‘chat function’ where you can ask it to write code. And let’s say now you have the business user sitting with you and giving you, some requirements (user stories) and you translate it to the correct prompts. The tool writes some code, as a developer you can enrich the code. The next step is to ask the tool to write test cases, and presto they are done.
Of course, a developer can choose to write code and allow the tools to give suggestions to speed up the coding and correct mistakes. Again, no need for the second developer to do that. Let the GPT do these things for you. The tool is available all the time, does not have to worry about sick days, regions etc. These tools are also faster than the second programmer and can make the changes in real time where the second programmer will have to say, ‘correct your mistake.’ One last key feature is it can enforce standards (naming, design etc.)
All of this at much less cost than the second programmer. For the same costs (about) the second programmer can be working on something else with his/her own coding tools.
Now Agile may change, not just pair programming, but think of moving to Kanban where now the product owner (or a delegate) sits with the developer and just talks through ideas while the coder developers in real time. The possibility of productivity gain is unreal.
There are some downsides as these tools do not have a record of accomplishment yet, setting it up for your code only, or sandboxing is coming to prevent your ideas and code being ingested in a public GPT must be perfected. And as my joke said, sometimes the idea can be completely wrong (hence the need for the first programmer.)
I see the positives and wonder how soon it may become reality. There is this push of AI dangers, the possible loss of jobs etc. but I prefer to figure out how to use it to get better.
This opinion is mine, and mine only, my current or former employers have nothing to do with it. I do not write for any financial gain, I do not take advertising and any product company listed was not done for payment. But if you do like what I write you can donate to the charity I support (with my wife who passed away in 2017) Morgan Stanley’s Children’s Hospital or donate to your favorite charity. I pay to host my site out of my own pocket, my intention is to keep it free. I do read all feedback, I mostly wont post any of them
This Blog is a labor of love, and was originally going to be a book. With the advent of being able to publish yourself on the web I chose this path. I will write many of these and not worry too much about grammar or spelling (I will try to come back later and fix it) but focus on content. I apologize in advance for my ADD as often topics may flip. I hope one day to turn this into a book and or a podcast, but for now it will remain a blog.