Coding the Architecture London User Group

Similar documents
Getting Started with Deliberate Practice

The open source development model has unique characteristics that make it in some

a) analyse sentences, so you know what s going on and how to use that information to help you find the answer.

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Virtually Anywhere Episodes 1 and 2. Teacher s Notes

Eduroam Support Clinics What are they?

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

UNDERSTANDING DECISION-MAKING IN RUGBY By. Dave Hadfield Sport Psychologist & Coaching Consultant Wellington and Hurricanes Rugby.

No Parent Left Behind

A Pumpkin Grows. Written by Linda D. Bullock and illustrated by Debby Fisher

The Foundations of Interpersonal Communication

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

What to Do When Conflict Happens

Hentai High School A Game Guide

The Indices Investigations Teacher s Notes

END TIMES Series Overview for Leaders

Disrupting Class: How Disruptive Innovation Will Change the Way the World Learns

Geo Risk Scan Getting grips on geotechnical risks

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

TUESDAYS/THURSDAYS, NOV. 11, 2014-FEB. 12, 2015 x COURSE NUMBER 6520 (1)

Team Dispersal. Some shaping ideas

Critical Thinking in Everyday Life: 9 Strategies

Effective Practice Briefings: Robert Sylwester 03 Page 1 of 12

Part I. Figuring out how English works

Introduction to CRC Cards

Fundraising 101 Introduction to Autism Speaks. An Orientation for New Hires

babysign 7 Answers to 7 frequently asked questions about how babysign can help you.

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

File # for photo

TotalLMS. Getting Started with SumTotal: Learner Mode

Executive Guide to Simulation for Health

A process by any other name

Launching GO 4 Schools as a whole school approach

Fearless Change -- Patterns for Introducing New Ideas

PreReading. Lateral Leadership. provided by MDI Management Development International

The Success Principles How to Get from Where You Are to Where You Want to Be

Genevieve L. Hartman, Ph.D.

Episode 97: The LSAT: Changes and Statistics with Nathan Fox of Fox LSAT

Kindergarten Lessons for Unit 7: On The Move Me on the Map By Joan Sweeney

Architecting Interaction Styles

P-4: Differentiate your plans to fit your students

How we look into complaints What happens when we investigate

PUBLIC SPEAKING: Some Thoughts

Red Flags of Conflict

Introduction 1 MBTI Basics 2 Decision-Making Applications 44 How to Get the Most out of This Booklet 6

How to get the most out of EuroSTAR 2013

Chapter 4 - Fractions

Get a Smart Start with Youth

Corporate learning: Blurring boundaries and breaking barriers

Susan Castillo Oral History Interview, June 17, 2014

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

IMGD Technical Game Development I: Iterative Development Techniques. by Robert W. Lindeman

UC Santa Cruz Graduate Research Symposium 2016

Executive Session: Brenda Edwards, Caddo Nation

Case study Norway case 1

SULLIVAN & CROMWELL LLP

Community Rhythms. Purpose/Overview NOTES. To understand the stages of community life and the strategic implications for moving communities

The Master Question-Asker

LEARNER VARIABILITY AND UNIVERSAL DESIGN FOR LEARNING

Decision-Focused Research for Association Executives

Ministry of Education, Republic of Palau Executive Summary

Hawai i Pacific University Sees Stellar Response Rates for Course Evaluations

Thinking Maps for Organizing Thinking

CORRECT YOUR ENGLISH ERRORS BY TIM COLLINS DOWNLOAD EBOOK : CORRECT YOUR ENGLISH ERRORS BY TIM COLLINS PDF

Outreach Connect User Manual

Total Knowledge Management. May 2002

The Strong Minimalist Thesis and Bounded Optimality

Three Crucial Questions about Target Audience Analysis

Occupational Therapy and Increasing independence

A Pipelined Approach for Iterative Software Process Model

Life and career planning

SMARTboard: The SMART Way To Engage Students

PRD Online

Cognitive Self- Regulation

MYCIN. The MYCIN Task

IN THIS UNIT YOU LEARN HOW TO: SPEAKING 1 Work in pairs. Discuss the questions. 2 Work with a new partner. Discuss the questions.

How To Take Control In Your Classroom And Put An End To Constant Fights And Arguments

Listening to your members: The member satisfaction survey. Presenter: Mary Beth Watt. Outline

How to make successful presentations in English Part 2

Promoting Active Learning in University Classes

Too busy doing the mission to take care of your Airmen? Think again...

Evidence-based Practice: A Workshop for Training Adult Basic Education, TANF and One Stop Practitioners and Program Administrators

