Software development is necessarily social.
Developers need to communicate well for plenty of reasons:
-
to share an understanding of common goals and desirable outcomes
-
to share standards for quality
-
to share contracts and interfaces for interoperability
-
to share patterns for efficiency and readability
-
to share learnings to avoid common pitfalls
-
to write clear code that’s easy to review
Over the past few decades a variety of ways of working and digital tools have been developed to support this. The agile manifesto and agile software development offers principles and ways of working for teams, and lean software development goes further, applying lessons from manufacturing to support larger organisations and optimise cross-team communication. Tools like Jira, Trello, Asana, GitHub Projects (and plenty of others) offer easily recognised interfaces to manage this communication.
Open source software is an ecosystem of interoperable tools including operating systems, command line tools, browsers, coding languages and libraries. Many interconnected systems are linked together by APIs running common protocols, with common data standards.
AI assisted coding is becoming prevalent, and may alter the way we work together. Developers can create far more complex projects in much smaller teams, or in isolation. Are shared contracts, open APIs, common data types, and interoperability at risk? What are good outcomes, and how can we incentivise them?
For this topic, we’ll discuss and test principles that could contribute to a manifesto for assisted coding. We’ll be thinking about this, and exploring a variety of ways of working. All ideas welcome!