
Robert L. Glass
A deep exploration of the persistent conflicts in software engineering between theory and practice, technology and management, offering pragmatic insights for lasting improvement.
Robert L. Glass has been a software practitioner for over 30 years, giving him a unique perspective bridging theory and practice.
1 more facts available in the app
Section 1
9 Sections
Imagine stepping back in time to an era where the boundaries between theory and practice were not as clearly defined as we might assume today. In the realm of software engineering and computing, this relationship is more fluid and surprising than one might expect. Contrary to the common belief that theory must always precede practice, many pivotal technological advances show that hands-on application often leads the way.
Take the example of the airfoil wing, a marvel that allowed airplanes to fly despite the prevailing scientific consensus that heavier-than-air flight was impossible. This invention was put to use before aerodynamic theory could fully explain its success, illustrating that practical innovation can ignite theoretical exploration.
Similarly, the development of time-sharing systems—a breakthrough in computing—was achieved through building and refining working systems, not by first deriving comprehensive theories. The complexity and novelty of these systems meant that understanding came from experimentation and observation rather than pure calculation.
In the software world, programming style and compiler writing also followed this pattern. Programmers developed effective coding styles and compilers long before formal theories were articulated. This underscores the importance of experience and practical problem-solving in driving progress.
What does this mean for how we approach software engineering today? It suggests that theory should not be viewed as the sole or primary driver of innovation. Instead, it should closely observe and learn from the rich body of practical knowledge generated by practitioners. This dynamic interplay ensures that theory remains relevant and grounded.
Yet, this relationship is not static. There is a point where theory surpasses practice, providing frameworks and tools that practitioners must then adopt to advance further. Unfortunately, both sides sometimes fail to recognize when to lead and when to follow, causing friction and missed opportunities.
This nuanced dance between theory and practice is foundational to understanding the conflicts and challenges that permeate software engineering. Recognizing that practice often leads theory invites us to value hands-on experience and encourages researchers to engage deeply with real-world problems.
As we transition to the next insight, we will explore a critical perspective on software research, revealing why some current approaches may be misleading and how a closer connection to practice is essential for meaningful progress.
What surprising relationship between theory and practice is highlighted in software engineering?
17 more quizzes available in app
In software engineering, practical experience often informs and precedes theoretical understanding.
8 more insights available in app
Unlock all 9 sections, 9 insights, full audio, and interactive mind map in the SnapBooks app.
Discover how hands-on experience leads innovation in software development, often outpacing formal theories.
Read articleUnmasking the overhyped promises in software research and what really drives progress.
Read article