Grades. From Your Friends at The MAILBOX

Reinventing College Physics for Biologists: Explicating an Epistemological Curriculum

How to organise Quality Events

A CONVERSATION WITH GERALD HINES

Sight Word Assessment

Getting a Sound Bite Across. Heather Long, MD ACMT Annual Scientific Meeting Clearwater, FL March 28, 2015

Running Head: STUDENT CENTRIC INTEGRATED TECHNOLOGY

ALL-IN-ONE MEETING GUIDE THE ECONOMICS OF WELL-BEING

Shared Portable Moodle Taking online learning offline to support disadvantaged students

COMMUNITY ENGAGEMENT

PROPOSED MERGER - RESPONSE TO PUBLIC CONSULTATION

Calculators in a Middle School Mathematics Classroom: Helpful or Harmful?

Deploying Agile Practices in Organizations: A Case Study

Welcome to the Purdue OWL. Where do I begin? General Strategies. Personalizing Proofreading

Susan K. Woodruff. instructional coaching scale: measuring the impact of coaching interactions

C O U R S E. Tools for Group Thinking

Android App Development for Beginners

MAILCOM Las Vegas. October 2-4, Senior Director, Proposal Management BrightKey, Inc.

Transcription:

Coding the Architecture London User Group Tuesday 4 th September 2007 1

codingthearchitecture.com Formerly thepragmaticarchitect.com. A site providing content for aspiring and experienced software architects. All of the contributors are practicing software architects, who primarily work within the finance and capital markets industry within the City of London. 2

The role of the software architect, rooted in realworld experiences. The majority of the content on the site revolves around the role of the software architect. All of the content is deeply rooted in real-world experiences. This isn t academic content it s us sharing our experiences, good and bad! 3

Community for aspiring and experience software architects. We ran a session called The Pragmatic Java Architect earlier in the year and from the feedback decided to launch a more regular user group/forum. Software architecture isn t necessarily hard, but it can seem a little mysterious at times, particularly if you re an aspiring architect. We want to bring some of our experiences to the table so that it can help you. At the same time, we d like to build a community for aspiring and experienced software architects. 4

Monthly meetings, with a mix of presentation and discussion. We d like to aim for monthly meetings with a mix of presentation and discussion. Some people like the former, some the latter. My hope is that the presentations will be thought provoking enough to spark some good discussion afterwards. We re definitely looking for other people to present if you have anything you want to talk about, please let us know. The most important thing here is that we re looking for people that are willing to share their experiences. 5

Future topics. Making the jump from developer to software architect. Coding and the role of a software architect. What do you capture in your software architecture document? Dealing with non-functional requirements. Real-world experiences with SOA. Agile architecture : How much is just enough? Hiring software architects. 6

The Implications of Architecting a Tactical Solution Simon Brown Tuesday 4 th September 2007 We re going to explore what a tactical solution is and how this affects the way that you approach the architecture and design. I don t have all of the answers; I can only share my experiences. My goal is to talk for less than 30 minutes and then we ll break for discussion. 7

we just need a quick, tactical solution Famous words that will strike fear into a software development team! In my experience, there s no such thing as a tactical solution? What this really means is 8

we need something built as quickly as possible and, although we think it will have a limited lifespan, it will more than likely remain in use for some time into the future Basically means : we want it now and it s going to be running for a long time! 9

Quick!= tactical. For me, the real stumbling block is that quick doesn t necessary mean tactical. Iterative, incremental and agile methods let you build something quickly, but you probably wouldn t describe the resulting solutions as tactical. No, tactical is about much more than the speed of delivery. 10

Tactical = interim. Firstly, I like to think of tactical solutions as being a stopgap before something bigger, better and more strategic comes along. It could also be a stopgap before a change in business process. It could also be a stopgap to help with a particular technical problem (e.g. a temporary feed between two systems while the a proper integration solution is being developed on either side). Tactical solutions might be part of a larger strategic roadmap, yet not be strategic themselves. Typically though, tactical solutions are unforeseen and not planned for. 11

Tactical = quick and dirty. When somebody asks for a tactical solution, they usually aren t looking for something elegant. Functional yes, but pretty, no. Quick and dirty is rather subjective. A Java webapp with no layering (data access in the JSPs) may appear quick and dirty to some people, but not others. Likewise, the same Java webapp with basic architectural layering may appear quick and dirty to people living in an SOA world, where architectural principles state that reuse should always be maximised. What would you define as quick and dirty? 12

