searchlore

Back to Resource

All Segments

"Agile Architecture" - Molly Dishman & Martin Fowler Keynote

"Agile Architecture" - Molly Dishman & Martin Fowler Keynote

24 segments available

Watch more from the O'Reilly Software Architecture Conference: http://goo.gl/lXpXnG There is a common misconception that architecture is thrown out the window when a team or organization is developing software in an agile fashion, but where does this myth stem from? Surely, there is some truth behind this thinking. We’ll talk about some of the underlying assumptions that support this belief in order to build a common understanding of what it really means to be developing in an agile fashion. During the second half of this talk, we’ll move from the conceptual thinking into some practical suggestions from our experiences — what we’ve seen that works and highlight some practices to avoid. In the end, the audience will know how to bring architectural thinking into teams to support the higher level goals of application architecture. About Molly Dishman (ThoughtWorks): Molly Dishman is a Senior Consultant at ThoughtWorks Inc. a global IT Software Consultancy. During her ThoughtWorks career she has developed top quality software solutions for clients all over the world. She has been a trainer, developer, technical lead and coach during her time at ThoughtWorks. Molly is passionate about solving technical problems and helping others grow and learn software development. About Martin Fowler (ThoughtWorks): Martin is an author, speaker, consultant and self-described general loud-mouth on software development. He concentrates on designing enterprise software – looking at what makes a good design and what practices are needed to come up with good design. Fowler has been a pioneer of various topics around object-oriented technology and agile methods, and written several books including “Refactoring”, “UML Distilled”, “Patterns of Enterprise Application Architecture”, and “NoSQL Distilled”. For the last decade he’s worked at ThoughtWorks, what he considers a “really rather good” system delivery and consulting firm, and writes at http://martinfowler.com. For more information, visit: http://oreil.ly/1Cyt9nt Software architecture is a massive multidisciplinary subject, covering many roles and responsibilities, which makes it challenging to teach because so much context is required for every subject. It's also a fast-moving discipline, where entire suites of best practices become obsolete overnight. The O'Reilly Software Architecture Conference is a new event designed to provide the necessary professional training that software architects and aspiring software architects need to succeed. A unique event, it covers the full scope of a software architect's job, from IT to leadership and business skills. It also provides a forum for networking and hearing what other professionals have learned in real-world experiences. Stay Connected to O'Reilly Media by Email - http://goo.gl/YZSWbO Follow O'Reilly Media: http://plus.google.com/+oreillymedia https://www.facebook.com/OReilly https://twitter.com/OReillyMedia

Segments Timeline

1
0:02 - 0:21
0:18 duration74 words

Welcome to Agile Architecture

Molly Dishman and Martin Fowler kick off their keynote by welcoming attendees and setting the stage for a discussion on agile and architecture. They acknowledge the challenges of the weather and hint at the misconceptions surrounding agile practices, particularly regarding the role of architecture in software development.

"well good morning I'm so glad that you've made it up from the morning after St Patty's Day that wasn't a good choice was it no no um and to those from outside Boston Welcome to our Fair city um and yo..."

2
0:21 - 1:01
0:40 duration119 words

Defining Architecture in Agile

The speakers delve into the definition of architecture, emphasizing its importance in agile software development. They discuss the historical context of architecture's role in agile practices and outline the structure of their talk, which will cover both the conceptual and practical aspects of integrating architecture into agile teams.

"about agile and architecture and this is a topic that's um it's been a long running topic and that right from the very beginnings of the agile software movement there was a question of what kind of ro..."

3
1:01 - 1:43
0:41 duration109 words

The Nature of Architecture

Martin Fowler explores the complexities of defining architecture, noting its association with organization, planning, and structural elements. He shares his personal hesitance to use the term 'architecture' due to its often misunderstood implications in software development, particularly in larger organizations.

"architecture in the first place and in the second part we'll focus more on the question of how do you ensure that architecture is happening on your project so like Martin said agile as as a practice a..."

4
1:43 - 2:40
0:57 duration158 words

Hard-to-Change Elements

Fowler discusses the concept of 'hard-to-change' elements in architecture, referencing discussions from agile programming communities. He highlights the importance of understanding what constitutes architecture and how it relates to the challenges of change within software projects.

"architecture on a whole just as a definition it deals with organization planning having core structure structural elements but it's also a kind of troubling word um I've tended to actively avoid the w..."

5
2:40 - 3:44
1:03 duration175 words

Complexity and Irreversibility

