🧠 via think.py - using default questions Thinking about https://addyo.substack.com/p/the-70-problem-hard-truths-about
- Two main approaches: "Bootstrappers" (zero to MVP) and "Iterators" (daily development)
- AI tools dramatically accelerate initial development but come with hidden costs
- Senior developers utilize AI more effectively than juniors due to experience
- The "70% problem" - getting to 70% completion is quick but last 30% is extremely challenging
- Generated code often lacks proper error handling, testing, and maintainability
- Junior developers tend to accept AI output without necessary refinement
- Knowledge paradox where AI helps experienced developers more than beginners
- Risk of creating "house of cards code" that fails under real-world conditions
- Rise of "agentic" software engineering with more autonomous AI systems
- Shift toward English as a primary programming interface
- Increased importance of system design and architectural thinking
- Need for balance between AI acceleration and software craftsmanship
- Risk of losing focus on software polish and user experience
- Potential renaissance of personal software development
- Growing gap between demo-quality and production-ready software
- Evolution of developer skills toward quality assurance and validation
- AI tools cannot fully replace human judgment in software design
- Generated code may miss critical security and performance considerations
- Overreliance on AI can impede learning fundamental programming concepts
- Need for constant supervision and correction of AI-generated code
- Risk of creating unmaintainable systems without proper oversight
- Challenge of maintaining quality standards with accelerated development
- How can organizations balance AI acceleration with code quality?
- What is the right mix of AI assistance and human expertise?
- How should developer training evolve in an AI-assisted world?
- How can teams effectively validate AI-generated code?
- What processes need to be in place to maintain software quality?
- How can organizations prevent overreliance on AI tools?
- Growing adoption of AI coding assistants
- Shift in development practices and tooling
- Changes in productivity expectations
- Evolution of software development roles
- Increasing pressure for rapid development
- Growing complexity of software systems
- Rising importance of user experience
- Competition between AI-assisted and traditional development
- Software architecture and design patterns
- Code quality and testing methodologies
- Developer productivity tools
- Software maintenance practices
- Development team composition
- Project management methodologies
- Product quality metrics
- Time-to-market considerations
- The article discusses the role of AI-assisted coding tools in software development and highlights both their potential and limitations.
- It identifies two primary user groups leveraging AI coding tools: "Bootstrappers" for prototyping and "Iterators" for daily development.
- The author introduces the "70% problem," where AI tools perform well up to a point but leave users struggling with the remaining 30% that require deeper expertise.
- The article emphasizes the importance of human expertise in maintaining code quality and robustness.
- AI tools often suggest solutions that lack maintainability or fail under real-world usage, especially when used by less experienced developers.
- The "knowledge paradox" is identified, where experienced developers benefit most from AI tools, while beginners face challenges.
- AI tools can impede learning by automating tasks without teaching the underlying principles, creating dependency.
- Experienced developers can use AI tools to accelerate workflows and explore new ideas, but they must maintain rigorous oversight.
- Junior developers risk creating fragile, flawed systems if they rely too heavily on AI without understanding the generated code.
- AI tools are reshaping how teams prototype and iterate, but they are not yet a replacement for solid engineering practices.
- The rise of AI-assisted coding may democratize initial development stages but won't eliminate the need for engineering expertise in production-quality software.
- AI tools can quickly deliver 70% of a solution but struggle with the final 30%, where human judgment and expertise are essential.
- AI benefits experienced developers more than beginners, contrary to the ideal of democratizing coding for all.
- AI tools will continue to improve and close the gap in their ability to produce production-ready software.
- Developers will maintain high standards for reviewing and refining AI-generated code.
- Over-reliance on AI tools may erode foundational coding skills and architectural understanding.
- Non-engineers using AI may produce software that is superficially functional but riddled with hidden issues.
- How can junior developers effectively use AI tools without becoming overly dependent on them?
- What safeguards can be implemented to ensure AI-generated code meets production-quality standards?
- How might the "70% problem" evolve as AI technology advances?
- What are the potential risks of integrating AI tools into critical software systems?
- AI tools like Copilot and Bolt automate coding tasks, from generating prototypes to assisting with refactoring and testing.
- The promise of AI in coding lies in reducing mundane tasks, speeding up development, and enabling rapid experimentation.
- Developers remain essential for ensuring code quality, maintainability, and robustness—tasks that AI tools cannot yet fully handle.
- AI in Education: How AI tools might complement or hinder programming education.
- Software Quality Assurance: The role of testing and debugging in an AI-assisted development environment.
- Human-AI Collaboration: Exploring how developers and AI tools can best collaborate to produce high-quality software.
- Future of Work: The evolving role of developers as AI tools become more sophisticated.
- No-Code Has No Future In a World of AI
-
This article argues that no-code platforms, while initially offering speed and accessibility in software development, lack a long-term future due to advancements in developer tools and, most significantly, AI-driven code generation. The author contends that no-code platforms are inherently closed systems, re-creating functionalities already efficiently handled by developer tools. The rapid evolution of developer tools and the increasing sophistication of AI code assistants like GitHub Copilot are eroding the speed and accessibility advantages of no-code, ultimately positioning AI as the technology that will replace it entirely. The article highlights the error-tolerant nature of code and the potential for AI to generate increasingly complex code blocks as key factors in this displacement.
- Sourcegraph recently announced Cody, an in-editor coding assistant that can generate code, write shell commands, explain concepts, and contextualize it all with knowledge of your codebase: The advances we’ll see in software development due to AI over the next decade will dwarf anything that no-code tools will be able to match. No-code platforms, being built on top of completely proprietary closed systems, will be much less able to take advantage of AI and so their speed advantage will disappear. No-code's accessibility advantage will also not last. The next generation of AI-driven IDEs will massively expand the set of people who can write code. Code-based software development will soon have all the speed and accessibility that no-code offers today with none of the downsides, making no-code obsolete.
- Dev tools startups, open-source frameworks, and methodologies exist to speed up and simplify every part of the software development process. This means that the speed of programming and the accessibility of programming to a wider audience has been increasing steadily, chipping away at the comparative advantage of no-code. Why AI will displace no-code While the rapid pace of dev tools innovation erodes no-code's value propositions gradually, AI-driven software development will likely displace no-code completely. GitHub Copilot was released in 2022 and made an immediate impact. The reaction among software developers has been mixed, with many folks saying that the reliability and quality aren't yet trustworthy.
-
- Is AI enough to increase your productivity?
-
This article discusses the impact of generative AI code generation tools on programmer productivity. While these tools (like GitHub Copilot and ChatGPT) offer significant advancements, providing near-instant code and acting as advanced copy-paste mechanisms, they don't replace the need for skilled programmers. The tools excel at scaffolding and common tasks (database connections, API definitions, type definitions), speeding up development by handling repetitive code, but understanding the generated code remains crucial. The authors emphasize that AI is most effective when applied strategically within a specific team workflow, solving the "blank page" problem and accelerating progress, but not eliminating the fundamental challenges of software development, such as defining requirements. Ultimately, AI tools augment, but don't replace, the core skills of a programmer.
- There’s a reason why any organization talking about how productive it is talks about development velocity, developer experience, and platform engineering. These are all big umbrella efforts that improve the productivity of an organization as a whole, not just the productivity of one developer. A software development team produces software together, so their productivity should be measured together. There are a few things that effective organizations are all working on. First of all, they are looking to automate any manual processes that they can.
- A software development team produces software together, so their productivity should be measured together. There are a few things that effective organizations are all working on. First of all, they are looking to automate any manual processes that they can. They automate their software delivery pipeline with an effective CI/CD process that takes committed code from build to deploy with minimal effort. They automate as much of their testing as they can.
-
- Three types of AI-assisted programmers
-
This Stack Overflow blog post explores the role of AI in programming, dispelling the initial hype that AI would replace programmers. While AI tools like ChatGPT can generate code snippets, their reliability is limited. Studies show that AI-generated code is only about 90% valid, passes a low percentage of unit tests, and exhibits security vulnerabilities in roughly 40% of cases. The effectiveness of AI code generation is highly dependent on prompt quality; even minor wording changes significantly impact the results. The article concludes by questioning the value of AI for non-programmers, highlighting the debate surrounding AI's role in defining what constitutes a "programmer." Ultimately, the author suggests that AI's usefulness in programming depends heavily on user experience and how it's implemented, not just its mere presence.
- Code is a computer-oriented language. It has a small, unambiguous vocabulary and unbreakable syntax rules. Patterns and repetition are its bread and butter. It’s predictable to a fault, which is why computers (and some humans, like myself) are so compatible with it. If anyone could write good code, it would be a computer.
- Many people’s first taste of programming came this year in the form of a ChatGPT conversation. It’s a seductive experience: you can ask it to write an application in any major programming language and it will spit out code right up to the token limit—more than enough space for the typical “tutorial-sized” app. From there, you can ask for tweaks and bugfixes until you’re satisfied with the output. And when you paste it into an IDE and it actually works, it feels like you’ve cracked the industry wide open. The reason for this rosy first impression is that the problems are hidden under the surface.
-
- AI is a fad and programming is dead
-
This article discusses the prevalent, yet opposing, viewpoints on the future of programming in the age of AI. One view claims programming is becoming obsolete, while the other dismisses AI as a mere novelty. The author argues that the reality is more nuanced. AI, particularly LLMs, will likely increase programmer efficiency rather than replace them entirely. While AI tools require precise instructions, this acts as a new programming language, not a replacement for programmers. The author suggests AI's advancement follows an S-curve pattern, currently nearing a plateau before another leap in development. Significant improvements are still needed to overcome the current limitations of AI-generated content. The author believes a major breakthrough is needed before AI can fully automate software development, a development that would bring about much larger societal issues.
- A programmer, software engineer, developer, or whatever title you choose, is a translator for a language that deals in logic. Your goal as a programmer is to take a concept, an idea, or a workflow in a language that you can understand, and translate that to a language that a computer can understand. This programming language is designed to prevent ambiguous statements and deal in pure logic. Let’s take the sentence “When the button is pressed, change the background to red”. If you’re a person in a meeting with other people from your team, you all might intuitively know exactly what is meant by that.
- If you ask a lot of people what their definition of a programmer is, you’ll likely get a lot of responses that boil down to “someone who writes code”. And while this isn’t incorrect, it’s also missing a huge part. A programmer, software engineer, developer, or whatever title you choose, is a translator for a language that deals in logic. Your goal as a programmer is to take a concept, an idea, or a workflow in a language that you can understand, and translate that to a language that a computer can understand. This programming language is designed to prevent ambiguous statements and deal in pure logic.
-
- An explosion in software engineers using AI coding tools?
-
A GitHub survey of 500 US-based software developers at large companies reveals that 92% use AI coding tools at work. The tools primarily aid in learning new coding languages (57%), boosting productivity (53%), and focusing on creative tasks rather than repetitive ones (51%). The most common uses include learning new concepts and improving code quality via tools like ChatGPT and Copilot. The survey also details respondent demographics (predominantly male, aged 30-49, working full-time as individual contributors across various specializations and industries).
- In this article, we cover one out of four topics from today’s subscriber-only The Scoop issue . To get full issues twice a week, subscribe here. GitHub just published a survey about developer productivity and AI coding tools. The company hired an external research agency to survey 500 US-based software developers who work at large, 1,000+ person organizations. I reached out to GitHub to get more details on how the survey was conducted.
- In every issue, I cover topics related to Big Tech and high-growth startups through the lens of engineering managers and senior engineers. In this article, we cover one out of four topics from today’s subscriber-only The Scoop issue . To get full issues twice a week, subscribe here. GitHub just published a survey about developer productivity and AI coding tools. The company hired an external research agency to survey 500 US-based software developers who work at large, 1,000+ person organizations.
-
- 5 Ways AI Pair Programmers Impact Developer Productivity
-
This article examines five studies on the impact of AI pair programmers on developer productivity. The studies used various AI tools (including GitHub Copilot) and methodologies to assess how AI affects coding speed and efficiency. One study, for example, compared programmers with and without GitHub Copilot completing the same JavaScript task, measuring the time taken for completion. While the article outlines the research questions and methods of each study, the specific conclusions of each are not detailed in the provided text. The overall goal is to quantify the productivity gains from using AI in programming, based on the results of these five studies. The article highlights that 92% of programmers already use AI tools, indicating widespread adoption in the industry.
- Not everyone who touches code in their everyday life works as a programmer. There is also a large number of instructors and educators who teach other people how to code. Are LLMs useful for them? This is the question a 2022 paper published by Sarsa et al seeks to answer. How useful are Large Language Models (LLMs) for educators?
- The Impact of AI on Developer Productivity: Evidence from GitHub Copilot How much faster are developers when using an AI pair programmer? In this controlled experiment, developers using GitHub Copilot (blue bars) completed a common development much faster than those without access to the tool (red bars). The paper was published by researchers from Microsoft Research, GitHub, and the MIT Sloan School of Management and is available as a free download. 2.
-
- Big Code in the AI era
-
This article discusses the "Big Code" problem: the increasing size and complexity of codebases hindering developer productivity and innovation. A survey reveals that codebases have grown 5x in three years, with developers spending only 14% of their time writing new code, the rest on searching, understanding, and fixing existing code. The rise of AI exacerbates the issue, with concerns about increased tech debt and code sprawl. While developers are excited about AI-powered dev tools, only 65% of companies have a plan to address Big Code, leading to slower innovation and higher development costs. The article highlights developer struggles with code understanding, maintaining efficiency, and searching large codebases, emphasizing the need for tools to improve code searchability and management.
- Big • Code noun Referring to the size and complexity of codebases, containing millions of lines of code, making it challenging to manage and understand without the aid of specialized tools and techniques. Without a plan to address Big Code, companies face increasing complexity, higher development costs, and most significantly, slowed innovation. We can’t ignore the Big Code problem anymore. Are blocked more frequently due to the growing size of their codebase. Say they wish they could spend less time looking for information or old code and more time actually coding.
- Want a tool that would allow them to have a greater output with fewer people and resources. Get the full report Methodology To create our Big Code Report, we rely on survey data gathered anonymously by Ground Control Research. The respondents are developers and engineering leaders that vary in experience levels across several engineering disciplines. The respondents work at companies that span all major industries with at least 1,000 employees.
-
- The AI Metamorphosis of Software Engineering
-
This article discusses the shift in software engineering from traditional, deterministic methods to AI-native development. The author contrasts their experience working on a Microsoft project in 2006, highlighting the challenges of understanding system dependencies and unclear customer needs in traditional software development. The core argument is that while AI is transforming all products, building AI-native products requires a different methodology and mindset, prioritizing clear articulation of customer problems before diving into technology. The author suggests that AI product development is currently lagging behind AI research, making it an exciting but challenging field.
- The Traditional Software Development Lifecycle by Natalia Burina Traditional software development, like the project I was working on, is deterministic and repeatable. Run a program, and you’ll always get the same output, y, with the same input, x. It’s what everything hinges on. You can always get the right answer if you just figure out all the pieces and hold the dependencies in your head. I was fighting a battle of not understanding system dependencies in the underlying operating system. But once I understood that, the puzzle fell into place.
- The technology-first approach to developing software was and still is the modus operandi of many teams in the industry. Clearly articulating the most important user or customer problem remains the most fundamental tactic for creating a winning product. While it sounds obvious, it’s surprising how often the engineering team does not understand why they’re building a particular product. When a technology is new, companies may struggle with putting the customer first while still exploring the potential of new technologies. Software products built on well-defined customer needs and requirements work great.
-
- The proliferation of Generative AI Coding Tools and how Product Engineering teams will use them
-
This article is part two of a six-part series exploring how generative AI coding tools (like GitHub Copilot, ChatGPT, and Amazon CodeWhisperer) will impact product engineering teams. Part one examined the potential for fewer human engineers due to AI, the common 5:1 engineer-to-product manager ratio, how engineer and product manager roles might shift, and how past AI impact predictions have been inaccurate. This second part focuses on the explosion of AI coding tools, highlighting Eric Raymond's 2003 advice on automating code generation to improve efficiency and reliability, and noting that this principle remains relevant today with tools like automated testing, linters, and auto-completion.
- The explosion of AI coding tools Automation has been a part of software engineering for almost as long as there has been software engineering. Eric Raymond’s 2003 landmark essay, The Art of Unix Programming reflected on 17 design rules for software engineers, including the Rule of Generation: “Avoid hand-hacking; write programs to write programs when you can”. Raymond’s advice is still relevant even 20 years after it was published: “Human beings are notoriously bad at sweating the details. Accordingly, any kind of hand-hacking of programs is a rich source of delays and errors. The simpler and more abstracted your program specification can be, the more likely it is that the human designer will have gotten it right.
- In Part 1, we explored: The landscape of product engineering and the possibility that teams will need fewer human engineers with the rise of Generative AI tools. The traditional 5:1 Ratio in tech teams: how roughly five engineers for every product manager is common across the industry. The roles of product managers and engineers in current product development processes and how these roles might shift with AI advancements. How past research has given flawed predictions on which professions will be the least impacted by AI, and how LLMs have upended these predictions, particularly for the tech and creative industries. The explosion of AI coding tools Automation has been a part of software engineering for almost as long as there has been software engineering.
-
- Will AI Replace Programmers? The Future of Coding in the Age of AI
-
This article explores whether AI will replace programmers. While AI excels at generating boilerplate code, repetitive tasks, documentation, test cases, and code optimization suggestions, and can even analyze data and generate SQL queries, it's unlikely to replace programmers entirely. AI's capabilities are limited by its context window size (the amount of code it can process at once), making it unsuitable for working with large codebases. AI is a valuable tool for programmers, increasing efficiency, but human programmers are still needed for complex tasks and large-scale projects.
- In the early days of programming, people used punch cards to write code. Later, assembly language allowed programmers to work at a higher level, leading to the creation of compilers for even higher-level languages such as COBOL and C. This trend of increasing abstraction has continued through the years, and AI is poised to be the next layer of abstraction, enabling programmers to tackle even bigger and more complex challenges. So, to answer the question raised at the beginning of this article: no, AI is not going to kill the programming industry. It will empower programmers to tackle more complex challenges and help take humanity to the next level. Now is the best time to be in this industry.
- Is the rise of AI signalling the end of programming as a skill and a job? There has been significant discussion in the media about how AI might replace programming jobs, with some experts predicting that it will become a thing of the past. The lay-offs occurring across the board in the tech industry (with some being attributed to AI) has added to these concerns. Tech has been a lucrative industry for the past few decades, and many people have even switched careers from being a lawyer or doctor to a full-time coder. But does it make sense anymore?
-
- AI is Coming for Software Engineers (I'm a Software Engineer)
-
This article argues that AI, specifically large language models (LLMs) like GPT, will significantly impact software engineering jobs in the next five years, potentially leading to a contraction in the number of positions. The author contends that because code is essentially structured text, and LLMs excel at generating text, AI is well-suited to automate many aspects of software development. The ability to automatically test and verify code through a computer-based feedback loop further accelerates this process. While AI may not initially surpass human coders, its tireless work and ability to learn from errors will quickly lead to significant improvements in code quality and productivity. The author predicts a future where AI acts as junior engineers, assisting with tasks and even generating code independently, ultimately outperforming human coders in many aspects. The author notes that this process is already underway with tools like GPT4 and Github Copilot.
- First, it’s important to understand the basic output of a software engineer: code. And code is just text. In fact, it’s structured text, specifically written for a machine to understand. Of course there are all sorts of other things software engineers do, but the building blocks are just text files at the end of the day. Programs are written in code.
- And code is just text. In fact, it’s structured text, specifically written for a machine to understand. Of course there are all sorts of other things software engineers do, but the building blocks are just text files at the end of the day. Programs are written in code. Databases?
-
- Is AI making our code stupid?
-
AI-powered coding tools boost speed but may produce bloated, less maintainable code, increasing security risks. While AI assists in coding, its over-reliance leads to code resembling that of a short-term contractor, prioritizing speed over quality. The article emphasizes that although AI can improve software development, careful review processes are crucial to mitigate the risks of bloated and insecure code generated by AI assistants. Leaner code is safer, and thorough code review, both automated and manual, is presented as a solution to counteract the negative impacts of AI-generated code.
- As one of my colleagues put it recently, “Good code is crafted just as much by good process as by good developers. " That process depends on developers not shirking their responsibility to learn the basics of software development. There’s a risk that less-experienced developers will skip over the most difficult software engineering topics like data structures and algorithms, distributed systems, networking, etc. This puts them in a weak position to do effective code reviews. My hope is that developers will both embrace the new opportunities afforded by AI tools while deepening their roots in the essentials that will help them use AI tools effectively and not get used by them.
- " That process depends on developers not shirking their responsibility to learn the basics of software development. There’s a risk that less-experienced developers will skip over the most difficult software engineering topics like data structures and algorithms, distributed systems, networking, etc. This puts them in a weak position to do effective code reviews. My hope is that developers will both embrace the new opportunities afforded by AI tools while deepening their roots in the essentials that will help them use AI tools effectively and not get used by them. This hope will become reality as development leads insist on robust code reviews, which in turn, raise the bar on those involved in the coding process, be they human or machine.
-
- Why the IDE needs to be reimagined
-
This article discusses the evolution of IDEs (Integrated Development Environments) in the age of AI. The author reflects on their personal IDE journey, highlighting the limitations of current AI-powered coding assistants. These assistants, while helpful in generating code, lack the ability to test or debug their own output, leaving developers to perform these crucial steps. The author argues that future IDEs must integrate seamlessly with AI assistants, allowing them to leverage existing developer tools for better code understanding, navigation, and incremental software development. This integration, within the IDE itself, is crucial for maintaining fast feedback loops between the AI and the developer. Ultimately, the author suggests a reimagining of the IDE is needed to fully leverage the potential of AI in software development.
- Can you imagine giving a big task to a developer, who writes the code but never runs or tests it before submitting a PR? shudders To do this well, a few key pieces need to be in place: AI assistants use rich developer tools like we do. Developers have created a ton of tooling over the last 30 years of computing. Unlike natural languages, code is inherently well-structured.
- The IDEs of today are built around making it easy for developers to interact with their code. Red squiggly lines from pesky linters, a file tree to visualise the codebase, and 30+ menu items with keyboard shortcuts for every action. All of these are visual cues for developers—the first thing to do is to start exposing these cues to AI assistants as well. When AI can access every one of these workflows, if not all, a lot of them can potentially be simplified to a large extent. For example, why does the source control need to be ordered by file and folder names?
-
- AI coding will unlock the next wave of developer productivity and reshape the software supply chain
-
AI coding tools, used by 95% of developers, are increasing productivity by automating tasks and offering code suggestions. While not perfectly accurate, these tools—like GitHub Copilot, ChatGPT, and Cody—benefit both novice and expert developers by boosting efficiency and inspiring creativity. However, mid-level engineers may find less immediate value due to the current limitations of AI in handling complex problems. The article predicts that AI coding will fundamentally shift software development, pushing value "left" in the development lifecycle by addressing security and other issues early in the process. The future of AI coding tools promises even greater advancements.
- The chart below highlights how we are starting to see value accrue across different stages of the software development supply chain in the new ‘AI World’ versus the ‘Old World’ (pre-shift-left) and ‘Shift-Left World.’ The big picture is that more software will be released faster, thanks to AI. We’ve spent the past 15 years shifting from traditional waterfall development to agile methods. And now, with the help of AI, we’re going to experience another boost in productivity as development cycles speed up even more. This will greatly impact the developer tool ecosystem.
- We’ve spent the past 15 years shifting from traditional waterfall development to agile methods. And now, with the help of AI, we’re going to experience another boost in productivity as development cycles speed up even more. This will greatly impact the developer tool ecosystem. We can only speculate the changes to come, but to call out a few predictions given what we know today: Tools to fix broken builds will become more important.
-
- The 5 Leading AI Coding Tools That Engineering Teams Need to Try | HackerNoon
-
This HackerNoon article discusses five leading AI coding tools for engineering teams. It highlights the increasing need for AI in software development to improve efficiency and code quality. The article focuses on GitHub Copilot X (though not yet released), positioning it as a powerful, general-purpose AI pair programmer leveraging GPT-4. It also features Tabnine, an established AI code assistant built on GPT-3, praised for its maturity and features. The author suggests exploring these tools, especially while waiting for Copilot X's release, to maintain a competitive edge. The article emphasizes that AI tools enhance, not replace, human engineers, combining human creativity with AI's power.
- Efficiency is a buzzword in our world. There’s more pressure on the resource of engineering teams than there has been for quite some time. The demand for automation in software engineering is skyrocketing, and AI-powered code generation is stepping up to the plate. By reducing the time spent on repetitive tasks and enhancing code quality, AI code generation tools enable engineers to focus on more complex, high-level work. This shift paves the way for faster development cycles and more efficient teams.
- Leading an engineering team, but feeling swept away by the sheer pace of AI development? It isn’t just you. Leveraging artificial intelligence will very soon be a requirement for businesses like yours to stay ahead. But how do you make the right decisions today to safeguard your team tomorrow? There are a plethora of AI tools that claim to write high-quality code for software engineers.
-
- Hey, let’s fire all the devs and replace them with AI!
-
This article argues that AI will soon revolutionize software development. The author predicts that within three years, AI will be able to generate high-quality code from natural language specifications (like PRDs or bug reports), making human developers largely obsolete. While acknowledging that current AI code generation tools aren't perfect, the author believes rapid advancements (exemplified by tools like Copilot) will lead to significantly better performance and cost-effectiveness compared to human programmers. The central claim is that even if AI-generated code requires human review, the process will still be far cheaper and faster than traditional software development. The author challenges the assumption of superior human code quality, citing their experience at companies like Google and Apple, and suggests that current standards for acceptable code quality should be applied to AI-generated code as well.
- What do I mean by “perfectly fine”? Well, first of all, let’s get serious for a minute about the quality of code produced by typical human dev teams. I’ve worked at places like Google and Apple, and let me tell you, the code quality there is, ahem, not always the best. Even at Google, where code review is a religion, style guides are the gospel, and every team’s code is open to scrutiny and sometimes exploitation by every other engineer at the company — I have to say, there is a lot of shitty code. (Maybe less than when I left, not that there is, er, any correlation.
- AI is going to get really, really good at writing code. It is also thousands of times cheaper than humans. What does this mean for the software profession? This is a kind of companion piece to my recent CACM article, The End of Programming. In that article, I asked the question of what happens when writing code gets replaced by training AIs.
-
- Responsible AI pair programming with GitHub Copilot
-
This GitHub blog post discusses responsible use of GitHub Copilot, an AI pair programmer. Copilot, powered by OpenAI Codex, suggests code and functions in real-time, boosting developer productivity. The article emphasizes that while Copilot is a powerful tool, it's not a replacement for good coding practices. It then explores the concept of "programming as theory building," highlighting how AI tools like Copilot reduce extraneous cognitive load (e.g., database queries) allowing developers to focus on the core business problem (germane load). The authors use the example of designing an e-commerce website to illustrate how Copilot helps developers concentrate on higher-level design decisions rather than low-level implementation details. Finally, the post implicitly advocates for responsible AI integration in software development workflows.
- In Programming as Theory Building (1985), Peter Naur writes that, “The building of the program is the same as the building of the theory of it by the team of programmers.” When developers are programming, they are trying to implement a theory (or model) to solve a business problem. The value that programming adds is not the programming itself, but in the problem that it solves. Cognitive load is the amount of working memory needed to complete a task. There are broadly three types of cognitive load when programming: intrinsic (knowing how to program), extraneous (knowing how to construct an array, add items to a database, or call an API), and germane (knowing how to solve a business problem). Intrinsic knowledge is required to program, but developers that can maximize the amount of germane load while decreasing the amount of extraneous load are more productive.
- Imagine a developer is designing an e-commerce website: they need to model the product catalog, the orders, the shopping basket, the shipment tracking and other aspects of the business. Let’s imagine the product catalog for a moment: where do you want the developer to focus their time and energy—on how to most efficiently present the right products to the right customers, or how to query a database for a list of products? When the developer fills their “working memory” with the mechanics of querying the database and passing objects from the backend to the frontend, they aren’t really thinking about the business problem. The developer could be thinking about which subset of products to fetch first or how to position the product images for maximum visibility in order to increase sales—these are the germane problems the developer is trying to solve. GitHub Copilot is meant to keep the developer focussed on the business problem (the theory of the program) rather than the programming itself.
-
- AI-Driven Development Is Here: Should You Worry?
-
This IEEE Xplore webpage provides user account management options (changing passwords, updating addresses), purchase details (payment options, order history), profile information (communication preferences, professional details, technical interests), and help resources (phone numbers, contact form). It also includes links to information about IEEE Xplore, contact information, help, accessibility, terms of use, a nondiscrimination policy, a sitemap, and privacy information. The page concludes with a copyright notice and terms and conditions statement.
- A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity.© Copyright 2023 IEEE - All rights reserved. Use of this web site signifies your agreement to the terms and conditions.
-
- Unleashing developer productivity with generative AI
-
McKinsey's research shows generative AI significantly boosts developer productivity, cutting time for coding tasks by up to 50%. However, the time saved varies depending on task complexity and developer experience; less experienced developers or complex tasks saw less benefit. While AI tools didn't compromise code quality when used iteratively, developers still need to understand code quality attributes for optimal results. To maximize productivity, companies should focus on training, careful use case selection, upskilling, and risk management. The AI excels at automating routine tasks, jumpstarting code creation, and improving code documentation.
- Our latest empirical research finds generative AI–based tools 1 delivering impressive speed gains for many common developer tasks (see sidebar, “About the research”). Documenting code functionality for maintainability (which considers how easily code can be improved) can be completed in half the time, writing new code in nearly half the time, and optimizing existing code (called code refactoring) in nearly two-thirds the time (Exhibit 1). With the right upskilling and enterprise enablers, these speed gains can be translated into an increase in productivity that outperforms past advances in engineering productivity, driven by both new tooling and processes. Yet, while a massive surge in productivity is possible, our research finds time savings can vary significantly based on task complexity and developer experience. Time savings shrank to less than 10 percent on tasks that developers deemed high in complexity due to, for example, their lack of familiarity with a necessary programming framework.
- Contributing organizational context. While off-the-shelf generative AI–based tools know a lot about coding, they won’t know the specific needs of a given project and organization. Such knowledge is vital when coding to ensure the final software product can seamlessly integrate with other applications, meet a company’s performance and security requirements, and ultimately solve end-user needs. As research participants pointed out in their feedback, it will be up to software developers to provide these tools with the context via prompting, including how the code will be used and by whom, the types of interfaces and other systems the software will interact with, the data used, and more. Navigating tricky coding requirements.
-
- Simplifying Development: Generative AI and How Its Influence on Workflow Speed
-
This article explores how generative AI is accelerating software development. It cites McKinsey research predicting significant workforce skill improvements through AI by 2030. The article highlights four key ways generative AI boosts developer speed: automating repetitive tasks (like code population and documentation), providing initial code drafts to overcome writer's block, speeding up code updates through iterative querying, and assisting with more complex tasks, although the time savings are less pronounced in those cases. The overall conclusion is that generative AI offers substantial potential for improving developer productivity and efficiency.
- 💡 Generative AI has proven to be highly effective in automating repetitive and routine coding tasks, such as code completion, documentation generation, and bug fixing. Developers can significantly expedite their work by leveraging these capabilities, allowing them to focus on more creative and challenging aspects of software development. As this technology continues to advance and seamlessly integrates into various aspects of the software development life cycle, the expectation is for further enhancements in both speed and the overall quality of the development process. But still, it is obvious that without a competent and systematic approach to technology, it is impossible to achieve great success. Only a well-organized strategy that includes generative AI training and coaching, use case selection, workforce upskilling, and effective risk controls can establish a robust foundation for organizations to actively pursue the extraordinary productivity and unmatched software innovation promised by generative AI.
- It was mentioned, that Generative AI is least helpful when the problem becomes more complicated and requires consideration of the big picture. 💡 Generative AI has proven to be highly effective in automating repetitive and routine coding tasks, such as code completion, documentation generation, and bug fixing. Developers can significantly expedite their work by leveraging these capabilities, allowing them to focus on more creative and challenging aspects of software development. As this technology continues to advance and seamlessly integrates into various aspects of the software development life cycle, the expectation is for further enhancements in both speed and the overall quality of the development process. But still, it is obvious that without a competent and systematic approach to technology, it is impossible to achieve great success.
-