J-Fall 2023: The human factor you might be missing when designing your system – Rafael Maia
The world of software development is undergoing a paradigm shift, and it’s not all about the code. We are realizing that technical efficiency and human-centeredness aren’t mutually exclusive – but rather, crucial allies in constructing resilient, maintainable, and effective software systems. Let’s dive into how we can unite these two seemingly disparate dimensions. In this talk, we will first discuss the principles of Socio-Technical System (STS) theory and its role in aligning technical and social systems. The discussion will then head towards Team Cognitive Load, exploring strategies to optimize the mental effort required by a team to comprehend and maintain a software system. An in-depth exploration of Conway’s Law and real-world case experiences will expose the intricate link between an organization’s communication structure and its system designs. Additionally, we will dissect the concept of “hidden monoliths” and illustrate methods for detecting and managing concealed coupling in seemingly decoupled systems. The final segment will focus on the importance of correctly defining software boundaries, treating them as fracture planes to ensure system adaptability and modularity. By the end of our session, participants will have a nuanced understanding of how to architect software systems that are technically robust and human-centric. They will leave equipped with actionable strategies for fostering efficiency, resilience, and flexibility in their projects, marking a significant step towards more empathetic and effective software development