The conversation shifts to the relationship between complexity and irreversibility in software architecture. Fowler references insights from lean manufacturing to illustrate how reducing irreversibility can simplify architectural decisions and enhance flexibility in agile environments.

"that might be expensive expensive in ways of money or or expensive in hard to change yeah and this actually goes to a a particularly memorable discussion about what the nature of Architecture is it wa..."

6
3:44 - 5:01
1:17 duration219 words

Application vs. Enterprise Architecture

Fowler clarifies the distinction between application architecture and enterprise architecture. He emphasizes the focus of their talk on application architecture, defining it in terms of codebases, functionality, and funding sources, while acknowledging the broader scope of enterprise architecture.

"reinforced really nicely by uh a fairly obscure talk that uh we saw in a again in an early XP conference by an Italian economist and he was primarily talking about lean manufacturing and some of the e..."

7
5:01 - 6:11
1:09 duration201 words

Agile Principles and Architecture

The speakers discuss how agile principles, particularly the emphasis on working software over documentation, impact architectural practices. They challenge the misconception that agile means no architecture, advocating for a more integrated approach that values both architecture and agile methodologies.

"different areas application and Enterprise and we want to be clear about what one we're going to talk about we want to focus on application architecture there are a lot more things that can go into En..."

8
6:11 - 7:30
1:19 duration188 words

Revising Traditional Architecture

Fowler critiques traditional waterfall architecture processes, suggesting that agile practices require a shift in how architecture is approached. He proposes a model where architecture is continuously revisited and adapted, rather than being a one-time phase in the development cycle.

"change so to do that we want to think a little bit about what is agile and some of the principles of the manifesto and then also how has archite architecture been done traditionally so first one of th..."

9
7:30 - 8:49
1:18 duration208 words

Collaboration in Agile Teams

The importance of collaboration within agile teams is highlighted as Fowler explains how roles in agile differ from traditional setups. He emphasizes that architects in agile environments are more integrated with development teams, fostering a collaborative approach to architecture and design.

"output so when you think about what agile is saying to say working software over documentation or what I think a lot of people interpret it as working software and no documentation kind of raises the ..."

10
8:49 - 10:03
1:14 duration210 words

Value of Architectural Outputs

Fowler discusses the value of architectural outputs in agile development, questioning the necessity of traditional design phases. He argues for a focus on the value these outputs provide and how they can adapt to changes in project requirements.

"they don't have much collaboration while in an agile team it's a much more close-knit I mean yes you will have somebody people who are taking an Architects role but they are much more a team lead with..."

11
10:03 - 12:28
2:24 duration384 words

Rethinking Architectural Metaphors

The keynote concludes with a discussion on the metaphor of architecture in software development. Fowler suggests that city planning may serve as a better analogy than traditional building architecture, emphasizing the need for a user-centered approach in software design.

"think about having an output and then moving on to the next phase and separate people then you have to think about what happens when you learn something else and something has to change so another pri..."

12
12:57 - 14:10
1:12 duration211 words

Continuous Attention to Architecture

Fowler shares insights from a past ThoughtWorks project, illustrating how a lack of architectural coherence can lead to complications. He stresses the importance of ongoing architectural oversight in agile projects to prevent chaos and ensure successful outcomes, likening it to the role of a city planner.

"metaphor for what software architecture is about so Martin introduced the talk as two parts we've talked a little bit about what is architecture but so if if if architecture is happening when you're w..."

13
14:10 - 15:39
1:29 duration230 words

Inception: Setting the Stage for Agile Projects

Dishman introduces the concept of 'Inception' in agile projects, where key stakeholders gather to discuss architecture early on. She highlights the shift in mindset needed from traditional approaches, advocating for early discussions about architectural concerns to prevent irreversible decisions later in the project.

"difficulties and so it is important to pay that continuous attention like the city planner to make sure that things are coherent so we want to take you through a few activities that we think are examp..."

14
15:39 - 17:28
1:48 duration378 words

Making Database Changes Reversible

Fowler recounts an innovative approach to database schema changes in agile projects, emphasizing the importance of making traditionally hard-to-change elements more flexible. He discusses the use of migrations to facilitate ongoing schema evolution, illustrating how this practice can alleviate architectural burdens.

"interesting shifts that you need to make when you think of things in terms of an agile context as opposed to the traditional one in the traditional context what do we do at the beginning of a project ..."

15
17:28 - 19:39
2:11 duration402 words

Consumer-Driven Contracts for Flexibility

