Philippe Kruchten: Controlling Your Architecture - Episode 195

Azure DevOps Podcast - A podcast by Jeffrey Palermo - Mondays

Categories:

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.   Topics of Discussion: [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. [4:26] How Philippe has seen software architecture change over time and the struggles architects still face. [6:03] Software architects are among some of the most in-demand professions. [7:10] What makes software architecture different from other coding? [9:05] Discussing Building and Evaluating a Theory of Architectural Technical Debt in Software-intensive Systems and the three reasons for architectural debt. [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? [17:23] Regardless of the format, each key audience needs a view specific to them, and how to document the decisions. [21:19] Is there a best approach for harvesting or understanding the actual architecture? [23:46] With a big architectural change, using systematic impact analysis and prototyping are ways to carefully approach the shift. [26:48] Some unsolved issues that remain within the industry and what a good software developer looks like, then vs. now.   Mentioned in this Episode: Architect Tips — New video podcast! Azure DevOps Clear Measure (Sponsor) .NET DevOps for Azure: A Developer’s Guide to DevOps Architecture the Right Way, by Jeffrey Palermo — Available on Amazon! Jeffrey Palermo’s YouTube Jeffrey Palermo’s Twitter — Follow to stay informed about future events! “Building and Evaluating a Theory of Architectural Technical Debt in Software-intensive Systems” “A General Model of Software Architecture Design Derived From Five Industrial Approaches” Software Systems Architecture 4+1 Architectural View Model IEEE 1471   Want to Learn More? Visit AzureDevOps.Show for show notes and additional episodes.   Quotes: “I think we’ve made some progress. We understand the role of architecture a little bit better.”— Philippe [4:59] “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] “We’ve come a long way in making architecture a first-class citizen in a few organizations.” — Philippe [5:42] “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] “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] “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] “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] “Diagrams are useful for architects to communicate to another audience.” — Philippe [18:59]   Philippe: Website | Twitter | LinkedIn