Sean Feldman spent the day at Sunwapta on Monday. The visit was highly appreciated by our team and especially me.
I think what is most important now after all the visits and training is to just do it; take action. We have a perfect (greenfield) project that is starting up from scratch and we will be using all the latest and greatest we can manage:
- The MVC pattern on top of a layered architecture (.NET),
- Fluent nHibernate,
- Automated Builds and Continuous Integration automation using Hudson and a slew of other tools,
- BDD/TDD on top of domain driven design,
In this project I am representing the customer but I would not classify myself as the domain expert.
I'm finding I can't use a pure agile process with the team as I need to do more up front design than is normal, mostly because I am figuring out the domain by doing so. But in my mind that is fine. Agile is a tool and like any tool it needs to be used in the right place and right time and flexibility is more important than rigid process…. after all we (development teams) are replacing a rigid process with agile and what is the point if agile is rigid.
On the other hand, I am far from using a waterfall approach and that is excellent.
It is mostly a white-boarding type exercise for me. Lot's of iterations to ensure I understand the domain and can later explain it to the developers. But I have no real attachment to the initial rough design… it is just a starting point and I fully expect it to be iterative and incremental once we get going. Let's face it; even the most patient agile developers would be ready to kill the customer if the basic domain rules changed drastically every few hours for a few weeks, refactoring tools or not.
I fully expect to have version 1 out by the end of June. When we do that and accomplish most of the other stuff I will be very happy we are continuing to move forward… and I think it remains doable.