I read with interest a post by Ted Neward titled "Agile is treating the symptoms, not the disease". I will leave you to read the post in its entirety but point out Ted is paraphrasing a talk he attended with the speaker saying:
Keeping track of all the stuff Microsoft is releasing is hard work: LINQ, EF, Silverlight, ASP.NET MVC, Enterprise Library, Azure, Prism, Sparkle, MEF, WCF, WF, WPF, InfoCard, CardSpace, the list goes on and on, and frankly, nobody (and I mean nobody) can track it all.
This is so true. Microsoft used to chase the small developer is not chasing the enterprise and in doing so has created all of these complex pieces.
I think I understand Ted’s point. Today’s tools are overly complex, built up over the years on top of existing layers upon layers of functionality. Even new tools and frameworks built from the ground up try to jam all the functionality of an older tool times 5 over.
Gone are the days were we used great tools like DBase IV, FoxPro and Clipper to create business applications. It is very true these applications were created by 1-2 developers, not huge teams.
Do our tools today need to be so complex to justify a software development practice such as Agile or Lean to help us make efficient use of these tools? The answer is probably. We need these methodologies to keep ourselves honest to make our software work as we promised within all those moving parts in the frameworks. Even radical tools such as Ruby on Rails requires much finagling with its core and the plethora of open source gems that a suite of tests is needed to make sure we are delivering what we promised.
It’s true, this was not the case in the FoxPro days, we created some really valuable applications for businesses to solve their problems and they worked well. We did not have fancy test suites (no automated ones at least) to make sure things didn’t break when we added features. We didn’t need to because the software was not that complex.
Maybe it’s hard for some people to understand what may be interpreted as a negative trend in our tools and frameworks. The reason may be because those folks have not been around software development long enough see it. This isn’t to say they are inexperienced, but just have not experienced the simpler tools of yesterday. As Ted eludes to, he has several people he cares about that are old enough to understand:
Others, including many people I care about (Rod Paddock, Markus Eggers, Ken Levy, Cathi Gero, for starters) made a healthy living off of building "line of business" applications in FoxPro, which Microsoft has now officially shut down.
Phil Haack had a good post as a rebuttal to Ted, which Ted kindly replied to. I felt like I was watching a tennis match while reading the posts. I am not trying to get involved in the debate other than to say I understand and agree software development has become complex. I admit I am an old-timer in software development years and miss doing projects in FoxPro. Maybe I am just nostalgic.
There do exists a few tools I am aware of which lets small teams create software with minimal fuss:
- REALbasic – development tool for Mac, Windows and Linux
- Alpha Five from Alpha Software
I think smaller, faster and simpler tools are a great idea, maybe these tools are worth a look. Could we being seeing a niche developing?