The Umbraco V8 Event Horizon
Every year Umbraco CMS hosts their yearly Conference in Denmark and for the 7th (maybe 8th?) year in a row the "award winning" Offroadcode Team attended.
The hot topic this year was the forth coming Version 8 (aka V8) which would be released...erm...well...sometime...soonish...maybe?
Depending on who you asked (and when you asked...*hink*) when the final version would be released the answers ranged from before the end of this year to even the end of next. I took this unknown vagueness to be a good thing, it means they aren't rushing it and want to get it right. However when you release an Alpha live on stage it does sort of start the ball rolling in peoples minds that a release is "coming" and that in itself is a dangerous expectation to start in motion if you aren't ready for it and the consequences.
I tried to describe this within the office like flying a space ship towards a black hole...hear me out.
Once you set a course and start towards it you can still get stuff done, there is a while to go until you "get there" but as you get closer the gravity of the black hole builds and pulls your ship closer and close and faster and faster towards it. The pull get so strong that at some point its next to impossible to steer away from it, it sucks you in and at some point you have to cross the Event Horizon, this is the point of no return...after this the ship, your crew and you will all become part of the black hole...
Foot note: I don't mean to say V8 is a black hole in a bad way but the appeal of it has the same gravity.
With the release of the Alpha of V8 we have set course towards this singularity. We are currently still some way away and there is plenty we could be doing while we travel there (securing cargo and checking the escape pods). At some point in the near future we are going to reach the Event Horizon of V8 and at that point there will be no turning back, there will be no more V7...we will all become V8! That all sounds a bit weird...let me explain what I mean in real terms.
Now the course has been set some things are going to start happening, maybe not today but soon and we need to be aware of them. We need to be aware to possibility delay them or at least minimise the time that they can effect us all.
From a developers points of view these will seem to be the biggest issues we will face until we cross the Event Horizon:
Pull Requests and fixes for V7 will stall - All those lunchtimes, free evenings, weekends and "freedom fridays" will be now be spent poking around in V8 rather than solving problems or bugs in V7. Attention is going to shift. I don't promote coding in your free time all the time btw, get a hobby and unwind.
Package development on V7 will stall - why develop packages that you know you are going to have to rebuild/rework to work within V8, why maintain two versions. Better to just focus on the shiney new V8 version right?
V7 Packages won't get patched or updated by their owners - "We are focusing on V8 now"
Pull Requests for V7 won't get as much attention from HQ - Again they will be mostly busy with V8..."you should be building on V8 now anyway" or "we only have so much resource we have to spend it on the future"
The above also effects clients too, sites will have to put up with bugs and issues that previously would have been fixed as everyone is busy on V8 and don't want to waste the key strokes on a "dead end code base".
There will be a "final" release for V7 at some point that will signal that we have passed the Event Horizon...The King is dead (V7)...long live the Queen (V8)!
This is all the usual stuff that happens when a new version is approaching, these are inevitable but the damage they can do to the eco-system and community shouldn't be played down. We saw exactly this situation play out with the rebuild of V4 to *the version that shall not be named*and it did a lot of damage.
We have to limit the effect of these side effects until we know we can safely commit to V8 especially when we don't know when V8 is going to be ready. Having no packages released for 12-18 months would be a terrible shame, holding off on releasing a fix for a V7 package (that users on V7 right now could be using) could cause more pain to more users that the short time it takes to release it. Stopping coding on issues within V7 means those fixes aren't getting out to the huge install base of Umbraco V7 instances up and running RIGHT NOW rather than a smaller set that will be up and running SOMETIME IN THE FUTURE.
Any fixes pushed into V7 are pulled over to V8 so we should keep those PR's coming in and fixing whats wrong until the great "final" V7 release is announced and then we know its done done and can move to V8.
Client perceptions and sales head aches
There are other sides to this impending V8 Event Horizon approach that we might not have considered. Clients are now asking for it. I had a call only yesterday wanting V8 so they are on the "latest" and they mentioned possibly delaying the build until it was available as they didn't want to waste their money on an out of date build...the genie is out of the bottle!
It makes it a hard sell to say "I don't know when it would be ready" and even harder when I say "I wouldn't advise building on it with the first release" which is good sensible consultation advice but to a lay person it sounds like its a step back not a step forward. When I talk of the rock solid status of V7 (its the best version ever!) other clients have a hard time getting their head about why there even is a V8 coming..."whats it in, what makes it so good?". Another client recently tried to get me to promise a free upgrade to V8 before they would sign off on their V7 build last year, perceptions and expectations have been set by all this talk of V8.
New developer perceptions/experience
New developers coming to the Umbraco space can also expect some confusion..."which version should I be installing?" will now become a common question. There is currently no way to flag questions on the developer forum (aka Our) with a specific version so questions and answers that only work in V7 will now be tried in V8 and visa versa.
All the blog posts will be about "Doing X in V8" so will be giving them signals that this is were it is at but the forum posts might be more like "This doesn't work in V8" which is giving them signals that it might be hard or not ready for the big time yet. If we are honest we are expecting some issues right?
We shouldn't be confusing new developers trying out Umbraco we should be embracing them and streamlining their journey to get to the same happy place the rest of (hopefully) are with it. These can be fixed before the beta release of V8 and they should be, its the same as belting up and putting on your space helmet as they do in the movies I guess?
If you had to start a new project tomorrow which version would you use? If you had to start one it 3 months, 6 month or 12 months which version would you use? How many V7 sites are going to keep running for another 2, 3 or even 4 years? We have to shore up V7 and ensure its as solid as it can be so it can hold the line until V8 is really ready and even then we are all going to be working on a mixture of V7 and V8 sites (and yes I see you at the back...V4 and V6 too) so lets not lose focus here.
Keep working on V7, keep promoting V7 and on the side keep dipping into V8 and helping it along until the time is right...when we knowingly cross the Event Horizon and become one with V8...