Skip to main content

Design and Architecture

Concurrent Sessions

AW2 Data-Driven Software Engineering for Agile Teams
Viktor Veis, Microsoft
Wed, 11/11/2015 - 11:30am

Remember the old days when software engineering teams used to tune software until it passed quality gates, gave golden bits to marketing, and finally threw a big release party? The world was simple, and writing code that worked according to a specification was enough to be a star developer. Viktor Veis says that world has changed. Software now often dials back home to record information about its usage and health. This telemetry flows back to engineering teams who are accountable for making sense out of this data. This is a fundamental shift in the software engineer role. Teams who can leverage data-driven engineering will delight customers by learning more about customers than they know about themselves. Teams who ignore data-driven engineering will continue based on assumptions and eventually lose competitive nerve. Join Viktor to learn how to start data-driven engineering today. Discover a practical approach that sometimes deviates from classical data science but is easy to learn and apply.

Read more
AW6 Overcome the Challenges of Test-Driven Development
Adam Satterfield, Bettercloud
Wed, 11/11/2015 - 1:30pm

Test-driven development (TDD) is a powerful agile methodology that organizations both large and small can leverage to achieve consensus, collaboration, and quality. Based on his organization's experience with implementing TDD and the feedback he has received from other organizations, Adam Satterfield shares some of the top challenges of implementing TDD—insufficient information for foundation of tests, tests take too long to run, TDD is too difficult to get up and running, and it is the tester’s job to find defects. You can overcome these challenges by creating solid acceptance criteria and tests, organizing tests by separating them into unit and integration tests, creating a test first mentality, and increasing collaboration during sprint planning. Whether creating TDD tests in Java, Groovy, or Python, you can successfully implement TDD in your organization by following several core principles of agile development. All code examples are in Python and Django.

Read more
AW15 Architecture vs. Design vs. Agile: What’s the Answer?
Anthony Crain, Blue Agility
Wed, 11/11/2015 - 4:15pm

Is architecture the same as preliminary design in agile? It shouldn't be. Do we do architecture up front, then do iterative development after the architecture is done? That is edging back toward waterfall. Can you explain the purpose of the architecture in just two or three statements? Anthony Crain says that when he asks that question, he gets either verbose answers or blank stares. So Anthony shares an elegantly simple two bullet explanation of what an architecture does. Explore the models architects and designers should produce and learn why the models are so important to keep separate. Understand why it is vital to separate functional from nonfunctional requirements and how this affects architecture, design, and even code and test. Explore what a conceptual architectural model should look like vs. a physical one, and for the conceptual design model vs. a physical one—and the timing of all four models. Finally, explore the impact of iterative development on architecture.

Read more