A while ago I was trying to explain the benefits of Castle to developers, and I just couldn't get through. It is pretty easy to explain the benefits of using Active Record, but I had a hard time explaining MonoRail and Inversion Of Control.
Here is my elevator speach for MonoRail:
I got into a lot of problems with this, since it doesn't convey the benefits to the people I am talking to. The response that I got where:
- RAD without wizards? There is no such thing.
- MVC? Front Controller?
- I already has seperation between the UI (aspx) and the Business Logic (aspx.cs)
I can show how quickly I can create a page, but it will seem slow compared to doing the same thing in VS.Net, since I don't have a designer to "help" me. How do you explain the benefits of design patterns to those who doesn't feel the pain*? How can I explain the benefit of strict seperation to those who think that aspx / aspx.cs is good enough seperation?
I got the same problem when explaining Inversion Of Control, they couldn't get why they shouldn't just use new. Do you think that those things, like bicycle riding, can only be understood by actually trying them?
I know the motivation parts of those patterns, but I don't think that I managed to make the people I was talking to get the advantages of this new way of doing stuff.
* Those Who Doesn't Feel The Pain - I like this pharse.