Agile Architecture Itera Group Kiev Johannes Brodwall, Chief scientist Exilesoft Global.

Slides:



Advertisements
Similar presentations
The Website Its Magical May How to Use the Cool Cities Website.
Advertisements

Travel and Expense Management Scenario Overview
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Creating the Ultimate Online Customer-Service Experience Stefan Beeli, Vice President ESP Computer Services Choosing the proper level of Technology A look.
Business Development Suit Presented by Thomas Mathews.
OfficeTrack Mobile Employees Location Management Service.
Fox Scientific, Inc. ONLINE ORDERING 101. Welcome to our website On our main page you can find current promotions, the vendors we offer, technical references.
Extreme Planning: Agile turned to the max Exilesoft Johannes Brodwall Exilesoft Chief
Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.
Copyright © 2005 EFT Network, Inc. All Rights Reserved. Automated Recurring Payments Flexible Payment Solution.
Taylor-Made Reservations Conference and Lodging Registration Services.
Travel and Expense Management Scenario Overview
This workshop will provide attendees with a foundation knowledge of Facebook and Twitter and some examples of what can be achieved through implementing.
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Sept 2011 Mobile Messaging Solutions ICE. Mobile Sdn Bhd (By Yaw Mei)
Rainbow Sprint Plan Smidig 2012 Johannes Brodwall, Chief scientist Exilesoft.
Broadcast service Core tools. Agenda 1.Introduction – tool and its main features 2.Setting up and sending a simple broadcast 3.Achieving.
Live. Interactive. Timely. Be a provider of ideas and solutions…
PRODUCT FOCUS 3/31/14 – 4/11/14 INTRODUCTION Our Product Focus for the next two weeks is Microsoft’s Lync. Over 70% of the Fortune 500 have adopted Lync.
CFESA Global Trade Davis Business Solutions is a proud sponsor of your 2009 Fall Conference.
VIBRANT MEDIA Online Marketing & Event Administration Solutions 11 March 2009.
Fusion GPS Externalization Pilot Training 1/5/2011 Lydia M. Naylor Research Lead.
Trimble Connected Community
Show Car Event Management Solution PeoplePlus Copyright PeoplePlus Software 2011.
Dineshwari Byrappa Nagraj Rashi Gupta Shreya Modi Swati Satija Magesh Panchanathan.
Activating your Account and Profile Creation From the MNSCU Site Login Page, Click the Link Create a New.
Johannes Brodwall Getting your project off the ground.
Rational Unified Process (Part 1) CS3300 Fall 2015.
Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief Guest starring: Niruka Ruhunage.
Johannes Brodwall Getting your project off the ground.
LOGO 1 Club League Management Software Our software was designed from hands on experience. Our staff has worked with soccer clubs similar to yours not.
STEALTH TRACKER STEALTH TR STEALTH TRACKER Agenda: Review MyMajors Stealth Tracker Combined workflow Tracker results & stats Mobile App Questions MOBILE.
Extreme Planning: Agile turned to the max DevDay.LK Johannes
Author Instructions How to upload Abstracts and Sessions to the Paper Management System.
FITT Fostering Interregional Exchange in ICT Technology Transfer Communication & Collaboration Tools.
Upload your final deck on the speaker portal on or before June 20, 2013 at 5:00 pm PT. PowerPoint presentations undergo a brief scrub process and are.
TROPICAL AGILE Johannes Brodwall. “How long will it take to drive to Chicago”
UML Mars UML DIAGRAM 2 Interaction Component Sequences Class Tools: Sticky notes and flipcharts PlantUML through
Using the Right Method to Collect Information IW233 Amanda Murphy.
A Day of technology Improving upon your technology skills Giving every child the opportunity to learn in a robust digital environment everyday. making.
Registration Solutions for your Event Management.
Choose Your Hosting Plan Carefully By: Alphasandesh.comAlphasandesh.com.
-booting Project Management Process to make it more Simple and Sensible.
A Volunteer Supervisor’s Guide to Volunteer Connection a modern, online volunteer management solution.
 SAP AG 2007, SAP CSUN 2007 Conference Presentation / 1 Presented by Team “Call of Duty” 29 th April 2010 CS 6361, University of Texas At Dallas.