Fowler explains the concept of consumer-driven contracts as a means to enhance flexibility in service-oriented architecture. He emphasizes the need to identify and address elements that are hard to change, advocating for techniques that allow for easier modifications to service contracts.

"migration and if you've used tools like liquibase or rails migrations or things like that you're familiar with how this scheme works now and in fact this is how we work on pretty much all our projects..."

16
19:39 - 21:43
2:03 duration345 words

The Importance of Shared Understanding

Dishman concludes by stressing that the architecture of a system is defined by the shared understanding among team members rather than static diagrams. She references Kent Beck's method of assessing team coherence through a simple test, highlighting the significance of communication and collaboration in agile architecture.

"with the next thing we wanted to talk about was stories in agile teams especially ours we write stories to break down function to break down functionality and deliver it incrementally the stories are ..."

17
21:52 - 22:54
1:02 duration158 words

Coherence in Team Architecture

Martin Fowler shares insights on the coherence of architectural understanding within a team. He recounts a test by Kent Beck, where team members describe the system using only four objects, illustrating the importance of shared mental models in software architecture.

"important place for architecture is it's in the heads of everybody who's taking part in it the other thing around stories or incrementally changing functionality that deals with architecture is is ack..."

18
22:54 - 24:44
1:49 duration290 words

Highlighting Exemplary Code Practices

Fowler discusses the significance of showcasing exemplary code practices within a team. He explains how highlighting well-implemented code can guide developers in their work, ensuring that best practices are followed and that poor implementations are not emulated.

"to be accessing the fluon num system go to this module over here that's an excellent example of how that should be done well people when they uh are writing code they often look to examples that curre..."

19
24:44 - 26:14
1:30 duration208 words

Collaboration Over Meetings

Molly Dishman emphasizes the importance of collaboration in agile projects, suggesting that effective communication can occur through various methods, including mob code reviews. She advocates for regular interactions among team members to foster a collaborative environment that enhances architectural decisions.

"thinking about how how we're implementing the code to solve these business problems is is important and it's important to help us not not step on our own toes later on by thinking about what kinds of ..."

20
26:14 - 28:30
2:15 duration484 words

Architectural Oversight in Agile Development

Fowler contrasts traditional waterfall methods with agile practices, stressing the need for architects to review code commits regularly. He argues that architects should ensure that the implemented code aligns with architectural designs, fostering a learning environment about what works and what doesn't.

"people but I think for the majority of people but collaboration isn't just a face Toof face stuff a lovely example of collaboration and and a role for an architect that uh I came across on one of our ..."

21
28:30 - 31:15
2:45 duration463 words

Visualizing Code Dependencies

Dishman shares a case study where a team used code analysis tools to visualize dependencies between modules. This collaborative effort allowed the team to identify and address architectural issues, demonstrating the importance of visual aids in understanding and improving software architecture.

"practice that technique was suggested to me as something that I could do when I first started as a tech lead at one of my projects and that was also done on a distributed team between Cincinnati Ohio ..."

22
31:57 - 34:11
2:13 duration361 words

The Two-Way Street of Architecture

Fowler emphasizes that architecture in agile teams is a collaborative effort, requiring input from developers, project managers, and external stakeholders. He discusses the importance of communication and shared responsibility in ensuring architectural integrity while adapting to changes in the project.

"finalize and tease and that kind of measure can be very useful not just because it's a collaborative effort of coming up with what do we want that future to look with but the fact that everybody is en..."

23
34:11 - 36:07
1:55 duration311 words

Embracing Change in Architecture

Molly Dishman highlights the evolving nature of software architecture, noting that many aspects are becoming easier to change. She discusses the importance of fostering an environment where architectural thinking is prioritized, and senior developers are given the time to focus on architecture amidst their other responsibilities.

"also participate on teams and utilize some of the practices that are happening already to gain that knowledge and help maybe draw those diagrams or communicate in the right ways by utilizing things th..."

24
36:07 - 38:10
2:02 duration400 words

Engaging with the Community

In the closing segment, Dishman and Fowler invite the audience to engage further with them at the ThoughtWorks booth and discuss ongoing architectural debates. They highlight the significance of community interaction in sharing knowledge and experiences related to agile architecture.

"lot of times particularly more senior developers get really overstressed and have to do a gazillion things at once you're discovering that glorious life at at Fort works now where there's so many diff..."

"Agile Architecture" - Molly Dishman & Martin Fowler Keynote — Martin Fowler | Searchlore