lets focus on business value

Download Lets focus on business value

If you can't read please download the document

Upload: einar-ingebrigtsen

Post on 14-May-2015

258 views

Category:

Documents


0 download

DESCRIPTION

A talk I presented at vNext Orange County, 25th of February 2013 about the importance of delivering business value and how you as a developer can much easier meet the requirements of the end user by applying practices like DDD and utilizing things like CQRS and MVVM to help decouple your software and focus better.

TRANSCRIPT

  • 1.Lets focus on business value Power point template byColin Eberhardt

2. AgendaHow to focus on business valueDomain Driven DesignConcrete patterns; CQRS, MVVMBifrost an open-source framework to cover it all 3. Who am I Einar Ingebrigtsen @einari [email protected]_//www.dolittle.comhttp://blog.dolittle.com http://www.ingebrigtsen.info 4. StatisticsSoftware projects2009:- 32% successful- 24% failed- 44% challenged2004: - Cancelled projects cost $55 Billion Annually http://www.projectsmart.co.uk/docs/chaos-report.pdf 5. Statisticshttp://www.typemock.com/blog/2012/07/18/the-severity-of-bugs-are-we-doomed/ 6. What are we getting paid to do?Use the most fancy technology out there C# 5.0, Roslyn, F#, TPL, ASP.net MVC 3, SignalR, RavenDBJoin the alpha geek crew and use all thelatest buzz words and create an architecturearound that showcase our technical skills? 7. What is business value? The short answerHelping the business achieve its objectives Faster Simpler Cheaper Better More 8. Why is this hard to do?Developers dont understand what thebusiness needsThe Business doesnt understand what thebusiness needs 9. Why is this hard to do?Even if we do understand what they want,we cant build it because of ... RaceEager conditionsTransactions LoggingSerialization PerformanceloadingLazy CachingMappingAuditing Concurrency Stalenessloading 10. Why is this hard to do?If somehow weve managed to get ourinfrastructure in place and give the business what it needs, its TOO LATE! Legal NewMarketChangesPriorities Changes New New AcquisitionsRequirements Competitor 11. Be agile!Not just in terms of process (Scrum, Kanban, XP)We need to be able to change decisions priorities CODE!! 12. Understand who your user is 13. Feedback loopTalk to users regularlyTest TDD / BDD Executable Specifications Testers 14. Please fail!Fail regularly and fail fastBe Agile and really iterateBe honest! 15. Domain Driven DesignFocus on the core domainCreative collaboration between domainexperts and software practitionersCreate a common language and commonunderstanding of the domain 16. Domain Driven DesignBuilding blocks Aggregate Roots Value Objects Services Repositories Entities and more 17. Bounded ContextsDifferent representations in differentcontexts 18. Bounded Contexts - Shopping 19. Bounded Contexts Shift ManagementEmployee Plays a central role identified by Social Security NumberSubstitute It refers to the Employee by concept, but we do not need its address only its availability and possibly its name for display purposes 20. DecouplingApplication Level Make many applicationsUnit Level Interchangeable componentsNew Code Velocity 21. The opposite of decouplingDRY Dont Repeat YourselfUse of concrete implementations 22. Single Responsibility PrincipleTypes represent one thingMethods do only one thingBe fine grained and clearEasier to name 23. CQRSClient Command Queries DomainEvent Handlers Publish Persist UpdateDomain PersistenceRead Model 24. CommandExpresses what should happenShould express intent AddItem- / AddAccessory- ToCart - maps to AddProduct() on the AggregateRoot 25. EventSourceThe source of eventsThe place that events originate from 26. Aggregate RootHolds only internal state, if needed - nopublic stateExposes behavior as methods 27. EventRepresents the truth in the system; ... thisis what happened...Simple DTO with primitive properties only! 28. MVVMModel Get from server ViewObservesObservable ViewModel 29. bifrost 30. BifrostFull end to end framework for line-of-business application developmentPromotes good practices such as CQRS,MVVM through high focus on DDDYou dont need the entire thing, but will getbenefits for every component you add 31. BifrostOur motivation A platform for us to build LOB applications on Make us focus on delivering business value Easy to use, hard to use wrong It just works! 32. BifrostClient focus JavaScript ASP.net Single Page Applications Web in general Silverlight WinRT (Experimental) 33. BifrostBackend CQRS Cloud scaleRealtime applications Clients persistently connected to the server 34. Bifrost - Architecture ClientResult that affectQueries and Invoke Behavior Results /Read Models Meta Data ServerQueriesDomainRead Models Meta Data 35. CQRS Bifrost StyleClient CommandCommand CoordinatorCommandHandler(s)Aggregate Root Read Model Event Subscriber(s) EventsEventStore 36. User storyPersona: Hannah Works with human resources, she is responsible for hiring of permanent employees but also for finding substitutes when people are on sick leavesAs Hannah I need to be able to quicklyregister any employees coming in before wegot all the details about the person 37. User storyRequirements First Name - Required Last Name - Required Social Security Number RequiredThis is what identifies a person uniquely 38. Where are we??Client ModelViewViewModelCommandCommandHandler(s)Aggregate Root Read Model Event Subscriber(s) EventsEventStore 39. Bifrost What did we solve?DecouplingCommands representing the behaviorEvents are the contractRead and behavior are two different thingsWorking in parallelMaking it easier to apply agile principles 40. Bifrost - RoadmapRealtime applicationsClients persistently connected to the serverRefine client modelFormalizationsBounded Context, Modules SimplificationsScale out optionsRedis, Azure ++ 41. Getting started 42. SummaryDomain Driven DesignWill help you establish a language and understand what youre creatingCQRSLets you establish a set of good patterns and practices, mind openerBifrostOne incarnation but not look at it as a CQRS implementation, it is so much morePlease rate the talk athttp://tinyurl.com/BusinessValue2http://blog.dolittle.com http://bifrost.dolittle.com 43. Thanks for your attention