At KRS we’ve recognised AI as a valuable tool when it’s used in the right hands. Many of our developers are delving into their own explorations of AI, here’s what some have to say about their experiences and ideas.
Casper Lotter
“The future of learning and coding is not just about automation but augmentation too.”
The ChatGPT Conversation: A gateway to accelerated learning
My journey began with ChatGPT, which I found to be a powerful tool in learning new topics. By simply engaging in a dialogue about a new subject, I was able to unravel complex ideas in a manner that felt both natural and engaging. This conversational approach helped solidify my understanding and retain information more effectively. It was as if I had a personal tutor available at my fingertips, ready to answer my queries at any time.
GitHub Copilot: Steering through code with conversational comment
The most useful aspect of GitHub Copilot was its ability to interpret comments and turn them into code. This allowed me to convey my intent directly within the code editor, using plain English comments to outline what I wanted to achieve.
For instance, when faced with a specific coding problem, I would simply write a comment explaining the desired outcome. Copilot would then suggest a first iteration solution. This not only sped up my coding process but also provided me with a deeper understanding of how different coding solutions could be applied to a problem.
Conclusion: A synergistic AI experience
The combination of ChatGPT and GitHub Copilot has been nothing short of transformative for me. ChatGPT has significantly enhanced my ability to learn and understand new topics quickly, while GitHub Copilot has sped up the way I approach and solve coding problems.
In embracing these AI tools, I’ve realized that the future of learning and coding is not just about automation but augmentation too. By leveraging AI to enhance our natural abilities, we can achieve greater insights and innovations.
Shalton Geldenblom
“… It can be a great help when used as an assistant, as was intended.”
Using an AI Assistant can significantly increase productivity by handling mundane tasks such as converting a model from C# to Typescript. It also comes in very handy for generating test data based on your models. Creating JSON files for seeding data becomes a breeze and struggling with text formatting becomes a thing of the past.
In a nutshell
Be careful to scrutinize the output from the AI Assistant, as it does sometimes get things wrong. However, it can be a great help when used as an assistant, as was intended.
Elizabeth Duff
“Will AI replace UX Designers?”
There is a sense of unease amongst many UX designers that AI could make large parts of our work redundant and reduce employment prospects. However, Jakob Nielsen, regarded as the “king of usability” and a hugely influential figure in UX, has posited that AI will serve to create a UX revolution that will not only change the discipline as we know it, but improve it.
Following on from this stance, the World Economic Forum (WEF) presents optimistic findings on AI’s potential impact on the job industry, predicting that it will create 92 million new digital jobs by 2030. In addition, their 2023 Future of Jobs report forecasts that “businesses will prioritise design and UX skills as top tech skills (besides AI and big data) between 2023 and 2027.”
Interestingly, some members of the Nielsen Norman Group say that AI is far from ready to make a major effect on UX design, and that it will take a few years until the impact is felt. However, the onus is on UX designers to remain relevant as the industry evolves, at whatever rate AI is evolving in our industry. I believe that traditional UX craft should continuously be honed but the time is ripe to augment your skillset with AI learnings and explore the tools that emerge with it. The trick is to future-proof your design career without losing the understanding and implementation of UX fundamentals. It’s a balancing act of retaining the humanity of UX and using AI to boost productivity and innovation. It’s crucial that genuine human connection should always be at the core of good design.
A couple of months ago I chatted to a mathematician about his thoughts on AI. He chuckled and said, “of course it’s started a revolution. But at the end of the day, I can’t kick back and enjoy a glass of wine with AI!”
Arno Hayes
“Using AI tools can … be inherently rewarding to the individual. We all enjoy providing good solutions.”
Software development using AI tools can significantly enhance code quality and developer productivity. It essentially brings benefits akin to pair programming.
Some benefits include:
Improved code quality: The speed at which the AI tools can provide suggestions for code improvements, including extensive beneficial refactoring, is an immediate time saver and can enhance code quality to an impressive degree. AI assisted refactoring of 3rd party sample code and code sourced from Google, can often improve understanding and alleviate common issues associated with simply copying and pasting code.
Offloading busy work to the AI: A lot of code prototyping and scaffolding can be done by the AI. Simple solutions can often be suggested outright by the AI. In the case of more complex scenarios, it’s often possible to get at least the barebones foundation of a workable class structure from it, which can then be further refined. Simple examples include: The speedy generation of POCOs and DTOs based on existing code or SQL scripts. Suggestions for Unit tests. Regex. Etc.
Translation: Translation between coding languages, and from code to natural language. Very useful.
Investigations and learning: It’s often more efficient to direct technical questions towards the AI, than to engage in the age-old practice of “Googling”. Often, it’s more efficient than even reading the manual. Especially where widely used tools and libraries are concerned. And this must be kept in mind – The model may not have been extensively trained on the code and documentation of obscure or more rarely used 3rd party tools. You should still read the manual…
The developer must be critical of the suggestions provided by the AI. All answers provided by the AI will appear to be perfectly reasonable and functional at face value. The developer must judiciously review the AI’s suggestions for correctness, relevance, and potential anti-patterns such as duplicated single responsibility methods. The AI will often focus on the immediate problem and ignore potentially relevant solutions that are already in place.
There’s a double-edged sword in that the ability of the AI to provide useful suggestions and information is limited/enhanced by the quality of the prompts written by the developer.
These issues are exacerbated by inexperience both as a developer and in using AI tools as part of software development. On the other hand, both issues can be alleviated through the long-term use of AI tools along with a modicum of discipline and guidance.
AI often generates good quality code along with plentiful relevant background information and explanations. Technology is getting more capable all the time, and there are indications that the AI tools can adapt to work better with individual developers over time. The developer can learn a lot from it. Using AI tools can also be inherently rewarding to the individual. We all enjoy providing good solutions. There should be a positive feedback loop between prompting ability and the quality of end results over time.
Jean-Pierre Damstra
“Don’t go full Rambo, at least not just yet.”
Many times, I’ve needed to be persistent with the AI. The first answer can be partial, or incomplete. There’s an art to prompt generation, so dedicating a few hours to understanding what makes these models understand is likely a good investment. There’s a fine art between coding smart and coding maintainable. Remember, not all future maintainers will have your tools or skills. Find the middle-ground between clever refactoring and readability. Pretend the AI is a pairing partner. Spitball ideas. Reinforce good and bad suggestions. Feel free to abandon poor ideas in favour of alternatives.
It’s very easy to go in guns blazing and refactor everything to make the AI-tool happy. This is not always the best course of action since AI-suggested refactoring might harm readability and maintainability. Don’t go full Rambo, at least not just yet. The AI toolset can sometimes ramble on for a while. If it feels like it’s taking too long to complete generating the response, you’re probably giving it too much to talk about. Small tidbits lead to clear and concise answers, and less opportunity for the model to start making up nonsense. I know a good number of languages, but having AI around to decoding rather strange logic to English is fantastic. I like the “given the selected piece of code, where x = , y = …, what does this code do and return?” approach. In most cases the English is quite helpful and adds at least a different interpretation or perspective. I’ve also found AI is quite good at finding issues in code missed by IntelliSense that might otherwise look well-formed. If you find the AI is making things up, correct it where possible with documentation, links and quotes. The AI will then refine and reinforce its answer with additional context and proof, which may be situations in the documentation you have not considered. That said, try not to push the AI too hard for a solution you believe might be there. If you find the AI struggling, maybe the approach or initial assumption is wrong? Try different angles. Have a conversation.
Danielle Rubbers
“Creating clear communication with AI”
I’ve discovered two AI tools that help produce concise, impactful content that takes business and interpersonal communication to the next level.
Claude AI
Claude AI is a suite of large language models. There is no doubt that it’s worth looking into. As their website puts it, “Claude can process large amounts of information, brainstorm ideas, generate text and code, help you understand subjects, coach you through difficult situations, help simplify your busywork so you can focus on what matters most, and so much more.” Claude AI is known for its robust security features, including resistance to misuse and compliance with data handling standards. Developers would do well to explore its possibilities.
Quillbot
Quillbot’s promise is to “use AI to strengthen writing and boost productivity—without sacrificing authenticity.” Indeed, as an AI-powered writing and research platform, it promises to radically improve your writing process and deliver content with greater impact and sophistication. Just a few of the features include rephrasing text, checking grammar, generating citations, which are helpful features that can bring huge value to business communication.
A practical example
I’ve started using AI as a tool to produce more thoughtful and eloquent peer reviews. The value of our in-depth review process is the opportunity to give rich, meaningful feedback to our colleagues.
At times I find myself struggling to find the right words (perhaps with writing so much code my English has taken strain!). Occasionally I’ll ask Meta, in WhatsApp, to help me word feedback in a manner that is more professional, even if it’s a quick note about someone’s contribution to a task. Telling them they are “awesome” doesn’t hold the same weight as saying, “Your ability to tackle challenging projects and deliver high quality code is a testament to your dedication and willingness to learn – keep it up!” The words and genuine message were percolating in my head, but AI helped me bring them to life and offer better feedback.
KRS is committed to extracting the most value out of AI coding tools and will continue pushing the envelope to the benefit of our clients. This is such a fast-moving space; we’ll keep you up to date with our AI journey.