Open Source Software as a Triumph of Information Hiding, Modularity, and Creating Optionality with Dr. Gail Murphy
Description
In this newest episode of The Idealcast, Gene Kim speaks with Dr. Gail Murphy, Professor of Computer Science and Vice President of Research and Innovation at the University of British Columbia. She is also the co-founder, board member, and former Chief Scientist at Tasktop. Dr. Murphy’s research focuses on improving the productivity of software developers and knowledge workers by providing the necessary tools to identify, manage, and coordinate the information that matters most for their work.
During the episode, Kim and Dr. Murphy explore the properties of modularity and information hiding, and how one designs architectures that create them. They also discuss how open source libraries create the incredible software supply chains that developers benefit from everyday, and the surprising new risks they can create.
They discuss the ramifications of system design considerations and decisions made by software developers and why defining software developers’ productivity remains elusive. They further consider open-source software as a triumph of information hiding and how it has created a massively interdependent set of libraries while also enabling incredible co-evolution, which is only made possible by modularity. Listen as Kim and Dr. Murphy discuss how technologists have both succeeded and fallen short on the dream of software being like building blocks, how software development is a subset of knowledge work, and the implications of that insight.
ABOUT THE GUEST
Gail C. Murphy is a Professor of Computer Science and Vice President of Research and Innovation at the University of British Columbia. She is a Fellow of the Royal Society of Canada and a Fellow of the Association for Computing Machinery (ACM), as well as co-founder, board member, and former Chief Scientist at Tasktop.
After completing her BS at the University of Alberta in 1987, she worked for five years as a software engineer in the Lower Mainland. She later pursued graduate studies in computer science at the University of Washington, earning first a MS (1994) and then a PhD (1996) before joining University of British Columbia.
Dr. Murphy’s research focuses on improving the productivity of software developers and knowledge workers by providing the necessary tools to identify, manage, and coordinate the information that matters most for their work. She also maintains an active research group with post-doctoral and graduate students.
YOU’LL LEARN ABOUT
- Why defining software developers’ productivity remains elusive and how developers talk about what factors make them feel productive.
- The value of modularity and how one can achieve it.
- Ways to decompose software that can have surprising outcomes for even small systems.
- How open-source software is a triumph of information hiding, creating a massively interdependent set of libraries that also enable incredible co-evolution, which is only made possible by modularity.
- How we have exceeded and fallen short of the 1980s dream of software being like building blocks, where we can quickly create software by assembling modules, and what we have learned from the infamous leftpad and mime-magic incidents in the last two years.
- Why and how, in very specific areas, the entire software industry has standardized on a set of modules versus in other areas, where we continue to seemingly go in the opposite direction.
- A summary of some of the relevant work of Dr. Carliss Baldwin, the William L. White Professor of Business Administration at the Harvard Business School. Dr. Baldwin studies the process of design and its impact of design architecture on firm strategy, platforms, and business ecosystems.
- How software development is a subset of knowledge work and the implications of that insight.
RESOURCES
- Dr. Mik Kersten on The Idealcast
- Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework by Mik Kersten
- Tasktop
- The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data by Gene Kim
- Fred Brooks
- The Mythical Man-Month
- On the Criteria To Be Used in Decomposing Systems into Modules by Dr. D.L. Parnas
- Comparison of embedded computer systems on board the Mars rovers
- Joshua Bloch
- How to design a good API and why it matters by Joshua Bloch
- Tricking Sand into Thinking: Deep Learning in Clojure by Dave Liepmann
- Gene Kim’s reaction on Twitter
- Gource
- Gource in Bloom
- 800+ days of Minecraft in 8 minutes
- History of Bitcoin
- History of Python
- Eclipse Mylyn by Dr. Mik Kersten
- How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript
- Laurie Voss’ tweet
- Rails 5.2.5, 6.0.3.6 and 6.1.3.1 have been released
- Have there been any lawsuits involving breach of open source licences?
- GNU General Public License
- SemanticConflict
- Fostering Software Developer Productivity through Awareness Increase and
- Goal-Setting by André Meyer
- Gail Murphy on Mik + One Podcast
- On the criteria to be used in decomposing systems into modules
- Thoughts on Functional Programming Podcast by Eric Normand
- Alistair Cockburn’s programming challenge on Twitter
- Gene Kim’s tweet about BLAS: Basic Linear Algebra Subprograms
- Gene Kim’s tweet about the Gource visualization on the scores of people making commits to the Python ecosystem repo
- Gene Kim’s Twitter thread about Dr. Carliss Baldwin’s talk: Part 1, Part 2
- Academy of Management 2015 TIM Distinguished Scholar Prof Carliss Baldwin
- Design Rules, Vol. 1: The Power of Modularity by Carliss Y. Baldwin and Kim B. Clark
- <a href='ht