W11 - Pragmatism: What GPT Can and Cannot Do — On Its Impact on Software Development
A Pragmatic Stance
Prefer to support the viewpoint of pragmatists who favor action.
Face reality and consider how GPT will affect software development from a developmental perspective, rather than debating whether it will replace humans. Circling the ultimate question is often hollow. Views that are pessimistic to the point of giving up, or optimistic to the point of ignoring problems, can both be seen as lazy. The advent and widespread use of computers was epoch-making; what they created far outweighs what they replaced. We should focus on the tangible effects that structural changes in production factors bring to society. Just as mental arithmetic and calligraphy, which 80s and 90s kids learned as children, are no longer priorities for contemporary parents.
What Copilot Reveals
Feeling out GPT’s strengths and weaknesses through IDE plugins like GitHub Copilot and Tabnine
Strengths
Freeing people from tedious, repetitive tasks, such as one-off scripts, CRUD, and unit tests.
Learning and exploring new domains, like quickly getting up to speed with a new language, framework, or library.
Machine advantages, such as writing regex, SQL, CronJobs, etc.
Limitations
Security concerns. It is currently disabled within the company.
Copyright issues. Because Copilot infers code snippets from open-source projects on GitHub, it can raise license-related intellectual property concerns.
Accuracy problems. Compared with search engines, GPT’s incorrect answers are easier to believe. GPT tends to generate plausible answers rather than correct ones.
Impact on Software Development
Coding
Skills and learning methods need to be upgraded. There is a need for deeper foundational computer science skills, such as compiler technology. Knowledge and skills about data structures, algorithms, framework and third-party library APIs are already very accessible; becoming proficient at rote practice may no longer be a strong competitive advantage.
You need to accumulate more domain-related knowledge, strengthen business understanding and insight, and enhance your creative capability in technology. The focus of building applications may shift from writing code to training models that reflect domain characteristics using AI.
Architecture
An architect is essentially a bridge between business and technology. The core responsibility is to deeply understand business requirements, assess the system complexity those requirements introduce, design options to address or reduce that complexity, and finally make trade-offs based on the circumstances.
Differences in business requirements themselves cannot be trained. For example, different departments or teams building the same product will produce different requirements.
Judgment in the architecture design process cannot be standardized. Architects must make judgments and trade-offs based on stakeholders’ demands, the team’s technical progress, and business development; these cannot be standardized or trained.
Technology constantly evolves, and the architecture process requires innovation. Can ChatGPT create the next generation of products that revolutionize itself? The current assessment is no.
Last updated