What is the .NET Software Craftmanship Bootcamp
The Destination Is The Journey
The above tagline may sound like the catchphrase from a really cheesy movie, but it sums up quite nicely the plan in mind for this course offering. In a development world where we seem to be caught up in learning tools vs solid practices, this bootcamp is about getting back to basics, building a solid core, and having the foundation with which to be able to evaluate and leverage new technologies, toolset, practices very quickly. Helping devs to chart the course for the rest of their development career, and not feel so overwhelmed at the rate of change that is currently prevalent in the industry.
As developers who train and mentor other developers, we hone our craft daily by working on projects using pragmatic agile practices that have been customized to capitalize our individual development styles. Each iteration of the course reflects a current (as of the time of the course) set of approaches that can be used to tackle software challenges. The only difference being that during the week, care is made to not introduce specific 3rd party frameworks, as the course is not intended to focus on specific tools.
It would better be described as a week of heads down, crazy mentoring. We start the week with no code and the skeleton of a UI done (which serves as our story generator). Over the course of the week, people are taught how to apply incremental, behaviour driven development, solid OO principles and design patterns to incrementally build up the functionality of the application.
This class stresses the importance of helping people understand at a fundamentally core level, the patterns and practices underpinning a lot of the frameworks that they may choose to utilize in the future. By giving them the knowledge to use these frameworks will intelligence, they are much better prepared to know how to fix/work around the frameworks when they do not work for them. More importantly, they get to see how tdd plays out over the course of the week to build the application under question. They also get to see how building an app in a loosely coupled way allows easy transition if they decide to suddenly move the mapping layer to something like NHibernate, or the dependency container to something like Castle.
Each iteration of the course has been a wildly different experience. The code from class to class can often vary dramatically, mostly because a large percentage of the code base is heavily student driven. Our trainers have as much fun, if not more, than the people that attend. The days can be pretty long though, but the collaborative atmosphere will make you wonder how the week flew by so fast.