Author Instructions How to upload Abstracts and Sessions to the Paper Management System.
Johannes Brodwall Chief Scientist Smidig arkitektur.
Advancing Government through Collaboration, Education and Action Website Release Plan Presented to: Website Advisory Committee September 10, 2014.
07 Prof. Garzotto HCI Final project Reporting & Delivery Specs.
Program Assessment User Session Experts (PAUSE) Information Sessions: RSS & Subscription Services October , 2006.
Laymen’s Guide to Lead Generation through Content Marketing Chris Wilson
Integration – Powerful Connections Made Easy Mike Tenholder, SMMC Senior Sales Engineer Melissa Lombardi Marketing Associate V2.4, August 2015.
Why Your Club Needs a Website Why a Website is Important, and What it Does for You B. R. Mullikin 4/16/16.
Tech Tuesday: Facebook 101 People’s Resource Center January 26, 2016.
Best SMS Gateway Software Provider Company in India By Aruhat Technologies.
Agile CRM Applying the Scrum Methodology for Deployment Neil Benson.
ClubRunner Website Capabilities Presentation for District 5790 District Assembly April 16, 2016.
App&Web Multikanalmarketing GmbH. APP&WEB EVENT 2.
 Company Profile  Overview  Modules & Features  Success Stories  Contact Details Agenda.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Talks! Acteva: Event Management Made Easy September 17, 2009 Audio is only available by calling this number: Conference Call: ; Access Code:
What is Dental-Cal? Global, multilingual, free to use dental event calendar Target group: Dentists, Dental Technicians, Dental Assistants.
Online Event Organizing Company Managemant System
Sales & Marketing Funnels
CS 577b: Software Engineering II
Seminar CS2310 Multimedia Software Engineering Krithika Ganesh
PowerApps and Flow.
How to manage Requirements?
Presentation transcript:

Agile Architecture Itera Group Kiev Johannes Brodwall, Chief scientist Exilesoft Global

What is an architect? From greek Arkhi-Tecton Tecton: Builder Arkhi: Chief. Like “Arch angel” Or “Arch villain”

What is an architect? “Chief builder”

What is an architect? (Exilesoft definition)

A solution architect is someone who understands the problem of the customer and uncovers and communicates a feasible solution

A solution architect is someone who understands the customer’s problem (including contraints, context, domain knowledge) and uncovers (though a team effort) and communicates (with credibility) a feasible solution (primarily, but not exclusively technical)

Uncover problem vision, stakeholders, usage flow Describe problem context and domain model Describe solution deployment, implementation model Simplify architecture feature oriented structure Deliver software rainbow plans

Describing architecture Simplifying architecture Delivering architecture Delivering software Delivering architecture

Part I:

Describing architecture

Understanding problem Uncovering solution Communicating architecture

Understanding the problem

(Tool time)

For some stakeholder Who has a responsibility The Itera architecture community Is a type of activity Which gives a capability. Unlike most relevant alternative This has a distinguishing attribute.

For __________________ Who ________________ The _________________ Is a _________________ Which ________________. Unlike ______________________ This _______________________.

Participant? Who are they? What do they do? Why do they care? ??? Description Duties Values ??? Description Duties Values

Example «Smidig» conference application

Example vision statement

For Agile practitioners Who need to expand on their experience and network The Smidig conference Is a networking event Which connects you with other Agile practitioners. Unlike traditional conferences This presents the experience of many people through lightning talks.

For Conference organizers Who want to organize a good conference The Smidig conference app Is a web application Which eliminates unnecessary work. Unlike commercial conference apps This is optimized for the large number of talks we have and allows us to make changes fast.

Example stakeholders

Speaker Description Experienced New speaker Passionate Duties Register talk Upload slide Give talk Values Constructive feedback on talk Easy CfP Fast answer Attendee Description Knows about agile Works in project Norwegian Duties Pay for conference Get approval to go Values Easy registration Organizer Description Volunteer Works in evenings Has network Duties Select talks Follow up payments Values Easy selection process Good information overview Never lose a participant Financial transparency

Sponsor Description Busy Manager Not very interested Duties Provide logo Pay sponsorship Values Informal communication Easy evaluation

Example usage flow

Attendance 1.Agile project practitioner wants to learn 2.Attendee goes to Smidig website 3.Attendee registers 4.Attendee pays 5.Attendee receives confirmation mail 6.Organizer can see the registration 7.Organizer sends reminder to attendee to come 8.Organizer prints badges for attendees 9.Attendee shows up at Smidig and has an excellent time

Speaker 1.Agile experts wants to share knowledge 2.Potential speaker goes to Smidig website 3.Potential speaker registers personal info 4.Potential speaker registers talk 5.Potential speaker receives registration confirmation 6.Organizer sees registered talk and can market speaking opportunities 7.Organizer accepts talk for confence 8.Speaker receives acceptance –Alternative: Speaker withdraws talk – organizer updates the talk and selects another 9.Organizer prints badges for speakers 10.Speaker shows up at Smidig and gives talk

/Understanding the problem

Uncovering a solution

Example context model

Smidig2011.no Participant Speaker Organizer Printing company Paypal

Example domain model

