The core problem.Ever since I think 2004, I've never been able to get a stable process in place that enables a designer and developer to share & communicate their intended ideas in a way that ends up in production. Sure they end up something of a higher quality state but it was never really what they originally set out to build, it was simply a end result of compromises both technically and visually. Today, its kind of still there lingering. I can come up with a design that works on all platforms and browsers but unless i sit inside the developer enclosure and curate my design through their agile process in a concentrated pixel for pixel way, it just simply ends up getting slightly mutated or off target.
The symptoms.A common issue in the process happens soon after the design in either static form or in prototype form gets handed off to the developer or delivery team. They look at the design, dissect it in their minds back to whatever code base they are working on and start to iterate on transforming it from this piece of artwork into actual living interactive experience. The less prescriptive I am in the design (discovery phase) the less likely i’ll end up with a result that fits the way i had initially imagined it to begin with. Given most teams are also in an Agile way of life the idea that I have time or luxury of doing a “big up front” design rarely ever presents itself these days. Instead the ask is to be iterative and to design in chunking formations with the hope that once i’ve done my part its handed off to delivery and then it will come out unscathed, on time and without regression built in. Nope. I end up the designer paying the tax bill on compromise, i’m the guy usually sacrificing design quality in lieu of “complexity” or “time” derived excuses. I can sit here as most UX`ers typically do and wave my fist at “You don’t get us UI and UX people” or argue about “You need to be around the right people” all i want but in truth this is a formula that gets repeated throughout the world. It’s actually the very reason why ASP.NET MVC, WPF and Silverlight exist really - how do we keep the designer and developer separated in the hope they can come together more cleanly in design & development. The actual root cause for this entire issue is right back at the tooling stage. The talent is there, the optimism is there but when you have two sets of tooling philosophies all trying to do similar or close to similar things it tends to kind of breed this area of stupidity. If for example i’m in Photoshop drawing a button on canvas and using a font to do so, well at the back my mind i realise that the chances of that font displaying on that button within a browser is less likely to happen then inside the tool - so i make compromises. If i’m using a grid setting that doesn't match the CSS framework i’m working with, well, guess what one of us is about to have a bad day when it comes to the designer & developer convergence. If i’m using 8px padding for my According Panel headers in WPF and the designs outside that aren't sharing the same constancy - well, again, someone's in for a bad day.
It’s all about grids.Obviously when you design these days a grid is used to help figure out portion allocation(s) but the thing is unless the tooling from design to development all share the same settings or agreed settings then you open yourself up from the outset to failure. If my grid is 32x32 and your CSS grid uses 30% and we get into the design hand over, well, someone in that discussion has to give up some ground to make it work (“lets just stretch that control” or “nope its fixed, just align it left…” etc start to arise). Using a grid even at the wireframing stage can even tease out the right attitude as you’re all thinking in terms of portion and sizing weights (t-shirt size everything). The wireframes should never be 1:1 pixel ready or whatever unit of measure you choose, they are simply there to give a “sense” of what this thing could look like, but it won’t hurt to at least use a similar grid pattern.
T-shirt size it all.Once you settle on a grid setting (column, gutters and N number of columns) you then have to really reduce the complexity back to simplicity in design. Creating T-shirt sizes (small, medium, large etc) isn’t a new concept but have you even considered making that happen for spacing, padding, fonts, buttons, textinputs, icons etc etc. Keeping things simple and being able to say to a developer “Actually try using a medium button there when we get to that resolution” is at the very least a vocabulary that you can all converse in and understand. Having the ability to say “well, maybe use small spacing between those two controls” is not a guessing game, its a simple instruction that empowers the designer to make an after-design adjustment whilst at the same time not causing code-headaches for the developer.
Color Palettes aren't RGB or Hex.Simplicity in the language doesn't end with T-shirt sizing it also has to happen with the way we use colors. Naming colors like ClrPrimaryNormal, ClrPrimaryDark, ClrPrimaryDarker, ClrSecondaryNormal etc help reduce the dependency of getting bogged down into color specifics whilst at the same time giving the same adjustment potential as the T-shirt sizes had as well - “try using ClrBrandingDarker instead of ClrBrandingLight”. If the developer is also color blind as in no they are actually colorblind, this instruction also helps as well.
Tools need to be the answer.Once you sort the typography sizing, color palette and grid settings well you’re now on your way to having a slight chance of coming out of this design pipeline unscathed but the problem hasn't still been solved. All we have done really is created a “virtual” agreement between how we work and operate but nothing really reinforces this behavior and the tools still aren't being nice with one another as much as they could be. If i do a design in say Adobe tools I can upload them to their creative cloud quite quickly or maybe even dropbox if have it embedded into my OS. However my developer team uses Visual Studio’s way of life so now i’m at this DMZ style area of annoyance. On one hand i’m very keep to give the development team assets they need to have but at the same time i don’t want to share my source files and much the same way they have with code. We need to figure out a solution here that ticks each others boxes as sure i can make them come to my front door - cloud or dropbox. That will work i guess, but they are using github soon so i guess do i install some command line terminal solution that lets me “Push” artwork files into this developer world? There is no real “bridge” and yet these two set of tools has been the dogma of a lot teams lives of the better part of 10 years, still no real bridge other then copy & paste files one by one. For instance if you were to use the aforementioned workflow and you realize at the CSS end that the padding pixels won’t work then how do you ensure everyone see’s the latest version of the design(s)? it realises heavily on your own backwater bridge process. My point is this - for the better part of 10 years i’ve been working hard to find a solution for this developer / designer workflow. I’ve been in the trenches, i’ve been in the strategy meetings and i’ve even been the guy evangelizing but i’m still baffled as to how I can see this clear linear workflow but the might of Adobe, Microsoft, Google, Apple and Sun just can’t seem to get past the developer focused approach. Developers aren't ready for design because the tools assume the developer will teach the designer how to work with them. The designer won’t go to the developer tools because simply put they have low tolerance for solutions that have an overburden of cognitive load mixed with shitty experiences. 5 years ago had we made Blend an intuitive experience that built a bridge between us and Adobe we’d probably be in a different discussion about day to day development. Instead we competed head-on and sent the entire developer/designer workflow backwards as to this day i still see no signs of recovery.
I have noticed in a few places discussions comparing the UI and API of WinRT with Silverlight, and suggesting that it (WinRT) is preferable. Mostly, these were quite old posts (a series of 6 or more at SharpGIS was my first sense of this).
It does raise the possibility that Windows / Microsoft will rebirth or rethink some technologies.
Related (in my eyes, anyway), apparently there is a wider discussion about Windows 9 (based on leaks and conjecture) suggesting that there is to be a complete rethink of Windows market segments in Windows 9 “Threshold”.
It’s summarised here in InfoWorld (December 2013) in an article by some bloke named Woody Leonhard.
He sets the tone in his first sentence:
“If independent leaks are to be believed, Windows chief Terry Myerson appears to be dismantling the Jekyll-and-Hyde monstrosity that is Windows 8, instead replacing it with a triumvirate of products that people and companies will actually want.”
I’ll be interested in Scott’s comments on the triumverate of products, including the quote that refers to Terry Myerson’s supposed intentions.My thoughts/Reply I don't know much about the future of Microsoft because I suspect not many INSIDE Microsoft themselves have a clear definitive handle on that (not to sound jaded, i honestly do believe they are still haggling over how to raise the broken into fixable solutions). I would say this, the company has built up enough equity in the past to make a full focused run at Consumer adoption for products that would typically sell reasonably if not better in enterprise/smallbiz but they in the end hit a wall. I think it was mainly they didn't understand the consumers needs and were to busy trying to graph compete strategies they have used on Enterprise into the same space as consumers (Internally Microsoft can be quite aggressive and paralysed with fear around competitive events - its a huge weakness imho). If you were to unpack Windows 8 today and really take a step back from it all, there's not a lot of negativity associated with what they have done. I look at Windows 8 as the parity release between Silverlight/WPF and all the fixes customers (devs) wanted but it was delivered in a way that traumatised the base. It could have been delivered with a softer approach to change management in that instead of holding a gun to our collective heads with the intent of "upgrade or else" simple things like namespace / sdk related issues would have been enough to build confidence with the developer base around migration / roadmap. A developer would be fine with with Windows 7 WPF/Silverlight development today provided they know eventually with a Windows 8 upgrade the performance and scaleability issues would naturally resolve themselves (ie devs dont spend to much time haggling over the rendering pipeline). If you then combine Windows Phone 8 (which is really still in many ways the Silverlight behaviour) you again then tick the other box around reach on mobility devices. You are still locking them down into a world called "windows" which doesn't piss a lot of enterprise companies off, especially with the current turbulence in the device market we see today. Enterprise companies right now are a little paranoid or scared about their mobility adoption strategies because its one thing to say "I want breadth" and another to say "i want breadth and depth' when it comes to User experiences that count. If a company wants to get their "mobility" story together, they often associate mobility with web because breadth is far more attractive story than a depth discussion. Breadth means HTML/JS because it means I don't have to have specialist teams (Java, ObjectiveC, C#/Mono etc). Depth requires the opposite because you can only put off that problem for so long before someone within a team suddenly comes to work wearing his/her "Java Conference 1998" t-shirt and smells funny because they do Android development. Microsoft had an opportunity to do a simple rinse/repeat on the "Embrace/Extend" model with Windows and like I said, Enterprise would likely have been fine to play in that sandpit (of course they'd keep pushing on the "make my C#/XAML apps work on all" angle every step of the way). In keeping Enterprise bellies full that would have stabilised at the very least their largest piece of the profit share pie, in that they would have bought themselves another 2-5 years to focus on Consumer more without having to pay the tax on losing hearts/minds of business grade solutions. This would have also given them more adoption metrics around the mobility + desktop upgrade story because if a company buys 10-100 units of one piece of hardware because it was easier to develop against well thats 10-100 forced adoption(s) on users which after a while could turn into positive/negative evangelist for those products (Forced adoption is not a bad strategy ...its just ethically horrid). But.. sadly none of the above has happened, instead Sinofsky wen't rogue, went aggressive not just internally but externally and let his own self-inflated arrogance steer the ship in a direction of aggressive change management which has backfired. Now the new heads of state have to figure out how to salvage what they have left into meaningful pieces that can essentially tap into the above behaviours. The article is right, you have really three options - fade out you core business (enterprise) and go full retard on consumers adoption, reverse the namespace/SDK engines and build a bridge between old and new but lose what small foothold you have on consumers - or - abandon consumer focus and retreat back to safety around enterprise/small business. I'd place my money on the 2nd option, bridge building but that's going to be filled with a lot of apologies and the only way they can even attempt to make that work is to ramp up their DPE practices beyond where it is today (that is a lot of people on a lot of planes, apologising and seeding a new/existing audience with solutions). The head of DPE (former CEO of Skype) is a business development numbers guy who clearly has no real passion for DPE, so i don't see how even if they find a way to build that bridge can make that happen (it's an attitude issue as well as a technical one). Building a bridge between old and new is not as scary as one would assume (well i don't anyway), there is a lot of positive work put into the Windows 8 SDK's .. i don't think anyone can say out-loud that Microsoft doesn't get their shit together technically when given the chance, there is and has always been more positives in their technical abilities than negatives - it just always always always comes down to the way in which they deliver the message and react to developer/customer issues of the day. Is it really a case of just refactoring Windows 8 namepsaces or proxy classes of some sort to convince Developers to continue on WPF/Silverlight path? ... Is it a matter of just investing more in that "devigner" tooling problem (Expression Blend makes a comeback but with less reliance of "reflection" based property grids). *shrug* .. i can personally see a way they could rebuild and get on with the Windows 9 approach and I don't think it requires a radical overhaul but more architectural common sense.
Can all this be done though?I think it could be done if the right ingredients were in place, first of all you’d need to find a way to frame the proposition you’re putting forward to your consumers in terms they understand – that is, you have to convince every user out there that having a tablet/laptop in one is what they need & want. Secondly, you will need to find a way to separate your product from the herd in the retail channel because right now although the brand Microsoft and Windows are attached to the said product(s) it’s also attached to the competing brands as well (ie its over-used and saturated). Microsoft have to work their product line like Apple does, by having a separate table / shelf for their products to occupy and be distinguished from the rest. Thirdly you have to find a way to become the circuit breaker for the taxonomy of online retail, by opening up a new category “both” as if you’re going to say the product on one hand is a tablet and a laptop then you need to find a way to position the products in that light. If you position in the tablet category (like today) then your $2,000 AUD Surface top of the range model will stand out as being insanely expensive for a tablet? If you in turn occupy the Laptop then you’re $899 AUD tablet with low specs looks cheap but fails on hardware specifications – moreover you also run the risk of positioning the brand as a “cheap” solution thus potentially poisoning your own well (ie "Surface = Cheap crap" perception could easily run unmanaged). The reality is Microsoft really haven’t got a structured story here with Surface Pro, it’s what I’d call a “shotgun” approach to competing with Apple/Google. In that it appears they are just collapsing the products for the sake of compete rather than actually trying to disrupt the behaviour we humans have around mobility. The product itself isn’t a measured response, its just reactive and filled with a lot of panic around how to solve this problem. The entire thing could be handled much carefully and strategically by simply easing into the above categories with momentum behind them vs just trying to force their way into the mindset of consumers that all-in-one is the best strategy. Lastly assuming they abandon these silly ads with people jumping around clicking keyboards and actually focus on “why” someone needs to buy the product they also face a very long entrenched campaign ahead. If they are onto a winning formula and assuming that they sort their marketing talent out, then they also have to wait out the consumers who currently have laptop and tablet out which could be 1-2 years minimum. Normally this wouldn’t be an issue but keep in mind Microsoft is about to get a brand new CEO with his/her own ideas about Surface Pro and if anything Microsoft’s marketing machine has shown that they can’t handle a controlled message beyond the life of a single campaign.
- Surface as a brand will undergo a split, they will likely retreat back to forking the tablet and laptop offerings. There will likely be no technical difference between the two and price and category matching will likely influence it.
- Surface will have poor sales for the next 1-2 years and the industry will remind them off this without mercy. There is to much aggravation in the hardware space for Microsoft to occupy and they not only have to compete on Consumer sales but also Enterprise pie will decay over time as a result of losing focus. The failure in success over the 1-2 years will simply be the easy punch to the company’s kidneys.
- Surface RT will evaporate as a laptop solution. If you’re a developer today targeting ARM and you’re thinking to yourself “this is fun” then you’re currently in a small cluster. Today to target Windows 8 ARM would mean you are happy to migrate your code-base over to the new Windows SDK and it isn’t a clean migration at the best of times. Moreover you have to also ignore the lack luster ubiquity metrics that will come out alongside any and all developer relation(s) resets that have occurred in the last 5 years. If you can absorb all of that and still think ARM is the vehicle of choice – then yeah, I just don’t see any upside here.
- Price pressure. Clearly, the other brands are opting for the Microsoft Surface Pro approach to tablet & Windows 8 bundling with a high “laptop-centric” price tag attached. That’s fine but in reality if Microsoft wants to invoke change in the OEM channels around price and industrial design then having the beacon of example (Surface) separated ensures that these guys have to compete harder to win hearts/minds more. If Microsoft can put pressure on price models with a “lead by example” model, they can in turn regain some much lost control over this entire cluster f***k of tablet/laptop sales pipeline.
- Differentiation. Right now, the whole Surface RT in Australia is all you can buy so there is minimal confusion around what the brand “Microsoft Surface” represents. It is only after you introduce Microsoft Surface Pro into the mix that the confusion will start to fester, especially when retail chains like the one mentioned seemed to be preoccupied with price. Having a clear definitive marquee / in-store controlled visualizations of the matrix would help clear up potential buyer’s remorse going forward.Furthermore it would again encourage put pressure on other OEM providers to consider the RT route but I highly doubt that will occur given the current failings of RT today (perception and execution wise).