At some point soon, make that now, we need to really agree what we’re trying to be. I think and sense a real serious disconnect here. We do not have consensus. I think we should focus on the next 2-month window and get something significant done. Three months at the most. We should get all ideas out on the table, throw sample code out, whether or not it’s finished and polished, optimized or slow, communicate openly and frequently, and collaborate as a team.
We have an opportunity to make a significant mark in the GPL software space by creating a tool that possesses a real unique combination of the comparitively easy to use and do cool things with for most common sites (from the our current code), but to put it on top of a truly modern and grown up platform that’s even more robust. The kind of thing that would make people stop long and hard before they dive into a Ruby on Rails solution. A near-equal amount of robustness and power with virtually ubiquitous ability to deploy.
That might mean we loose a few folks running on $3/month shared servers with 2500 other sites. The are the same types of folks that are looking for YAPS and ask where the polls are and how to install templates. Being brutally honest, these are the types of people that in the next 18 months will never help me support my family. Wonderful people and I enjoy them being here, but I’m selfishly more concerned today about how I can put food on the table and provide for my family.
Besides, we have the current version that honestly serves that market better than anything out there (well, as soon as we get a snippet repository up that’s done right... a topic for another conversation though)! And I think we should continue to improve it by cleaning up the API, adding a better manager skin, and throwing in the recursive parser. It will probably still be the apropriate solution for many people for the next 18-24 months, anyway. It’s a great place to back port things into when possible.
However, my vision is much larger for our project than something that’s all things to all people. It can surely become that way again in the future, but for now, we’re too early in the curve to not adopt a more proactive and progressive stance, that serves a more sophisticated market. In a year or so, we can "dumb it down" and make it universally accessible.
The things that Jason has shared (and that look like they’ll be out within the next few days) sound pretty much mind boggling, especially given the he undertook the effort a couple of weeks ago. If it does what I think it does, it would give us a truly enterprise capable platform that’s "grown up". That’s a market that should we so choose to do so, we could all support our families by developing and maintaining solutions and providing support services.
It opens the very real opporutnity to provide solutions that generate five-figures per engagement vs four, for relatively little additionaly effort. It would allow us to deploy truly mission critical, enterprise-grade solutions that stand up to the educated scrutiny of seasoned decision makers. Sell in markets that have important motivators called "budgets" to spend.
When you integrate the things that Raymond’s working on then it becomes a tantilizingly cool platform that you can run on most somewhat respected (i.e. not out there just competing on price) shared hosting environments. That will be even more true in 6 (or more) months later when it’s actually polished to a releasable state. Until then it might require a more stringent development/testing platform. I’m 100% OK with that.
One thing that I’m confident about, is that the clamor around such a platform will make what we’ve been fortunate to accomplish to date seem insignificant. It will likely mean some temporary discomfort and frustration, learning some new things and how to think in a OO manner, and possibly even loosing some of the less savvy users. To me, a 100% acceptible tradeoff and sacrifice I hope we all decide is for the greater good.
We need to encourage ideas. Explore internal efforts that have timeframes that bear fruit in weeks, not months. Incremental improvments vs. monolithic leaps. In order to do that though, we need an abstracted platform as Jason mentions that accomodates even radical changes on the back end without skipping a beat. It’s just not really feasible on the same type of structure that we’ve got today. I think we should adopt the release early/release often (internally at a minimum) paradigm and target technically savvy folks that can actualy troubleshoot and dig in and help figure things out.
If we take this track, this time next year, the focus will probably change to putting a super slick, wizard driven interface on an insanely robust platform. That’s when we could really kick into high gear the efforts to supporting less experienced users. I can’t afford personally to do so today.
Thoughts?