User Name Company Phone Password Accepts ? Registration Ticket type Price Paid amount Paypal ref Payment date Invoice address [optional] Talk Title Description Tags[] Slide file Status : {pending, accept, reject} _sent Position Speaker * * Comment Title Text Created date * * Period Stage Title Time of day Day

Example deployment model

Heroku Smtp.dreamhost.com Paypal PostgreSQL Smidig- conference (Rails) Web userDeveloper smidigdb git.herokugithub git push git pull html/http http smtp

Example implementation diagram

Router Controller 1. Find controller 2. Dispatch action Model class 3. Find model Model 4. Manipulate model 5.? Save model Database View template 6. Render model with view template

Router /app/controllers UsersController 1. Find UserController 2. update(id) / app/models User class 3. find(id) app/models User 5. update_attr(params) 6. save Database 8. Redirect /users/ POST /users/ 4. SELECT … FROM users 7. UPDATE users SET …

Router /app/controllers UsersController 1. Find UsersController 2. show(id) /app/models User class 3. find(id) User Database /app/views/users show.html.erb 5. Render GET /users/ 4. SELECT … FROM users 6. Get attributes

Alternative

BrowserSmidig2012.no Paypal.com 1. POST /users 2. Redirect to paypal with return_url and notify_url 3. Perform payment 4. POST /payment_notifications 5. Redirect to return_url 5. GET /user/ Update user info Show user info Save user info

/Uncovering a solution

Communicating a solution

Vision Stakeholders Usage flow Context Domain model Implementation Deployment

Does the architect have to do this herself?

Team effort

/Communicating a solution

/Describing architecture

Part II:

Simplifying architecture

Lasagna architecture Feature oriented architecture Deployment constraints

Lasagna architecture

Person- Controller Person- Controller- Impl Person- Service Person- ServiceImpl Person- Repository Impl Person- Repository Impl PersonDao Impl PersonDao Impl Session- Factory

Controllers Services Managers Workers Repositories

Controllers Services Managers Workers Repositories DTO Domain Mapping

Customer Invoice Order Product

Tidying up art (Ursus Wehrli)

Feature oriented architecture

Coherence What changes together lives together

Tolerance What should be different can be different

Meaning What is central in domain is central in code

Your thinking is contrained by technology fashion:

Controllers Services Managers Workers Repositories DTO Domain Mapping

Your solution is constrained by deployment

Web Application Web user Database Browser JSON/http Web Service SOAP Web Service Service Consumer DTO? DTO Controller

Web Application Web user html/http Database Controller DAO

Web Application Web user html/http Database Reverse proxy html/http Controller DAO

Web Application Web user Database Browser JSON/http DTO? Controller DAO

Web Application Web user Database Rich client Web service DTO Service Consumer Controller

Web Application Web user Database Rich client Objects over http DTO Controller

Web Application Web user Database Browser JSON/http Web Service SOAP Service Consumer DTO? DTO External client Controller DAO

Web Application Web user Database Browser JSON/http Service External client DTO Controller DAO

/Simplifying architecture

Part III:

Delivering software

Common sprint problems Demo driven development Rainbow plans

Common Sprint problems

User stories without context

Every feature must be perfect at first try

Users don’t understand the demo

One-sentence Scrum

We demonstrate progress at regular intervals

It’s all about the demo

We demonstrate progress at regular intervals

Progress towards what?

Usage flow 1.Something happens in the real world 2.The event is communicated to the system 3.The system does something 4.Someone does something with the system 5.… 6.… 7.… 8.… 9.… 10.Some goal is achieved

Rainbow plan

Usage flow: frugalflights.com 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

What would you do in Sprint 1?

Usage flow: frugalflights.com 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 1: Walking skeleton 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 2: SMS support 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 3: Complete workflow 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 4: Complete SMS 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 5: Web pages 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 7: Integration 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

Sprint 8: Spit-and-polish 1.A customer wants cheap vacations 2.The customer signs up for daily or weekly notifications of special flight offers 3.Periodically the System checks which customers should get notifications 4.The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system 5.The System notifies customer of any matching offers via SMS Variation: The System notifies customer of any matching offers via 6.The customer accepts the offer via SMS 1.Variation: The customer accepts the offer on the system website 7.The System books the tickets on behalf of the customer 8.The system confirms the booking by sending an SMS to the customer 9.The customer can at any point see their active offers and accepted offers on the system website 10.The customer enjoys a cheap vacation!

/Delivering software

Conclusion:

Travel light – 7 perspectives Domain oriented architecture Sprint with a (rainbow) plan

What’s the common theme?

Usage flow

Good architecture comes from understanding usage

Thank you Vision Stakeholders Usage flows – rainbow plans Context Domain (Simple) Deployment (Feature oriented) implementation