Please rate athttp://speakerrate.com/talks/19451-lets-focus-on-business-value
Lets focus on business value         Power point template by            Colin Eberhardt
AgendaHow to focus on business valueDomain Driven DesignConcrete patterns; CQRS, MVVMBifrost – an open-source framework to...
Who am I                           Einar Ingebrigtsen       @einari           einar@dolittle.com                      http...
StatisticsSoftware projects2009:- 32% successful- 24% failed- 44% challenged2004: - Cancelled projects cost $55 Billion An...
Statisticshttp://www.typemock.com/blog/2012/07/18/the-severity-of-bugs-are-we-doomed/
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, Ra...
What is business value?               The short answerHelping the business achieve its           objectives Faster   Simpl...
Why is this hard to do?Developers don’t understand what thebusiness needsThe Business doesn’t understand what thebusiness ...
Why is this hard to do?   Even if we do understand what they   want, we can’t build it because of ...  Race               ...
Why is this hard to do?    If somehow we’ve managed to get ourinfrastructure in place and give the business         what i...
Be agile!Not just in terms of process (Scrum, Kanban, XP)We need to be able to change decisions priorities CODE!!
Understand who your user is
Feedback loopTalk to users regularlyTest TDD / BDD Executable Specifications Testers
Bounded ContextsDifferent representations in differentcontexts
Bounded Contexts - Shopping
Bounded Contexts – Shift ManagementEmployee Plays a central role – identified by Social Security NumberSubstitute It refer...
Domain Driven DesignFocus on the core domainCreative collaboration between domainexperts and software practitionersCreate ...
Domain Driven DesignBuilding blocks Aggregate Roots Value Objects Services Repositories Entities … and more…
CQRS                                  Client   Command                                                       Queries     D...
CommandExpresses what should happenShould express intent AddItem- / AddAccessory- ToCart - maps to AddProduct() on the Agg...
EventSourceThe source of eventsThe place that events originate from
Aggregate RootHolds only internal state, if needed - nopublic stateExposes behavior as methods
EventRepresents the truth in the system; 
“... thisis what happened...”Simple DTO with primitive properties only!
MVVM                  Model   Get from server           ViewObserves                          Observable             ViewM...
bifrost
BifrostFull end to end framework for line-of-business application developmentPromotes good practices such asCQRS, MVVM thr...
BifrostClient focus JavaScript ASP.net MVC Web in general Silverlight WinRT (Experimental) … changes coming
BifrostBackend CQRS Cloud scaleRealtime applications Clients persistently connected to the server
Bifrost - Architecture                       Client  Result that affect  Queries and                   Invoke Behavior    ...
CQRS – Bifrost Style                  Client                                     Command                                  ...
SummaryDomain Driven DesignWill help you establish a language and understand what you’re creatingCQRSLets you establish a ...
Thanks for your   attention
Lets focus on business value
Lets focus on business value
Lets focus on business value
Lets focus on business value
Upcoming SlideShare
Loading in …5
×

Lets focus on business value

583 views

Published on

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
583
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lets focus on business value

  1. 1. Please rate athttp://speakerrate.com/talks/19451-lets-focus-on-business-value
  2. 2. Lets focus on business value Power point template by Colin Eberhardt
  3. 3. AgendaHow to focus on business valueDomain Driven DesignConcrete patterns; CQRS, MVVMBifrost – an open-source framework to cover it all
  4. 4. Who am I Einar Ingebrigtsen @einari einar@dolittle.com http_//www.dolittle.com http://blog.dolittle.com http://www.ingebrigtsen.info
  5. 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. 6. Statisticshttp://www.typemock.com/blog/2012/07/18/the-severity-of-bugs-are-we-doomed/
  7. 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. 8. What is business value? The short answerHelping the business achieve its objectives Faster Simpler Cheaper Better More
  9. 9. Why is this hard to do?Developers don’t understand what thebusiness needsThe Business doesn’t understand what thebusiness needsIf the business does understand what itneeds…
  10. 10. Why is this hard to do? Even if we do understand what they want, we can’t build it because of ... Race Eagerconditions Transactions Logging Serialization Performance loading LazyCaching Mapping Auditing Concurrency Staleness loading
  11. 11. Why is this hard to do? If somehow we’ve managed to get ourinfrastructure in place and give the business what it needs, it’s TOO LATE! Legal New Market Changes Priorities Changes New New Acquisitions Requirements Competitor
  12. 12. Be agile!Not just in terms of process (Scrum, Kanban, XP)We need to be able to change decisions priorities CODE!!
  13. 13. Understand who your user is
  14. 14. Feedback loopTalk to users regularlyTest TDD / BDD Executable Specifications Testers
  15. 15. Bounded ContextsDifferent representations in differentcontexts
  16. 16. Bounded Contexts - Shopping
  17. 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. 18. Domain Driven DesignFocus on the core domainCreative collaboration between domainexperts and software practitionersCreate a common language and commonunderstanding of the domain
  19. 19. Domain Driven DesignBuilding blocks Aggregate Roots Value Objects Services Repositories Entities … and more…
  20. 20. CQRS Client Command Queries Domain Event Handlers Publish Persist UpdateDomain Persistence Read Model
  21. 21. CommandExpresses what should happenShould express intent AddItem- / AddAccessory- ToCart - maps to AddProduct() on the AggregatedRoot
  22. 22. EventSourceThe source of eventsThe place that events originate from
  23. 23. Aggregate RootHolds only internal state, if needed - nopublic stateExposes behavior as methods
  24. 24. EventRepresents the truth in the system; 
“... thisis what happened...”Simple DTO with primitive properties only!
  25. 25. MVVM Model Get from server ViewObserves Observable ViewModel
  26. 26. bifrost
  27. 27. BifrostFull end to end framework for line-of-business application developmentPromotes good practices such asCQRS, MVVM through high focus on DDDYou don’t need the entire thing, but will getbenefits for every component you add
  28. 28. BifrostClient focus JavaScript ASP.net MVC Web in general Silverlight WinRT (Experimental) … changes coming
  29. 29. BifrostBackend CQRS Cloud scaleRealtime applications Clients persistently connected to the server
  30. 30. Bifrost - Architecture Client Result that affect Queries and Invoke Behavior Meta Data Read Models Server Queries DomainRead Models Meta Data
  31. 31. CQRS – Bifrost Style Client Command Command Coordinator Command Handler(s) Aggregate Root Read Model Event Subscriber(s) Events EventStore
  32. 32. SummaryDomain Driven DesignWill help you establish a language and understand what you’re 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 more http://blog.dolittle.com http://bifrost.dolittle.com
  33. 33. Thanks for your attention

×