Had an interesting conversation the other night with a buddy of mine wherein we were wondering if it’s possible that an application can actually be "finished". By "finished" I mean it does what it’s supposed to do, does it well, and delivers the value it’s promised.
I used to think about this with the Commerce Starter Kit. In fact it’s why I stopped working on it for the most part – I just couldn’t figure out what else I wanted it to do without a full rewrite.
Of course there will be bug fixes – but at that point it becomes "Tinkerware" (meme dibbs – I like this term) and the if you’re disciplined, you’re driving to completion rather than opening up more bugs. So I have to ask:
Can software just be done? Or are we inventing work for ourselves?
This question comes up a lot in Open Source. I referenced the Commerce Starter Kit above and I think it’s a good example. ECommerce has been done, and done again and no one will ever really add value there.
My goal with the CSK was to make it easy for developers to create a store, and to try and get you to "80%" as quick as possible. We went through 2 major versions (which gave life to SubSonic) and at one point I remember telling Chris Cyvas (who has taken the project over and renamed it dashCommerce):
Can we just park this thing and be done?
I was partially joking – I knew at the time that there was some work to do in terms of refining and updating, but there was a part of me that wanted to move on to other challenges.
Builders pound the last nail in, mechanics tighten the last bolt – can’t we spin the last byte?
I asked a client once (just 3 years ago) why they were still using classic ASP and they said "because it works for us". It’s the best answer possible, from a client-perspective. But I had to wonder about the dev guys who worked there. Did they like working on ASP classic?
Turns out they did – in fact they laughed at me when I told them of all the innovation going on with .NET.
"That’s great. We make about $1.2 Million a month with our online store. Will .NET make us more money? Adding features to our system is pretty easy – we all know the system really well, it’s documentation is very complete, and it does all the things we need."
In short: they "parked" their application: they opened the doors and lowered the tailgate, turned on Journey, and fired up the barbeque.

Is this sort of thing possible with Open Source? Would you continue to use a bit of Open Source software if the dev team "parked" it and said "we’re done – this works. Thank you and good night!"
No, I am not thinking about SubSonic
. No really – please don’t ask … this isn’t about SubSonic.
What do you think?
