{"id":46109,"date":"2023-07-21T11:41:36","date_gmt":"2023-07-21T09:41:36","guid":{"rendered":"https:\/\/qualityminds.com\/?p=46109"},"modified":"2024-09-30T15:46:48","modified_gmt":"2024-09-30T13:46:48","slug":"thoughts-on-using-chatgpt-as-a-software-developer","status":"publish","type":"post","link":"https:\/\/qualityminds.com\/en\/thoughts-on-using-chatgpt-as-a-software-developer\/","title":{"rendered":"Thoughts on using ChatGPT as a software developer"},"content":{"rendered":"\n<section id=\"block-66759838507a4\"  class=\"hero-section template11\">\n\t<div class=\"bg\">\n\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2560\" height=\"1079\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-scaled.jpg\" class=\"attachment-full size-full\" alt=\"\" loading=\"eager\" srcset=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-scaled.jpg 2560w, https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-300x126.jpg 300w, https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-1024x431.jpg 1024w, https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-768x324.jpg 768w, https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-1536x647.jpg 1536w, https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/landing-hero-2048x863.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/>\t\t\t<\/div>\n\t<div class=\"container\">\n\t\t<div class=\"hero-section__wrapper flex flex-wrap justify-between\">\n\t\t\t<div class=\"hero-section__description\">\n\t\t\t\t<div class=\"text-element-wrapper\">\n\t\t\t\t\t<div class=\"text-element\">\n\n<h1 class=\"wp-block-heading has-text-align-left\"><strong>Thoughts on using ChatGPT as a software developer<\/strong><\/h1>\n\n<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"hero-section__img\">\n\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"796\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px.jpg\" class=\"attachment-full size-full\" alt=\"\" loading=\"eager\" srcset=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px.jpg 800w, https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px-300x300.jpg 300w, https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px-150x150.jpg 150w, https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px-768x764.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"social\">\n\t\t<div class=\"container\">\n\t\t\t<div class=\"social-wrapper flex items-center\">\n\t\t\t\tFollow us\t\t\t\t\t<ul class=\"no-list no-margin social-list\">\n\t\t\t\t\t<li>\n\t\t\t\t<a href=\"https:\/\/www.linkedin.com\/company\/qualityminds-gmbh\/\" target=\"_blank\" aria-label=\"share on social media\" rel=\"noopener\">\n\t\t\t\t\t<img decoding=\"async\" width=\"29\" height=\"29\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/06\/linkedin.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t<\/a>\n\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t<a href=\"https:\/\/de-de.facebook.com\/QualityMindsGmbH\/\" target=\"_blank\" aria-label=\"share on social media\" rel=\"noopener\">\n\t\t\t\t\t<img decoding=\"async\" width=\"29\" height=\"29\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/06\/facebook.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t<\/a>\n\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t<a href=\"https:\/\/www.xing.com\/pages\/qualitymindsgmbh\" target=\"_blank\" aria-label=\"share on social media\" rel=\"noopener\">\n\t\t\t\t\t<img decoding=\"async\" width=\"29\" height=\"29\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/09\/xing_icon.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t<\/a>\n\t\t\t<\/li>\n\t\t\t<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n\n\n\t<section id=\"block-66759838507dc\"  class=\"single-post-section\">\n\t\t<div class=\"container\">\n\t\t\t<div class=\"content\">\n\t\t\t\t<div class=\"single-post-main\">\n\t\t\t\t\t<div class=\"text-element\">\n\n<p class=\"has-black-color has-text-color wp-block-paragraph\">As a frontend developer, I am already getting used to new frameworks popping out every second week and hype trains departing in each and every direction. Seldom a \u201cNEW BIG THING\u201d remains either new or big after some time. Sticking to foundations is usually enough to remain sane and keep the skills up to date.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, what happens if the whole concept of programming becomes obsolete by some newer and better paradigm? That\u2019s the question virtually anyone in the industry has started asking since AI tools have gained momentum. With ChatGPT, it became too difficult to ignore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ve decided to test the tool and to see if opening a carpenter shop is a more future-proof way to go. After several months of evaluation, we\u2019re ready to draw some conclusions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">As a consulting house, QualityMinds also <strong><a href=\"https:\/\/qualityminds.com\/services\/software-development\/\">develop tailored software<\/a><\/strong> for our clients. So why not use the ChatGPT to generate some code?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s imagine a chat feature. Users can send instant messages to each other. There\u2019s an input field, a send button and a container holding the messages next to the user avatars or first letters of their initials. All of this is run by an Angular application with NgRx store in the background. Off we go! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Asking ChatGTP to render a chat component immediately gets me an Angular boilerplate for the new component, as `ng g c X` would do. The component for the message comes bundled with @Input()s &#8211; one for the message text, sender name, email and timestamp. All the information I\u2019ve asked for using the prompt. Additional query generates a Jest spec file with the generic tests for the visual component. Some more prompts and we have an avatar with initials and chat messages with a speech bubble triangle &#8211; exactly as our UI Guru has imagined it to be. A look at the timer &#8211; 7 minutes 42 seconds time of work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">So, User Story done and I can get off for some mojitos? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No, not yet. First, <span>some of the coding<\/span> conventions are not applied. No wonder, as ChatGPT doesn\u2019t know our code base and previous team agreement. I was too lazy to tell ChatGPT about all of that. Next, the components need to be put into all of the barrel files. Add some dependencies over Angular DI (translatePipe, custom project stuff etc.) and the TestBed setup of the component doesn\u2019t fit anymore and needs to be fixed. Some tweaking here and there, connecting to the NgRx with all the selectors and effects, you know\u2026 Let\u2019s see if I could complete this story on time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now let\u2019s talk about some advanced topics we\u2019re too busy to read up in the documentation. What\u2019s the difference, say, between a switchMap and a simple map operators in RxJS anyway? ChatGPT, please explain how they are similar and what are the differences. <\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">And here is where ChatGPT does wonders. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not only does the tool explain in detail the differences, it also tells how to achieve similar functionality using each of the operators &#8211; and also what are the main areas of application for each of those. All of that using simple language and code examples that go far beyond your regular tutorial and the official documentation alike.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Speaking of which, it brings me another idea. Why bother googling things online if I can just ask ChatGPT? Indeed, for most of the time the results of the AI are more accurate and quick than traditional internet search. Instead of spending time trying to google an error and find its solution, asking ChatGPT gets to the intended result in close to no time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What about POCs or trying to help your fellow colleagues using the stack you\u2019ve never worked with before? Easy, ChatGPT takes care of syntax peculiarities as long as I can explain what my intentions are on a conceptual level. The more exact I define the problem, the better results I get. The daydream of getting multilingual without actually learning all other programming languages gets suddenly disrupted by the \u201cThere was an error generating your request\u201d messages in the middle of the code block I was waiting for.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">Now, let&#8217;s talk about the drawbacks.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">First of all, ChatGPT doesn\u2019t know all the context. Either you spend tons of prompts just setting the stage &#8211; without no guarantee whatsoever &#8211; or you get generic answers. The code snippets may be outdated, violate your coding guidelines, conflict with other parts of application or be simply wrong. Most usage of the generated code is achieved when applying \u201cthe power of the AI\u201d to very limited, explicitly defined generic problems. <b>It becomes a Junior Dev in your team that you get to micromanage.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Being very specific about the architecture can lead to the point of diminishing returns. That is, when explaining the tool what needs to be done under which constrains may cost more time than coding it yourself. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mileage may vary depending on the programming language of your project. For TypeScript it produces fair results. For Unity, not as much.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">Another thing: sometimes ChatGPT just lies to you. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">It is notorious for inability to accept itself being wrong &#8211; even after being told so. <b>ChatGPT is simply not capable of accepting the possibility of not being correct.<\/b> We\u2019re not sure if that\u2019s a required feature in order to be a good chat partner or simply a side-effect of being trained on real, non-synthetic data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Last but not least, some of us have started questions whether some additional luxury comfort during day-to-day work is worth a trade-off of GPU clusters sweating to generate some basic stuff and what are the climate implications of doing so.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To sum up, we came to a satisfactory conclusion:<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">We, the developers, are most likely to stick around for some more time. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s a whole lot of human responsibility when working with AI. A human being needs to take care of quality aspects. A human being maintains a big picture. A human being is capable of framing complex client problems in concrete steps &#8211; and of evaluating the most fitting solution out of the whole range of possibilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Along the way we\u2019ve discovered qualitative difference in answers depending on formulations of the questions. Which means that prompt engineering is the next foundation skill that is worth investing into &#8211; unless you really don\u2019t want or need to do anything with the chat based AI. The reward would be increased quality, speed and ultimately productivity when using this kind of AI for software development.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color\">Never forget that software development is so much more than coding. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You as an individual have to live with the responsibility of thinking in abstractions, reasoning and being ready to admit not knowing anything or simply being wrong. It\u2019s a social activity that ChatGPT is not capable of automating &#8211; at least, not yet.<\/p>\n\n<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"single-post-aside\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-author-wr\">\n\t\t\t\t\t\t\t<div class=\"author-img\">\n\t\t\t\t\t\t\t\t<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/37cf7aa16c00c5e1c4111a28c759e0fe87236a59a41992c451bcc4cac8e6461b?s=96&#038;d=mm&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/37cf7aa16c00c5e1c4111a28c759e0fe87236a59a41992c451bcc4cac8e6461b?s=192&#038;d=mm&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"author-info text-element\">\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\tGeschrieben von:\t\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\t\t<p class=\"author-name\">\n\t\t\t\t\t\t\t\t\t\tbor\t\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"aside-cta\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"icon-wr\">\n\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"76\" height=\"76\" src=\"https:\/\/qualityminds.com\/wp-content\/uploads\/2024\/05\/Capa_1.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"text-element\">\n\t\t\t\t\t\t\t\t\t<p>Would you like to discuss your personal concerns regarding digital transformation?<\/p>\n<p>Whether it\u2019s software engineering, AI, or corporate learning \u2013 we are here for you!<\/p>\n<p>Contact us for a free and non-binding consultation at<\/p>\n<p><a href=\"mailto:hello@qualityminds.de\">hello@qualityminds.de<\/a><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"similar-posts\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"heading\">\n\t\t\t\t\t\t\t\t\tLatest Posts\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"no-list no-margin\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/qualityminds.com\/en\/dns-issues\/\">Scenario 9: DNS Issues \u2013 When Your Application Becomes Unreachable\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/qualityminds.com\/en\/angular-security-part-4-nonces-in-inline-styles\/\">Angular Security Part 4 &#8211; When the cloud calls and styles rebel &#8211; Nonce saves your Angular app!\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/qualityminds.com\/en\/data-corruption\/\">Data Corruption \u2013 When Your Data Becomes Unreliable\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"social-sharing\">\n\t\t\t\t\t<p class=\"no-margin\">Split\t\t\t\t\t<\/p>\n\t\t\t\t\t\n<ul class=\"no-list no-margin\">\n\t<li>\n\t\t<a href=\"https:\/\/www.linkedin.com\/feed\/?shareActive=true&#038;text=https:\/\/qualityminds.com\/en\/data-corruption\/\" class=\"linkedin\" target=\"_blank\" aria-label=\"Share to linkedin\"><\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/qualityminds.com\/en\/data-corruption\/\" class=\"facebook\" target=\"_blank\" aria-label=\"Share to facebook\"><\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"https:\/\/www.xing.com\/spi\/shares\/new?url=https:\/\/qualityminds.com\/en\/data-corruption\/\" class=\"xing\" target=\"_blank\" aria-label=\"Share to xing\"><\/a>\n\t<\/li>\n<\/ul>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":10,"featured_media":46106,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[36,469,474],"tags":[518,522,520],"class_list":["post-46109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-ai","category-software-dev","tag-blog-2","tag-ki-2","tag-software-engineering-2"],"acf":[],"jetpack_featured_media_url":"https:\/\/qualityminds.com\/wp-content\/uploads\/2023\/07\/Headerbild-Blogbeitrag-ChatGPT-800x796px.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/posts\/46109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/comments?post=46109"}],"version-history":[{"count":8,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/posts\/46109\/revisions"}],"predecessor-version":[{"id":59736,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/posts\/46109\/revisions\/59736"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/media\/46106"}],"wp:attachment":[{"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/media?parent=46109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/categories?post=46109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qualityminds.com\/en\/wp-json\/wp\/v2\/tags?post=46109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}