Philippe Kruchten: Controlling Your Architecture - Episode 195

Azure DevOps Podcast

Episode | Podcast

Date: Mon, 30 May 2022 08:00:00 +0000

<p><span style="font-weight: 400;">Philippe Kruchten has over 35 years of software development experience. Now retired, his experience focused mostly on large technical systems such as telecommunication, defense, aerospace, and software tools. He also spent 16 years as an educator and researcher in a major Canadian engineering school.</span></p> <p> </p> <p><strong>Topics of Discussion:</strong></p> <p><span style="font-weight: 400;">[2:18] Philippe gives some of the highlights of his long career, starting first as a mechanical engineer and then traveling the world as a software engineer.</span></p> <p><span style="font-weight: 400;">[4:26] How Philippe has seen software architecture change over time and the struggles architects still face.</span></p> <p><span style="font-weight: 400;">[6:03] Software architects are among some of the most in-demand professions.</span></p> <p><span style="font-weight: 400;">[7:10] What makes software architecture different from other coding?</span></p> <p><span style="font-weight: 400;">[9:05] Discussing</span> <em><span style="font-weight: 400;">Building and Evaluating a Theory of Architectural Technical Debt in Software-intensive Systems</span></em> <span style="font-weight: 400;">and the three reasons for architectural debt.</span></p> <p><span style="font-weight: 400;">[11:31] A major reason for architectural debt in software is not understanding the architecture due to improper documentation. So what is the proper way to document?</span></p> <p><span style="font-weight: 400;">[17:23] Regardless of the format, each key audience needs a view specific to them, and how to document the decisions.</span></p> <p><span style="font-weight: 400;">[21:19] Is there a best approach for harvesting or understanding the actual architecture?</span></p> <p><span style="font-weight: 400;">[23:46] With a big architectural change, using systematic impact analysis and prototyping are ways to carefully approach the shift.</span></p> <p><span style="font-weight: 400;">[26:48] Some unsolved issues that remain within the industry and what a good software developer looks like, then vs. now.</span></p> <p> </p> <p><strong>Mentioned in this Episode:</strong></p> <p><a href="http://architecttips.clearmeasure.com/"><em><span style="font-weight: 400;"> Architect Tips</span></em></a> <span style="font-weight: 400;">— New video podcast!</span></p> <p><a href="https://azure.microsoft.com/en-ca/services/devops/?&amp;OCID=AID736756_SEM_7eul5uID"> <span style="font-weight: 400;">Azure DevOps</span></a></p> <p><a href="https://www.clear-measure.com/"><span style="font-weight: 400;">Clear Measure</span></a> <span style="font-weight: 400;">(Sponsor)</span></p> <p><a href="https://www.amazon.com/NET-DevOps-Azure-Developers-Architecture/dp/1484253426"> <em><span style="font-weight: 400;">.NET DevOps for Azure: A Developer’s Guide to DevOps Architecture the Right Way,</span></em> <span style="font-weight: 400;">by Jeffrey Palermo</span></a> <span style="font-weight: 400;">— Available on Amazon!</span></p> <p><a href="https://www.youtube.com/channel/UC-ROXy08zc-qTA0-3GAQDLw"><span style="font-weight: 400;"> Jeffrey Palermo’s YouTube</span></a></p> <p><a href="https://twitter.com/jeffreypalermo?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor"> <span style="font-weight: 400;">Jeffrey Palermo’s Twitter</span></a> <span style="font-weight: 400;">—</span> <span style="font-weight: 400;">Follow to stay informed about future events!</span></p> <p><a href="https://www.sciencedirect.com/science/article/pii/S0164121221000224"> <em><span style="font-weight: 400;">“Building and Evaluating a Theory of Architectural Technical Debt in Software-intensive Systems”</span></em></a></p> <p><a href="https://www.sciencedirect.com/science/article/abs/pii/S0164121206001634?via%3Dihub"> <em><span style="font-weight: 400;">“A General Model of Software Architecture Design Derived From Five Industrial Approaches”</span></em></a></p> <p><a href="https://www.amazon.com/Software-Systems-Architecture-Stakeholders-Perspectives/dp/032171833X"> <em><span style="font-weight: 400;">Software Systems Architecture</span></em></a></p> <p><a href="https://en.wikipedia.org/wiki/4%2B1_architectural_view_model"><span style="font-weight: 400;"> 4+1 Architectural View Model</span></a></p> <p><a href="https://en.wikipedia.org/wiki/IEEE_1471"><span style="font-weight: 400;">IEEE 1471</span></a></p> <p> </p> <p><strong>Want to Learn More?</strong></p> <p><span style="font-weight: 400;">Visit</span> <a href="http://azuredevopspodcast.clear-measure.com/"><em><span style="font-weight: 400;">AzureDevOps.Show</span></em></a> <span style="font-weight: 400;">for show notes and additional episodes.</span></p> <p> </p> <p><strong>Quotes:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">“I think we’ve made some progress. We understand the role of architecture a little bit better.”— Philippe [4:59]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“We’re still hindered by the fact that architecture is hard to grasp; it’s hidden out there in the software, it's not visible at the surface.” — Philippe [5:05]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“We’ve come a long way in making architecture a first-class citizen in a few organizations.” — Philippe [5:42]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“Architecture, for me, is the set of design decisions you have to make usually early in the life of a system that will actually condition a lot of things in terms of structure and behavior of the system.” — Philippe [7:25]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“It’s not programming; although the architecture will end up being code somewhere. The act of developing a software architecture is more about decision-making and understanding the intricate network of decisions and how they relate to each other.” — Philippe [7:58]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“Not every software developer needs to be a software architect, but they need to understand what is the software architecture of the system I’m working on.” — Philippe [8:45]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“You end up being in a position of architectural technical debt not because you made the wrong decision 10 years ago, but because those decisions are not the right one in the current circumstances. Then there is architectural debt because what you did 10 years ago was just plain stupid!” — Philippe [10:38]</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">“Diagrams are useful for architects to communicate to another audience.” — Philippe [18:59]</span></li> </ul> <p> </p> <p><strong>Philippe:</strong> <a href="https://philippe.kruchten.com/"><strong>Website</strong></a> <strong>|</strong> <a href="https://twitter.com/pbpk?lang=en"><strong>Twitter</strong></a> <strong>|</strong> <a href="https://www.linkedin.com/in/philippekruchten/"><strong>LinkedIn</strong></a></p>