W11 - Pragmatism: What GPT Can and Can't Do — On Its Impact on Software Development

A Pragmatic Stance

More inclined to support the pragmatic view that favors action.

Face reality and think about how GPT will affect software development from a developmental perspective, rather than whether it can replace humans. Circling around the ultimate question often leads to empty debate. Views that are pessimistic to the point of surrender, or optimistic to the point of ignoring issues, can both be seen as lazy. The emergence and adoption of computers was epoch-making; they have created far more than they have replaced. We should focus on the concrete impacts that structural changes in production factors bring to society. Just as mental arithmetic and calligraphy that people born in the ’80s and ’90s learned as children are no longer priorities for today’s parents, some skills lose their social emphasis over time.

What Copilot Reveals

Assess GPT’s strengths and weaknesses through IDE plugins like GitHub Copilot and Tabnine.

What it excels at

  • Freeing people from boring, repetitive tasks — for example, one-off scripts, CRUD, unit tests, and similar work.

  • Learning and exploring new domains, such as quickly getting up to speed with a new language, framework, or library.

  • Machine advantages, such as writing regular expressions, SQL, CronJobs, and the like.

Limitations that exist

  • Security concerns. Some companies have already banned it internally.

  • Copyright issues. Because Copilot’s suggested code snippets are inferred from open-source projects on GitHub, they may raise license and intellectual property concerns.

  • Accuracy issues. Compared to search engines, GPT’s incorrect answers are easier to believe. GPT tends to generate plausible answers rather than guaranteed correct ones.

Impact on Software Development

Coding

  • Skills and learning methods need to evolve. Deeper computer science fundamentals, such as compiler technology, will become more important. Knowledge of data structures and algorithms, and how to call framework and third-party library APIs, is now very easy to obtain; being adept at rote practice alone may no longer be a competitive advantage.

  • It will be necessary to accumulate more domain-specific knowledge, strengthen business understanding and insight, and increase technical creativity. The emphasis of building applications may shift from writing code to training models that reflect domain characteristics using AI.

Architecture

  • An architect’s essence is to bridge business and technology. Their core responsibility is to deeply understand business needs, assess the system complexity those needs introduce, design alternatives to address or reduce that complexity, and then make trade-offs based on the circumstances.

  • Differences in business requirements themselves cannot be trained away. For example, different departments or teams building the same product will generate different needs.

  • Judgment in the architecture design process cannot be standardized. Architects must make judgments and trade-offs based on stakeholders’ demands, the team’s technical trajectory, and business developments — matters that cannot be standardized or trained.

  • Technology is continuously evolving, and the architecture process requires innovation. Can ChatGPT create the next revolutionary product for itself? Current judgment is that it cannot.

Last updated