The precision blade

Software

alberto-brandolini
of 111
Description
Text
  • DDD EUROPE PRESENTS…
  • A @ZIOBRANDO PRODUCTION
  • IN THE LAST EPISODES…
  • NOBODY TALKS ABOUT THEIR DOMAIN
  • WHO CAN BE THAT STUPID?
  • ABOUT ME • Started coding in 1982 • Entered DDD in 2005 • Met Eric • Started Avanscoperta • Met Greg • Event-Based Modelling in 2012 • Blast during Vaughn’s tour • EventStorming in 2013 • Started EventStormers community • 348 members (on Google+)
  • SOFTWARE DEVELOPMENT IS A LEARNING PROCESS
  • WORKING CODE IS A SIDE EFFECT
  • I USE INSTEAD
  • INVITE THE RIGHT PEOPLE PEOPLE WITH QUESTIONS PEOPLE WITH ANSWERS A FACILITATOR
  • PROVIDE AN UNLIMITED MODELLING SURFACE “ AND BE PREPARED TO EXPAND IT
  • MODEL WITH DOMAIN EVENTS ALONG A TIMELINE “
  • REALLY SIMPLE
  • THEN IT GROWS…
  • (EXTERNAL SYSTEMS, IN PINK) AND GROWS…
  • (HOTSPOTS, IN PURPLE) AND GROWS…
  • THE GOAL(S) OF A BIG PICTURE EVENTSTORMING
  • 1. ARE WE SOLVING THE RIGHT PROBLEM?
  • ARE WE SOLVING THE RIGHT PROBLEM? CALL IT “CORE”, CALL IT “BOTTLENECK”… … PEOPLE WILL “TELL” YOU WHAT THE REAL PROBLEM IS AND PLEASE READ “THE GOAL” IF YOU HAVEN’T
  • DOES IT MATTER?
  • WHERE DETAILS ARE MAKING A DIFFERENCE… IN THE CORE DOMAIN… • Creative • Always looking for alternatives • Continuously refining solutions • Perfectionist
  • IN A FIXED-BUDGET NON-CRITICAL PART OF THE DOMAIN SOMEWHERE ELSE • Creative • Always looking for alternatives • Continuously refining solutions • Perfectionist TROUBLEMAKER
  • 2. CAN WE SUCCEED?
  • MAKING THE RISK OBSERVABLE EXTERNAL SYSTEMS & HOTSPOTS PEOPLE AND POLITICS
  • IS MY WALKING SKELETON
  • NOT EVERY BATTLE IS WORTH FIGHTING OUTCOMES • We’re on a problem worth solving: • let’s prototype a solution right now!! • Ouch! …the real problem is somewhere else. • Fine, let’s use the money more wisely. • Ouch! …they can’t even agree on the problem… • Shake hands, smile, and leave quietly.
  • LET’S ASSUME WE’RE LUCKY
  • OUR BACKLOG
  • • The involved Domain Experts • The Development Team (including UX) • a Facilitator • Unlimited Modelling Space • Unlimited Surface • Unlimited Supply of markers, stickies and so on • We’ll have only to take care of our limited Energy. OUR TEAM
  • TECHNICAL TRAININGS OUR SAMPLE DOMAIN • My Company —> We have a real domain expert here… • Public & Private Training and workshops, (plus coaching &mentoring).
  • HOW DID WE GET THERE?
  • MORE GUESSING THAN EXPLANATION
  • IT’S A LEARNING PROCESS!
  • SKIP THE BORING PARTS IF THERE’S TIME: THE REAL REASON WHY I AM NOT A PIANO PLAYER!
  • DONEC QUIS NUNC
  • LET’S TRY AGAIN!
  • A TICKET!
  • AND THE CORRESPONDING COMMANDS
  • ANY CANDIDATE NAMES…
  • WHAT IF SOMEBODY DOESN’T SHOW UP?
  • ANYTHING ELSE?
  • GETTING THERE…
  • • Can we transfer it? • Good question. In fact this never happen with individual purchases, they usually ask for a refund, or if they can reuse the ticket with a different edition of the same training class. • What can happen instead is companies, buying a group ticket, asking to switch people, or delaying actual participant names till he very last moment.
  • • Can we transfer it? • Good question. In fact this never happens with individual purchases, they usually ask for a refund, or if they can reuse the ticket with a different edition of the same training class. • What can happen instead is companies, buying a group ticket, asking to switch people, or delaying actual participant names till he very last moment.
  • I LOVE THIS MESS! CAPTURE IT! ALL OF IT. YES, EVEN IF IT MEANS A LOT MORE STICKY NOTES
  • ADD MORE SPACE!
  • — Anonymous WHAT IF TICKET IS AN ABSTRACT CLASS? WITH INDIVIDUAL AND GROUP TICKET AS SEPARATE SUBCLASSES ” “
  • … WE INVITED THE RIGHT PEOPLE!
  • • There’s no need for any automatic operation. It only happened once. Doing it manually (whatever that means) is fine.
  • • Talking with the right people, we might get the answers we like. • The complexity is in the domain, it’s just not necessarily worth implementing.
  • 1. MAKE IT VISIBLE 2. SAFELY IGNORE IT
  • — Anonymous Developer WHAT ABOUT PRIVATE CLASSES? AREN’T THEY THE SAME THING ” “
  • THINKING ABOUT DATA… Headline Description Duration Trainer City Date Venue Headline Description Duration Trainer PRIVATE PUBLIC
  • THINKING ABOUT BEHAVIOUR… Scheduled Base Price defined Sales Opened Confirmed Cancelled Sold out Delivered Replanned Planned Signed off Scheduled Delivered PRIVATE PUBLIC NOT ALIKE
  • TWO INDEPENDENT PROCESSES IN SALES BASICALLY THE SAME PROCESS, IN CONTENT DEFINITION
  • MAYBE THEY DO BELONG SOMEWHERE… WHAT ABOUT SEATS
  • EXPLORING THE RELATIONSHIP
  • THERE’S SOMETHING MISSING
  • POLICY IS A GOOD NAME FOR IT BUT YOU CAN FIND ALSO “PROCESS” OR “THE WHENEVER BOX”
  • DO WE REALLY NEED THAT? LET’S ASK THE DOMAIN EXPERT • Aren’t they the same thing? • Not at all. We need to add the trainer to the participants. Room capacity and coffee breaks plus lunch are based on the total number of people in the class. • Moreover: the trainer might bring a co-trainer, the company can have an internal person in the class, or there can be “guests” that are not passing through the ticketing system. • We’re currently creating “fake tickets” for everybody in order to have all participants in the same container, but one single mistake and everything fall apart.
  • (ET VOILÀ) INDEPENDENT MODELS! TRAINERS DON’T NEED TO BUY A TICKET EVERYONE IN THE TRAINING ROOM DESERVES SOME GOOD COFFEE, AND A GOOD LUNCH
  • — Ziobrando IN A RESTAURANT, IF YOU’RE THE TRAINER, YOU GET EXACTLY THE SAME FOOD ” “
  • ISN’T THAT TOO COMPLEX?
  • MORE PRECISELY
  • DO WE HAVE TO IMPLEMENT IT? BOUNDED CONTEXTS ARE HEAVY… ?
  • IT DEPENDS…
  • UNDERSTANDING THE PROBLEM MUST BE CHEAP
  • A PROPER IMPLEMENTATION IS VALUE VS COST
  • ARE WE IN THE CORE?
  • NO. THE REAL PROBLEM IS… DAMN, WE WERE JUST WANDERING…
  • (A) REAL PROBLEM • We were stuck in go/no-go decisions • Collaborators didn’t know whether to cancel or confirm the class • I needed to explain my decision making process.
  • “WHAT IS THE DATA NEEDED IN ORDER TO TAKE THIS DECISION?”
  • THIS IS SCARY HOW MANY AGGREGATES SHOULD I QUERY?
  • ENTER READ MODELS
  • SO MANY WAYS HOW CAN WE IMPLEMENT IT? • Projections • Composite UIs (including mashups) • Denormalisation • Good old queries (not forbidden, just uncool)
  • WE MOVED THE BOTTLENECK!!
  • NOW, THE REAL PROBLEM IS…
  • WE DON’T SELL ENOUGH • Some training class are good, but not appealing • Users don’t take the BUY TICKET decision.
  • “WHAT IS THE DATA NEEDED IN ORDER TO TAKE THIS DECISION?”
  • NOT THAT SIMPLE…
  • THIS IS A PIZZA. IT IS FOOD, THAT PROVIDES THE CALORIES AND THE ENERGY YOU NEED IN ORDER TO SURVIVE TILL THE NEXT MEAL. IT IS AVAILABLE IN SEVERAL SIZES AND TOPPINGS. CONTACT US IF YOU WANT TO KNOW MORE.
  • Order now! Feeling hungry?
  • IT’S NOT ONLY THE DATA…
  • USERS AREN’T ONLY RATIONAL DID ANYONE NOTICE THAT I MENTION THE UX PEOPLE?
  • AND IT’S NOT THE SAME DATA
  • HIS OWN MONEY, KNOWS THE STUFF. COMPANY MONEY. NEEDS PERMISSION. COMPANY MONEY. CALENDAR IS IMPORTANT. NEED SAFETY AND DISCOUNTS.
  • OUCH! WHY CAN’T ANYTHING JUST BE SIMPLE?
  • CHOOSE A TARGET, AND RUN AN EXPERIMENT.
  • IT’S ABOUT THE QUESTIONS, NOT THE NOTATION
  • WE’RE MODELLING A FLOW OF DECISIONS
  • WE’LL HAVE TONS OF IDEAS
  • NOT ALL OF THEM WORTH PURSUING
  • MOSTLY UX DRIVEN EXPLORATION MAKING SENSE OF DATA, FROM TRIVIAL TO BI, TO BIG DATA TRADITIONAL SOFTWARE ARCHITECT’S REALM THANKS TO GREG’S SQUIRREL ;-)
  • THE GOAL IS NOT TO WRITE COOL SOFTWARE
  • THE GOAL IS TO SOLVE THE RIGHT PROBLEM IMPACT MAPPING - NO ESTIMATES - USER STORY MAPPING
  • KEEP THE MODELS SIMPLE
  • CAN’T ACHIEVE SIMPLICITY WITHOUT DIVING INTO CHAOS
  • KEEP THE PROBLEMS SIMPLE
  • MODELLING THE FLOW WITHIN THE SPACE CONSTRAINTS THIS IS THE ACCIDENTAL SELF-INFLICTED COMPLEXITY NOBODY WILL PAY YOU FOR
  • THANK YOU!
  • WANT TO KNOW MORE? • Really fresh: www.eventstorming.com • LeanPub book in progress: • http://leanpub.com/ introducing_eventstorming • Blog: http://ziobrando.blogspot.com • Twitter: @ziobrando • Trainings & Workshop facilitation: • http://www.avanscoperta.it http://www.eventstorming.com http://leanpub.com/introducing_eventstorming http://ziobrando.blogspot.com http://www.avanscoperta.it
Comments
Top