lets focus on business value

Download Lets focus on business value

Post on 14-May-2015




0 download

Embed Size (px)


A talk I presented at Grenland Web, 24th of January 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.


  • 1.Please rate athttp://speakerrate.com/talks/19451-lets-focus-on-business-value

2. Lets focus on business value Power point template byColin Eberhardt 3. AgendaHow to focus on business valueDomain Driven DesignConcrete patterns; CQRS, MVVMBifrost an open-source framework to cover it all 4. Who am I Einar Ingebrigtsen @einari einar@dolittle.comhttp_//www.dolittle.comhttp://blog.dolittle.com http://www.ingebrigtsen.info 5. StatisticsSoftware projects2009:- 32% successful- 24% failed- 44% challenged2004: - Cancelled projects cost $55 Billion Annually http://www.projectsmart.co.uk/docs/chaos-report.pdf 6. Statisticshttp://www.typemock.com/blog/2012/07/18/the-severity-of-bugs-are-we-doomed/ 7. 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? 8. What is business value? The short answerHelping the business achieve its objectives Faster Simpler Cheaper Better More 9. Why is this hard to do?Developers dont understand what thebusiness needsThe Business doesnt understand what thebusiness needsIf the business does understand what itneeds 10. Why is this hard to do? Even if we do understand what they want, we cant build it because of ...RaceEagerconditions Transactions LoggingSerialization Performance loading LazyCachingMappingAuditing Concurrency Staleness loading 11. 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 12. Be agile!Not just in terms of process (Scrum, Kanban, XP)We need to be able to change decisions priorities CODE!! 13. Understand who your user is 14. Feedback loopTalk to users regularlyTest TDD / BDD Executable Specifications Testers 15. Bounded ContextsDifferent representations in differentcontexts 16. Bounded Contexts - Shopping 17. 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 18. Domain Driven DesignFocus on the core domainCreative collaboration between domainexperts and software practitionersCreate a common language and commonunderstanding of the domain 19. Domain Driven DesignBuilding blocks Aggregate Roots Value Objects Services Repositories Entities and more 20. CQRSClient Command Queries DomainEvent Handlers Publish Persist UpdateDomain PersistenceRead Model 21. CommandExpresses what should happenShould express intent AddItem- / AddAccessory- ToCart - maps to AddProduct() on the AggregatedRoot 22. EventSourceThe source of eventsThe place that events originate from 23. Aggregate RootHolds only internal state, if needed - nopublic stateExposes behavior as methods 24. EventRepresents the truth in the system; ... thisis what happened...Simple DTO with primitive properties only! 25. MVVMModel Get from server ViewObservesObservable ViewModel 26. bifrost 27. BifrostFull end to end framework for line-of-business application developmentPromotes good practices such asCQRS, MVVM through high focus on DDDYou dont need the entire thing, but will getbenefits for every component you add 28. BifrostClient focus JavaScript ASP.net MVC Web in general Silverlight WinRT (Experimental) changes coming 29. BifrostBackend CQRS Cloud scaleRealtime applications Clients persistently connected to the server 30. Bifrost - Architecture ClientResult that affectQueries and Invoke Behavior Meta DataRead Models ServerQueriesDomainRead Models Meta Data 31. CQRS Bifrost StyleClient CommandCommand CoordinatorCommandHandler(s)Aggregate Root Read Model Event Subscriber(s) EventsEventStore 32. 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 morehttp://blog.dolittle.com http://bifrost.dolittle.com 33. Thanks for your attention


View more >