Has anyone had any experience in building a 'real world' application with the Smart Client Software Factory, from Microsofts Patterns and Practices group? I'm looking for advice on how difficult it was to master, whether it decreased your time to market and any other general pitfalls.
I don't have personal experience, so favor the advice of someone that does over mine. I know two coworkers that have used this factory and both had the same take-way:
- It hurt to set up and learn
- It was worth it in the end
So if you have up-front time to spare, I'd go for it.
We use the Web Service Software Factory, and we really like it because it makes it easier for developers to follow standards and appropriate patterns. The learning curve for us wasn't bad - a few hours per developer at most.
Other than that, there aren't any other pros & cons worth mentioning.
We used SCSF for a real world app with about 10 developers. It was a steep learning curve to set up and develop a pattern of usage, but once it was set up, introducing new developers to the project was VERY easy. Using CAB and SCSF was very beneficial to our project especially getting each developer up to speed and productive.
A downfall of SCSF is that it provides ALOT of functionality that may not be used (we probably only used 60% of the functionality).
I am also using SCSF for a new project and am considering refactoring to PRISM. PRISM allows you to cull the functionality that is not used. If you use WPF, I suggest looking into PRISM.
We used SCSF for a real world composite app with 6 developers; the full team size was 14, including BAs, PMs, testers, etc. Like Torrey said, it was a steep learning curve for the 3 developers that didn't have OO or design patterns experience. Myself and two others had been OO-purists for years; so we took to CAB like ducks to water just by recognizing the patterns. Part-way through the project, we put together a one-week training course on OO principles and then design patterns. Once the other 3 went through this course, the productivity started to increase immediately.
My advice, make sure your team has sound OO and Design Patterns knowledge. The curve drops off when they can see patterns that they recognize.