2018-02 Bridging the Divide between Architecture and Code
Channel: Toronto Java Users Group
Date: 2018-04-27

Static diagrams on wikis and white-boards might capture the vision of architects, but they don’t much help programmers to understand how the code they’re working on right now fits into the architecture. Nor are the programmers warned when they violate the diagrams as they forge changes, line-by-line. This is a huge problem – it is ultimately individual lines of code that make or break an architecture; and we know that a clean architecture will help teams develop a more flexible product, with less complexity, less wasted effort, etc. Worse, without practical architectural guidance, programmers wrestle with invisible structures that emerge from thousands of inter-dependent lines of code. And being invisible, these structures become ever more complex, coupled, and tangled. In fact, uncontrolled structure actively fights against productive development.

This talk shows how to rein in emergent code-base structures and gradually transform them into a cogent, defined architecture. You will see how…

• Visualizing the emergent structure makes a code-base easier to understand.
• Restructuring to remove tangles and reduce coupling makes the visualized code-base easier to work on.
• Specifying layering and dependency rules converts good structure into a controlled architecture that guides the team as the code-base evolves and grows. A key ingredient is a live visualization, inside the IDE, of the detailed code the programmer is working on, in the context of the overall architecture.

In short, you will learn how bridging the architect/programmer divide can convert code-base structure from liability into an asset that actively works for development productivity.

About The Presenter

Ross McNamara hails from the Canadian Maritimes, and graduated from the University of New Brunswick's Computer Engineering program in 1987. Since then Ross has worked in all phases of Software Engineering, from implementation and unit testing to large scale architectural design and program management. Ross has experience in diverse systems domains including aerospace (avionics and International Space Station Canadarm2 programs), financial infrastructure and IP/telecommunications solutions. Ross joined Headway Software to focus on improving day-to-day enterprise scale software engineering practice by providing real-world, pragmatic Structure101workflow solutions.