I spent a bunch of time in the early Windows days trying to do UI testing the way this (UI Test Automation Tools are Snake Oil) blog entry talks about. Like him (or his clients) we used some really expensive tools and ended up not doing a very good job. I really like the thinking Michael is doing here. This is definately where my head is at. The problem is that I am struggling with creating MVC-style applications.
Where I work now we just don’t build big applications. Instead we have lots of small applications that we deliver in weeks not months or years. I have not found this pattern of doing software very condusive for building applications with lots of design. Now hold on a minute – that does not mean we don’t do design. We just don’t do lots of design. When an application is very small how much design do you really need to do? Most of the applications tend to look like each other – read some data…munge it together…display it. We don’t do much data entry; which is an exception in the pattern of apps I have built over the years.
That is not to say we don’t have some big-ish applications. We do. Just that they are the exception. Could they do with more engineering? Absolutely! But we just don’t have the infrastructure (staff, mindshare, experience, etc) to do it that way. Of course there are people doing a high level of engineering here. It’s just that it’s not everyone – it’s not our default.
At first this was a hard pill to swallow (and it still makes me a little gassy at times). But it’s the nature/culture of the way we do things. It’s a model that works, but not in a scaleable way. Sharing anything in this model is very hard – maybe I will blog later about how we do that.