Save the Date! Workshop on Agile, Scrum, BDD, DDD, CQRS, etc with Apress Book!
Details
With very special thanks to Apress, we're authorized to use Pro Agile .NET Development with Scrum (http://www.apress.com/9781430235330), a new book (by Scott Millett (http://www.apress.com/author/author/view/id/3453), Jerrel Blankenship (http://www.apress.com/author/author/view/id/3531), Matthew Bussa (http://www.apress.com/author/author/view/id/3548)), for a BDD & More Workshop for our group!
Workshop Summary
Agenda:
7:00 - 7:45 : Dinner & Drinks (Round 1)
7:45 - 8:15 : Presentation on book's solution architecture
8:15 - 8:20 : Raffle for Pro ASP.NET Design Patterns book
8:20 - * : Drink & Code Session!
What You Need to Buy & Do Beforehand:
-
For background, see resources from past events, especially: Acceptance Test Driven Dev: BDD & Executable Specifications in .NET (https://www.meetup.com/AtlAltDotNet/events/23542651/) and View & Discuss: CukeUp! 2011 (https://www.meetup.com/AtlAltDotNet/events/24359471/)
-
Purchase the Pro Agile .NET Development with Scrum eBook (http://www.apress.com/9781430235330) -- See "Membership Perks" on the left for how to get it for 17 dollars with a 50% of promo code!
-
Start working through the material on your own or with some buddies from your work
Workshop Night:
Join us at Manuel's Tavern, North Ave. room on Tuesday, Dec 1 @ 7 pm for dinner, our normal place -- but this will be a "Drink & Code Session" from 8:15 until whenever, so:
- Bring your laptop and be ready to drink & code! *
I'll bring a powerstrip and extension cord in case you need to juice up periodically
Architecture Explanation:
I'll explain, with projector, the book's solution architecture (covered mostly in Chapter 9) from 7:45 to 8:15 and will provide additional information and resources for learning more about the patterns & practices discussed within.
Book Raffle:
We'll also raffle off a copy of one of Scott Millett's other books, Professional ASP.NET Design Patterns (http://www.amazon.com/Professional-ASP-NET-Design-Patterns-Millett/dp/0470292784/ref=ntt_at_ep_dpt_1) (See below for full details!)
Follow Up Sessions:
It's a big book, and will take time to complete. I'll schedule another Drink & Code Session a couple weeks after. We'll do as many as we like. But, of course, also work on the material in your own time.
Call for Presenters:
For any of those follow-on sessions, if you'd like to do a presentation or demo of any related subject, whether from the book or how you or your team uses these principles & practices, just let me know and you can have the floor from 7:30 to 8:15. (But, you don't have to take that long if you don't want to)
Work at Your Own Pace in a Collaborative Space
It doesn't matter much that we all be at the same point in the material in the book. Instead, think of this is a supportive time where we're all learning and can help answer questions for each other and learn these practices and tools together at our own paces.
NOTE: The book source code is now posted at the book home page!
Full Details on Book / Workshop Topics
This book covers the use of SpecFlow for BDD (https://www.meetup.com/AtlAltDotNet/events/23542651/) and other tools, like WaTiN, NUnit, Rhino.Mocks for mocking (https://www.meetup.com/AtlAltDotNet/events/8712051/), mSpec, etc for the building of a blackjack card game in ASP.NET MVC (https://www.meetup.com/AtlAltDotNet/events/8712051/).
It has the reader build a Domain-Driven Design (https://www.meetup.com/AtlAltDotNet/events/9737878/) style domain model, build a simple custom CQRS command bus (Command-Query Responsibility Segregation (https://www.meetup.com/AtlAltDotNet/events/13990146/)), employs StructureMap for Inversion of Control (https://www.meetup.com/AtlAltDotNet/events/9211403/), and uses an NHibernate infrastructure project for data access.
In doing so,it teaches how to achieve persistence ignorance, clean separation of concerns, loose-coupling and SOLID principles (https://www.meetup.com/AtlAltDotNet/events/9737884/) more generally.
It is written as a complete Agile Scrum project experience, including user story development, conversations, agile estimation & planning (https://www.meetup.com/AtlAltDotNet/events/9525107/), source control management and branching strategies, project tracking, continuous integration (https://www.meetup.com/AtlAltDotNet/events/8928424/), and more.
If ever there was a book that puts INTO HANDS ON ACTION IN ONE PLACE everything we've ever discussed in this group over the past 3 years, I believe this is the one.
(And, Each of the links above goes to previous meetup events where we discussed such topics!)
Book Preview / Excerpts:
Here is a bit from the book about the chapters and the solution and its projects:
Chapters:
This book contains ten chapters and seven appendices.
Chapter 1: “The Art of Agile Development” gives a general overview of agile. This overview includes the difference between plan-driven and value-driven development.
Chapter 2: “Managing Agile Projects with Scrum” provides an introduction to Scrum.
Chapter 3: “eXtreme Programming” discusses the fundamentals of eXtreme Programming (XP) and its relationship with Scrum and behavior-driven development.
Starting in Chapter 4, the book provides a fictional case study about a team utilizing the concepts and ideas from the previous chapters to develop a web-based blackjack game.
Chapter 4: “Sprint 0: Generating the Product Backlog,” covers establishing a baseline sprint to develop three different user stories: Initial Bet, Start Game, and Deck of Cards. We'll establish the logistical fundamentals of a sprint and set the tone for the next four chapters.
Chapter 5: “Sprint 1: Starting a Game” introduces the team experiencing their first sprint in the project. It shows how the daily stand-up, retrospective, planning, and product demo meetings work in the real world.
Chapter 6: “Sprint 2: Playing a Basic Game” shows the team dealing with their second sprint and the user stories they have completed.
Chapter 7: “Sprint 3: Changing the Game” finds the team dealing with a change in their group dynamics.
Chapter 8: “Sprint 4: The Release” presents the culmination of four sprints’ worth of work for the first release of the blackjack game to the customer.
Chapter 9: “Code Review” gives a brief overview of the behind-the-scenes framework used on the blackjack web application.
Chapter 10: “What’s Ahead for You and Scrum,” is our retrospective of the product release; it takes a look at what we've covered and gives some pointers on where to go from here.
Appendix A: “TDD Primer with NUnit” is a tutorial on installing and using NUnit to begin to build an automated test suite.
Appendix B: “BDD Primer with SpecFlow” gets you started with the basics of SpecFlow and shows how to transform specifications into workable code.
Appendix C: “Mocking with Moq” is a tutorial explaining why mocking is important and showing you how to mock using the Moq framework.
Appendix D: “Manage a Product Backlog with Pivotal Tracker” is an introduction to a free, online agile management tool to track user stories throughout their lifecycle.
Appendix E: “Web Testing with WaitiN” discusses how to use WaitiN, an automated GUI framework for the browser.
Appendix F: “Source Control with SVN” discusses how to set up and use a version control system for your source code.
Appendix G: “Continuous Integration with CruiseControl .NET” explains how to install and configure a continuous integration server using CruiseControl .NET
Visual Studio Solution Project Descriptions:
Initial solution structure
Let’s take a look at the roles of each of the projects.
• KojackGames.Blackjack.Domain: The domain project represents the domain of blackjack game, all business rules and logic that govern and represent the world of blackjack, and repayments residing in the project. This project is free of any infrastructure and persistence concerns.
• KojackGames.Blackjack.Core.Tests: The core tests project contains all tests aimed at the domain and the MVC project. The tests in this project are unit tests focused on small units of functionality. The tests are designed to be run often and fast; this is the reason they are kept separate of the slower acceptance tests.
• KojackGames.Blackjack.Acceptance.Tests: The acceptance tests project contains integration tests that test the system end to end with no fake or mock implementation of dependant classes or infrastructure. These tests typically run a lot slower than the core tests, hence the need to separate them.
• KojackGames.Blackjack.Infrastructure: The infrastructure project represents the plumbing of the application. This project contains all of the supporting framework for the domain model and CQRS implementation.
• KojackGames.Blackjack.Ui.Web: The MVC project contains the controllers, view models, and views that represent the user interface for the application. The MVC project will have a dependency on the domain project.
• When you are starting out, having both the acceptance and unit tests run after each build is acceptable because the test suite is small and can run quickly. Over time, as the test suite grows, (particularly in the Tests.Acceptance project), to continue quick feedback to the developers it is acceptable to run the Tests.Acceptance just a few times a day rather than after every check-in.
Related News: Free Books Coming!
As mentioned, co-author of the book Scott Millett is sending me two copies of his previous book Professional ASP.NET Design Patterns (http://www.amazon.com/Professional-ASP-NET-Design-Patterns-Millett/dp/0470292784/ref=ntt_at_ep_dpt_1) to raffle off to our group members! Check out that book and his other published books on Amazon (http://www.amazon.com/Scott-Millett/e/B002O03H5Y). That book covers topics like MVC, WebForms with MVP, S.O.L.I.D. principles, Gang of Four design patterns, jQuery, AutoMapper, NHibernate, Castle MonoRail, Entity Framework, StructureMap, etc. It has very favorable reviews. I don't have a copy myself, but have his Professional Enterprise .NET (http://www.amazon.com/Professional-Enterprise-NET-Wrox-Programmer/dp/0470447613/ref=ntt_at_ep_dpt_2) book and it is good too. The only complaint I have is there were numerous spelling errors, and others have complained on Amazon of similar issues.
