{"id":705,"date":"2022-12-08T12:37:08","date_gmt":"2022-12-08T12:37:08","guid":{"rendered":"https:\/\/tbekk.com\/devstream\/?p=705"},"modified":"2022-12-20T10:44:53","modified_gmt":"2022-12-20T10:44:53","slug":"the-future-of-software-development-ai","status":"publish","type":"post","link":"https:\/\/tbekk.com\/devstream\/2022\/12\/08\/the-future-of-software-development-ai\/","title":{"rendered":"The future of Software Development &#038; AI."},"content":{"rendered":"\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p class=\"has-medium-gray-color has-text-color\"><em>Heard about ChatGPT ? Want to know its implications in software development industry, in particular code generation ? Here&#8217;s an interesting article. <\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<ul class=\"wp-block-list\"><li><em><strong>Link: <\/strong><a href=\"https:\/\/medium.com\/@johnoneill546\/the-future-of-software-development-ai-6ef97832d962\">the-future-of-software-development-ai<\/a><\/em><\/li><li><em><strong>Publication date: <\/strong>December 8th, 2022<\/em><\/li><li><em><strong>Author: <\/strong><a href=\"https:\/\/medium.com\/@johnoneill546?source=post_page-----6ef97832d962--------------------------------\">John O&#8217;Neill<\/a><\/em><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<p id=\"926a\">So earlier this week, I noticed a new AI Chatbot had been released that seemed to be getting a lot of traction called&nbsp;<a href=\"https:\/\/chat.openai.com\/chat\" rel=\"noreferrer noopener\" target=\"_blank\">ChatGPT<\/a>&nbsp;and decided to take a look myself.<\/p>\n\n\n\n<p id=\"908d\">I\u2019ve spent time before playing with Chatbots and was never overly impressed, they seemed clunky and almost like someone had just spent years creating a bunch of \u201cif-then\u201d statements, but ChatGPT seemed different.<\/p>\n\n\n\n<p id=\"60a9\">OpenAI released the chatbot \u2018ChatGPT\u2019 last week and it\u2019s been creating quite the stir. ChatGPT was trained using a machine learning technique called \u201cReinforcement Learning from Human Feedback\u201d (RLHF), and that has given it the ability to simulate dialogue, remember the context of a question and answer follow-up questions, admit mistakes, challenge incorrect premises.<\/p>\n\n\n\n<p id=\"c43f\">After the usual questions such as if ChatGPT thinks it is sentient, its views on OpenAI\u2019s co-founder Elon Musk, and next weeks lottery results, I thought why not investigate its use as a tool for software development.<\/p>\n\n\n\n<p id=\"f279\">Let\u2019s be honest, as engineers we rely heavily on tools like search engines, or the suggestions prompted by our IDEs. Sure we can expend cognitive energy and write good clean code off the top of our heads, but in this day and age, let\u2019s admit that Google is a critical aspect in our ability to deliver software. In my opinion, that doesn\u2019t make us bad engineers, it\u2019s just another tool to help us develop software. The question is, could AI like ChatGPT help us deliver high quality software faster?<\/p>\n\n\n\n<p id=\"aa1c\">I wasn\u2019t expecting much, but I was wrong. Oh so very wrong.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"d9c3\">It. Is. Incredible.<\/h2>\n\n\n\n<p id=\"39a0\">Let\u2019s start off with some basic requests:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*B1SLF1SpzgmCVJkSkp_9sw.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*P-sm_zlNE6BuUEGcVZQmBw.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"188d\">Okay nice answers, but those are questions that are easily scrapable off the top results on Google. Let\u2019s step it up and make things a bit more challenging.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*i8rTKt8uiCTzDINdlCreHw.png\" alt=\"\"\/><figcaption>Not the cleanest code but nice touch that it even handles 3rd party API integration<\/figcaption><\/figure>\n\n\n\n<p id=\"ad97\">Now that\u2019s impressive. I really like that it even provides us with documentation about what it\u2019s doing.<\/p>\n\n\n\n<p id=\"4734\">What about a real world example, maybe something relatively generic and vague as you\u2019d expect from any product owner?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*tpAVUWsypAaB1jAhe1iJRg.png\" alt=\"\"\/><figcaption>Fairly rudimentary but it understands the premise of Asylum and captures appropriate fields<\/figcaption><\/figure>\n\n\n\n<p id=\"348f\">Not necessarily something I think we could deploy to production and release to the real world, but it\u2019s handled a vague request fairly well.<\/p>\n\n\n\n<p id=\"7df2\">Frontend development has never been my strength; so let\u2019s try some backend Java scenarios:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*V2MfP3DtEYS-tEuQd4AGEg.png\" alt=\"\"\/><figcaption>(No apples were harmed in the making of this application)<\/figcaption><\/figure>\n\n\n\n<p id=\"4cd2\">Nicely done, but I forgot to specify I wanted it written using SpringBoot \u2014 let me update the question:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*EqlcTcsWfCpftERosdM8GQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"4770\">Note how it\u2019s aware of the context of my question.<\/p>\n\n\n\n<p id=\"e14d\">For the purposes of this blog I\u2019m not going to do TDD (Test Driven Development) so excuse me for that \u2014 but let\u2019s add some unit tests:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*x7bhFvMsRrsQfJmwoRRRlw.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"4f05\">Very nice, it\u2019s a simple enough unit test but certainly something I can build on later.<\/p>\n\n\n\n<p id=\"4cad\">Let\u2019s step this up even further, how about some functional tests?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*1aDq--0PtxyhHR0lllYhIQ.png\" alt=\"\"\/><figcaption>Far too easy<\/figcaption><\/figure>\n\n\n\n<p id=\"8f53\"><strong>Ridiculous<\/strong>.<\/p>\n\n\n\n<p id=\"5982\">Granted, the examples above weren\u2019t the most complex, and the code returned wasn\u2019t perfect, but credit where credit is due; this is a game changer and, in my opinion, really exemplifies the potential that AI has.<\/p>\n\n\n\n<p id=\"5d34\">I have no fear of it replacing software engineers any time soon BUT it is an excellent platform to start with and I can see this currently being massively beneficial for rapid prototyping or to help developers learn new technologies.<\/p>\n\n\n\n<p id=\"e63d\">I\u2019d encourage everyone to try it themselves before the free testing phase ends:&nbsp;<a href=\"https:\/\/chat.openai.com\/chat\" rel=\"noreferrer noopener\" target=\"_blank\">https:\/\/chat.openai.com\/chat<\/a><\/p>\n\n\n\n<p id=\"fb09\">Finally, let\u2019s ask ChatGPT what it thinks:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*KL1XM3ldnFQL7FQjc7Jdsg.png\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Heard about ChatGPT ? Want to know its implications in software development industry, in particular code generation ? Here&#8217;s an interesting article. Link: the-future-of-software-development-ai Publication date: December 8th, 2022 Author:&#8230; <a class=\"read-more-link\" href=\"https:\/\/tbekk.com\/devstream\/2022\/12\/08\/the-future-of-software-development-ai\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51,66,10],"tags":[162,165,166,163],"class_list":["post-705","post","type-post","status-publish","format-standard","hentry","category-article","category-ai","category-development","tag-chatgpt","tag-large-language-models","tag-llms","tag-text-ai"],"_links":{"self":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/comments?post=705"}],"version-history":[{"count":1,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/705\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/705\/revisions\/706"}],"wp:attachment":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/media?parent=705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/categories?post=705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/tags?post=705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}