No question AI tools have accelerated the speed to write code, but who cleans up the mess? David Ramel asked the question in a recent Visual Studio Magazine piece.
He summarized a whitepaper by GitClear pointing out a disturbing trend in maintainability. One indicator is Code churn, measured as lines of code that are reverted or updated in less than two weeks after being written. The GitClear paper goes on to speculate that churn is expected to double in 2024 due to AI.
Is CoPilot bad at writing code, or are developers lazy? It's a little of both. AI assistants don't prioritize code reuse, and in fact offer suggestions to repeat existing code. Developers, especially less experienced ones, are more likely to trust the AI suggested code. GitClear's conclusion is that "Copilot is a powerful tool; however, it should not be 'flying the plane' by itself."
What does this mean for the software development professional? While it is important to acquire proficiency in the art of prompting generative AI, don't lose sight of the fundamentals of good software design. The art and theory of designing scalable, maintainable software is critically important even when using assistants to generate code.
He summarized a whitepaper by GitClear pointing out a disturbing trend in maintainability. One indicator is Code churn, measured as lines of code that are reverted or updated in less than two weeks after being written. The GitClear paper goes on to speculate that churn is expected to double in 2024 due to AI.
Is CoPilot bad at writing code, or are developers lazy? It's a little of both. AI assistants don't prioritize code reuse, and in fact offer suggestions to repeat existing code. Developers, especially less experienced ones, are more likely to trust the AI suggested code. GitClear's conclusion is that "Copilot is a powerful tool; however, it should not be 'flying the plane' by itself."
What does this mean for the software development professional? While it is important to acquire proficiency in the art of prompting generative AI, don't lose sight of the fundamentals of good software design. The art and theory of designing scalable, maintainable software is critically important even when using assistants to generate code.