Embracing the Future: Integrating ChatGPT in the Evolution of Software Development
TL;DR: In my 15-year career as a self-taught developer, I've learned the value of balancing quick fixes with robust solutions. ChatGPT, like other tools I've used (StackOverflow, Google), is a powerful aid but not a replacement for developer skills. In a recent personal project, I leveraged ChatGPT to rapidly build a complex web application, proving its efficacy as a tool for efficiency and learning. However, the essence of good development still lies in understanding and decision-making, not just in the tools used. As the industry evolves, embracing tools like ChatGPT can enhance our work without threatening our roles.
Deadlines and Shortcuts: My Journey as a Developer
During my career over the past 15 or so years, I’ve had some tight deadlines and had to cut a few corners; some might say I cut corners for a career. I developed a team that would be tasked with developing the band-aides, the quick-fixes, and the solutions that would have still been around 15 years later if our company didn’t go through an acquisition. In the beginning, we for sure had some pretty rough tools we put into production, and I am surprised they worked as well as they did. However, over the next decade and a half, we learned what corners we could carefully cut to not only reduce risk but to meet deadlines.
As a self-taught developer, I will be the first to admit that my skills are not as sharp as those that have gone to school and can pick up the 1,376 page book like: “The C++ Programming Language, 4th Edition 4th Edition“ and develop the next generation video game. I have had to learn mainly by doing and taking other people’s working code and making it not work so well. In the beginning it was mainly copy/pasting from StackOverflow (purists I know will maybe cringe), but over time I figured out the syntaxes myself and didn’t need to go to Stack as often and could figure out my own ways around problems.
Thankfully, I figured that out early enough that once my job relied on my skills, they were at least decent enough that I didn’t blow anything up (too badly). However, there are still things to this day that I know I didn’t do enough of. Proper testing, proper code reviews, documentation, etc.
The corner we typically would sacrifice is the documentation side of things. We had a project where there was a gap in one of our vendor-based systems and we were brought in to see if we could put together a stop-gap until the vendor could develop a long-term solution. They gave me a walkthrough of the problem and I started working that day on developing a solution. The project manager had set up an additional call, three weeks later, to start introductions with the vendor. By the time of the call I already had a prototype being tested by the business. The vendor said they would begin requirements gathering and scope analysis of the work starting next month. By the time we got to the month, I had already solidified the solution and began tightening up the codebase and implementing additional features originally not requested. In the end, the decision was made to no longer move forward with the vendor, as I had already solved the problem and we did not need to spend any more time or money to deliver a solution. That is not to say their developers couldn’t come up with the same or a better solution, it’s just that they didn’t even have the chance because I skipped straight to coding instead of writing out a 30+ page requirements document (which is what they ended up doing).
Embracing ChatGPT in Web Development
That long-winded introduction leads me to what I meant this whole post to be about…ChatGPT. I had been tinkering with it for the past year or so, but not really using it too much for coding, just mainly as a novelty and something to see how it would handle specific coding situations. It was late November when I had an idea for a Christmas present that I wanted to give my dad. He is an avid writer, mainly family history, historical topics that he finds interesting, and a lot of political essays and opinion writing. They were all posted on Facebook and I wanted to give some of his writings a little more permanent and dedicated place. So I wanted to build a site that I could be able to keep all the ones I really enjoyed in one place.
Since it was late November, I only had a little less than a month to not only code everything and get it deployed but then go through the past 15 years of posts (and I mean a lot of posts) to find each one that I wanted. I decided to put ChatGPT to the test, not only to see how well it would handle developing on a tight deadline, but also to see if it really was going to eventually put me out of a job.
I got to work, with setting up a prompt that I would use to get the best response the first time (well okay maybe on the 5th time). From there I began using it as a way to not only write the initial boilerplate and styling code, but then to really troubleshoot some defects and handle more complex logic needs.
领英推荐
Here was my main components that I was working with:
Within the first week I had a working blog up and running, and within two weeks I had the main style and design completed. I had enough time that I was able to add in some additional design features such as a post editor, stats page, and a custom timeline navigation component. After almost a month of development and spending over 10 hours endlessly scrolling through my dad’s Facebook and copying out his post text and formatting them how I wanted, I still had time left. I wanted to see if I could try something that I haven’t tried before which was sentiment analysis and Natural Language Processing to really see what kind of insights I could pull from his writings. Mainly just from curiosity, but also because statistics and data is one of his passions as well, so I knew he would enjoy it.
I was able to set up the various Python libraries I needed and was able to get quite a few analyses done in the week I had left. There wasn’t a whole lot outside of sentiment and an emotional analysis that I was able to really get that was useful. But just the fact I was able to not only develop a fully functioning website with authentication, a database, etc. but also start to learn how to do ML and NLP analyses in less than a month was amazing to me.
The Double-Edged Sword
The question of whether ChatGPT and similar technologies will render developers obsolete has surfaced repeatedly. The answer, in short, is no. ChatGPT is a powerful tool, but it's just that—a tool in the developer’s toolbox, not a job terminator.
For years, there have been predictions about the decline of the developer profession, citing advancements in Robotic Processing Automation (RPA), WYSIWYG editors, and AI. However, we are still far from a point where jobs like mine and my team's become obsolete. Tools like Google, StackOverflow, and now ChatGPT can be double-edged swords. Over reliance on them might stagnate your learning curve, but using them wisely can catalyze growth. I prefer the latter, employing ChatGPT not only for quick solutions but also for understanding underlying concepts. Its strength lies in aiding learning and problem-solving, a perspective I believe industry professionals should adopt.
However, some might use ChatGPT as a crutch, relying on it for all their problems without learning from it. These individuals are often easy to spot, similar to those who depend solely on StackOverflow or Google. Their inability to explain their work or the reasoning behind their decisions becomes apparent over time.
The key point is that end-clients typically don't concern themselves with whether a developer wrote every line of code independently or used resources like Google. What matters more is the efficiency and effectiveness of the final product. If using a tool like ChatGPT can expedite the development process without compromising quality, it should be embraced, not feared.
As for the future, when I'm in a position to hire, I won't view ChatGPT with apprehension. Instead, I'll focus on understanding a candidate's decision-making process. I’ll be interested in why they chose the solutions provided by ChatGPT, whether they modified those solutions, and how they ensured their work was maintainable and testable. It's about the thought process and understanding behind the code, not just the code itself.
If you would like to see the site you can go to: https://thoughtsofmyfather.com
Funded Startups: Increase cashflow & EBITDA by more than 20% within 60 days!
9 个月Fantastic journey and insights! ChatGPT as a tool, not a replacement, resonates well. Your adept balance of efficiency and learning showcases the true essence of a developer's prowess.
Head of Personal Investor Tax and Cost Basis
9 个月Great stuff, Ryan!
Senior Managing Director
9 个月Ryan Buck Very Informative. Thank you for sharing.