Tactical = satisfies an immediate need. Tactical solutions are generally required because somebody has an immediate need and can t wait. A tactical solution might solve an urgent technical or business problem. Once the problem has been solved, it might never come back. 13

Tactical = limited lifespan. Tactical solutions are often said to have a limited lifespan. It ll only be running for 3 months. It ll be thrown away when the new strategic solution is delivered. We re planning to rewrite all of this anyway. Whether tactical solutions really do have a limited lifespan is questionable. Supporting tactical solutions can be hard. How many people here have worked on a tactical solution that exceeded it s expected lifespan? 14

Is there such a thing as a tactical solution? I m not really sure that there is such a thing as a tactical solution. One tactical solution we built was running for 1-2 years (original estimated lifespan was 3-6 months). We had to build something quick, in aggressive timescales, but it certainly didn t end up being a tactical solution. We ll come on to this at the end when I talk about what happens when you get it wrong. 15

Working software is a catalyst. One of the reasons that agile techniques work well is because working software is a catalyst for new ideas. On paper, a tactical solution looks exactly that tactical. But in real-life, it looks so much different. Oooh, wouldn t it be great if the system also did X? The system looks really good and I know that we can change the config via the database directly, but we are going to need a full web-based administration facility. Anybody ever shown mock-ups to a user where the response has been, that s excellent, when can it go live?. 16

Use the aggressive delivery timescales and limited lifespan to your advantage. Architecting a tactical solution is tricky. We usually have to balance everything and ensure the non-functionals are met; now we have aggressive delivery timescales and a limited lifespan thrown into the mix. But it s not all bad news - you can use these to your advantage and let them influence your architecture and design decisions. 17

Don t agonise over technology decisions. You probably don t have time. Do you have existing experience? Does the team have existing experience? If not, are you sure you want to carry additional risk of learning something new? If you really are under aggressive timescales, use this as a reason to use technology that might not normally be used approved. Are you confident? 18

Don t agonise over design decisions. Again, you probably don t have time. Is it fit for purpose? Will it meet the functional and non-functional requirements? It is easy to build and test? Does previous experience provide you with confidence that the design will work? Will the rest of the team understand it? 19

Do the simplest thing that could possibly work, and then stop. An agile principle that is very applicable to designing a tactical solution. We re not talking elegance, we re talking simplicity. Take a back to basics approach. Make everything as easy as possible : to design, to build, to test, to deploy, to support. Don t use a complicated technology stack that you aren t familiar with. Likewise, don t use a complicated design that you aren t confident will work. 20

Be explicit. Be explicit about what the system will and won t do. Aside from any contractual requirements, being open and explicit makes everybody make informed decisions about what they are getting. As usual, make sure any assumptions you are working to are explicit. 21

Tactical solutions represent larger trade-offs. You might trade-off extreme performance and scalability for a simple object/data model that is easy to work with. Understand the implications of the trade-offs you are making, make sure everybody else understands them and, again, be explicit. Say what the system will and won t do. State the trade-offs and their limitations to allow others to make informed decisions. 22

A limited system lifespan provides limited boundaries. A limited system lifespan typically provides boundaries for the key NFRs, so take advantage of this. Work out those boundaries and architect the system to meet them (plus a bit more for safety). If the system will only be live for 3 months, it should be easy to work out how many users/data/etc the system will need to cope with. Normal systems usually allow for 10x growth, or growth over an X year period. Take advantage of the fact that tactical solutions have a limited growth. Do you really need a true horizontally scalable system given that the system will only be in use for 6 months and will support 20 concurrent users? 23

Tactical solutions are easy to get wrong. Don't think tactical solutions are easy to design/build - just like any other solution, they are easy to get wrong. I've learnt the hard way. One of my projects was widely acknowledged to be a stopgap prior to something bigger and better happening. Was hard to agree non-functional boundaries (particularly around performance and scalability) and I didn't make a point of getting to the bottom of these. A few months later, we were called back because the system wasn't performing The business rules in our system were data driven and shared with another system. Our system had never been tested against the new data. 24

Don t ignore the non-functional requirements because it s only a tactical solution. Targets should have been made explicit rather than being ignored because it was "a tactical solution. We didn't explicitly say that a change in the data defining the business rules may change the non-functional characteristics of the system. We didn't give this much thought given the aggressive timescales and limited lifespan of the system. 25

In summary keep it simple, be explicit and use the characteristics of a tactical solution to your advantage. Tactical solutions aren t that much different to regular solutions, but they do provide some benefits. Keep it simple and be explicit. 26