- 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).
Discovery vs Delivery.I spent over three years travelling around Australia in every capital city visiting “developer” teams for all types of companies (enterprise, startups, government etc.). I have seen the same thing happen over and over, whereby each company swears by their agile manifesto and how important it is to maintain “agile” discipline. I also notice they cherry pick agile each time to make sure it fits in with their culture and more importantly to not take it as an absolute but more a relative approach to designing software. The part that often sticks in my craw is not the sprint cycle(s) or the sprint backlog creation. Nope, the part that I immediately notice as being the fatal flaw to why User Experience is often the sacrificial lamb in the development process is well the discovery of the said feature(s). For instance, a team will often sit down in a room with a whiteboard and then begin coming up with some stories around what they are hoping to achieve with the software. They then will likely document these stories with the usual “As a User I want the ability to do X so that I can do Y” style sentences. After that process they, would likely then unpack these at a later time into developer task(s) along with success/fail criteria (tests, definition of done blah blah)? I would guestimate that 90% of the hundreds of developer teams I have visited do pretty much the above. Furthermore, I would often be invited into some of these teams at around the last few sprints to help “make it look UXy” as if there was some way I could just “Integrate” into the team(s) development process, fix the UX problems, low impact to the code and do the aforementioned in a timely manner (Usually I say: “You don’t need a UX Architect, you need a priest as this thing is dead and all you’re after is a lot of prayers to reanimate the corpse”). Let me simply say this, as a contractor I would love nothing more than to have you do the above, especially if I am charging you per hour. I could simply tread water and extract large amount of free useless work hours knowing either outcome still does not result in a successful delivery. Ethics 101 aside, today, I am not that contractor, I am a UX Architect and I have a queue of other products waiting in line for my same attention. I do not have time to drag the timelines out so I have to instead get the above optimized. The flaw in this aforementioned process of white boarding features is the part that you first make your biggest and ultimately largest mistakes when it comes to making a software product (which is a general argument to make, but hear me out). As when you sat down to the feature, you did not document whom you are making the product for. In addition, how much time did you spend on refining the process other than the first bunch of fragmented ideas? Lastly, how do various stories influence one another? Agile is not an excuse to just deliver a project without planning and planning doesn’t mean you have to spend the bulk of your time in “waterfall” delivery purgatory either. It is probably a good point to say that if you are focused on delivery and you spent little time on discovery, well you are basically in for a lot of turbulence and “UX Tetris” in the coming sprint cycles.
Unpacking the Discovery phase.Take an existing project you are on today, now look at the User Stories you have (ignore your tasks). Now grab these stories whilst grabbing some pens & notepads. Now take some of these stories (does not matter where you start) and begin drawing a comic book of your product, that is “how would you draw an activity from the moment the user clicks on an icon to the splash screen and then to what they see first”.
Example – If I was building Outlook I’d say scene(1) is user clicks on icon, scene(2) splash screen loads, scene(3) outlook opens in default folder view, scene(4) user creates new email etc.
- How much influence did iPhone, iPad, Microsoft Office, Outlook, Windows 8, Adobe Photoshop, Adobe Illustrator, Visual Studio etc. all play in the mental model you had for the software(s) design?
- How many DataGrids and Tree controls did you “assume” existing in the UI as you drew the comic story?
- Did you draw the UI as a wireframe or just abstract shapes? (If you did wireframe, stop, rub it out and keep it abstract).
- For giggles, take the existing slice you have designed and then unpack that into tasks with forecasts attached. Record that number and cost it out in terms of effort.
- Now, for giggles again, take your team and tell them “make it simpler” that is refine the story further, squeeze it to the point where you automatically feel it is not as “Powerful” in terms of feature design.
- Once that occurs, run your costs against that.
If you mapped out Outlook comic story you would probably have imagined outlook as it is today, whereby you have the tree of folders, you click “new” and prompted the same way it does today.I think of it differently, I think that whatever behavior I invoke that triggers “new” is initiated, the entire user interface goes into “new mail mode” that is the existing chrome/HUD is screened back and all the specific requirements I have for “new email” is in front of me. To my left there is a smart way to access my contacts, especially given I’m in a large enterprise and often have issues between first/lastnames and aliases”. To my right I have a different way to create an email in that am I creating just a text email or am I creating something that I want to insert media into for all to visualize my point?. My point here is I could easily increase the development cost in order to assemble the user interface in a way that for me puts all the necessary pieces the end user will need in order to carry out the said task. Simpler doesn’t mean minimal (as that can often be misleading) it means how does one make the life of the persona simple in carrying out the task – given software is made to make our lives easier right?
UX Personas are not what you may think they are.Having redesigned the new email some may declare “..hang on, you didn’t specify the feature criteria fairly..” which is true, I did not. The next thing one needs to learn is my idea of a user and your ideas of a user are highly likely two different types. A UX Persona discovery will fix the assumption failure(s), whereby if you sit down and you unpack the word “user” to the point you exhaust your collective knowledge of that means. A UX Persona is not a story about “Jim who is 22, likes fishing and blah blah” as bottom line who gives a shit who he is or what he likes. A Persona designed like that is used for marketing purposes to help sales teams position the messaging & roles the said product will likely excite. A UX Persona typically needs to focus on two simple areas, that is what behaviors they are currently exhibiting (AS-IS) and what behaviors they should be exhibiting (TO-BE). The word “User” needs to absorb the fact that sure, a user is doing xyz today but you are in the business of innovation so you in turn need to move them to a new set of behaviors!
Eg: When Apple sat down to design the iPod touch they were not pandering to existing behaviors user(s) were exhibiting on mp3 players. They moved us all over to the touch interface and it was initially confusing but today I see five year olds queuing music & playing games.Defining a UX Persona for me is mainly about breaking their behaviors into four categories
- Influence (low to very high). Take training, mentoring, buying power, optimization etc. as categories you can help shape the low to very high score. Basically how much influence does this persona have over the adoption of your new product, the training burden required in order to use your new product and lastly the output of the product (i.e. are they the end customer for your customers customer).
- Usage (low to high). Similar to influence but now how much of the actual product are they going to be using? Specifically which modes of the product are they using (e.g. Visual Studio – Build time, Debug & Runtime). If you are writing software for both an executive assistant and their boss, then basically it is likely the assistant is going to have a higher rating then the boss depending on the scenario (vice versa).
- Form Factor. What are they using to access the product? Given tablets, smartphones, laptops etc. are all evolving technology what is the likely input of choice. Do not just isolate this to device/platforms but also are they using stylus pens, are they using modified keyboards etc.
- Environment. What is type of environment are they using the product in? Is it inside a coal mine where it is dark (i.e. white vs. black colors are a safety issue), is there many hazardous issues nearby? Is it noisy (distraction and cannot hear sounds), is it inside an office? Is it inside an operator building where your product is one of sixteen screens? Environment is really an important amount of information that gets lost in the “Story” creation. As we really need to pay attention to how much duress, the user is under in order to make their life simpler.
Example – When Silverlight was being built, the first version pretty much took the 20% path with a focus on video persona(s). As more and more versions of the product where released it then would take the missing 80% pile and subdivide that into 80/20 and again, take that 20% and chip away at those personas that wanted more than video.ProTip: Consider putting these personas into a deck of "Cards" and hand them out to all members in your team. As when you are discussing problems in your day to day development get into the habbit of keeping them in view when you say the words "Customer" or "Users".
You are in the patterns business.Do not fool yourself into thinking the software you are working on is unique and never been done. There are elements to the software you are making that is fresh in terms of features here and there but ultimately you are highly likely re-using existing UI patterns found in software today. The question is what UI patterns are you using and why have you changed them? That is to say which Color Modal are you going to use and why don’t you like existing patterns out there should it be different? It’s at this micro level you isolate your users actual behavior and can be majority of the time field tested with customer(s) to establish what is “usable” and which isn’t. It is also at this point you can attach “who” the UI pattern is designed for. If you catalog these UI patterns you can also begin the “visual” treatment process before any code is even written (in parallel) as its really about which assets are missing, which you already own and when they can be queued for delivery. Lastly and the most important point of all is that you can identify which Patterns are “Fresh” and begin your patent application(s) for retaining your intellectual property rights whilst at the same time ensuring that you’re not infringing on other existing patents out there. (i.e. have you read the terms & conditions of Office Ribbon, Adobe vs. Microsoft legal case around panel snapping etc.?)
Discovery integrates with delivery.To recap, you have taken the simple “user stories” and you have mapped them into visual stories that help illustrate the “before” and “after” in terms of refining them down into “simplicity”. You have also identified whom the actors or “user” actually are finite detail that even talks to what, where and how.
So, discovery phase is done right?No. This is the easy part as now you have information and you have a sense of possibilities. What comes next is the part where you often will lose the executive owners of your team. It’s the prototyping phase of discovery, that is take your ideas and come up with some wireframes or small time boxed interactive prototypes of how the comic stories can be achieved. I say you lose them as if you do not handle this carefully you will position this phase as being “wasteful” or “not as important – function vs. form”. The trick is to factor this phase as being part of your “delivery” but knowing it is actually more to do with “discovery”, (it is as if you Jedi mind tricked the project management & executive fears). Prototypes, Wireframes and Comic Stories are deliverable that works the same as actually writing the code itself in a normal agile scenario (i.e. they too can follow sprint cycles). You can do it parallel (if you are in v2 of this process) or you can do it sequential but the key is to deliver something that shows the investment is not wasted. You also iron out the unknown and can often deliver drops to candidates for the software(s) release to get a sense of what success/fail will look like had you spent months coding it for real. Remember Windows Longhorn? Yeah most of that was Macromedia Director. Remember Silverlight on the Nokia N9 back in MIX keynotes? Yeah that was kind of a mini PowerPoint style animation! Point is when you demo something, nobody 99% of the time asks to see how many lines of code it took to make. This approach builds confidence that your development has balanced the feature(s) required with market readiness/attractiveness whilst at the same time maintains a disciplined delivery schedule. It also allows you to really validate your UX personas against the features that they are attached to, as then you can start to formulate a fairly accurate understanding of what feature(s) are going to make the release and who they are being targeted for. Having just this alone can improve your “feature” cutting when the time for reducing scope occurs; again, you know more about the impact than a general “user” statement. It also helps to know this when forecasting costs for a new products development, which is how much this will cost to produce and who the first, second, third round of releases will likely excite. It also helps training / documentation teams begin preparing their work streams on how to manage change management issues. This also helps testing teams understand how to attack their tests to ensure the said quality gates are kept intact and aren’t being approached from “generic” scenarios (i.e. play the role of the UX persona not the roles like “let’s see how much of this I can break”). Finally, it helps Marketing/Sales teams get actually ready for the “launch” in a way that hits your target market squarely in the places it should. I.e. they know who to avoid making eye contact with during launch time should that UX Persona group not make the cut).
Sunlight is the best disinfectant.Before I close out this poorly written tomb, let me say that no matter what choices you decide to make, ensure you keep it all open and transparent. There is nothing worse than having all the discovery and delivery processes being locked up in the hands of a select few or worse making it available but displayed in such an abstract format that it simply holds no clarity around what just happened. The combination of UX and Code delivery needs to happen clearly, there needs to be KPI’s set and lastly you need to ensure everyone in the room has a visual simple display as to what is being worked on. An executive does not care about your “Done” board in agile and they do not care about how many stories you have to write code against either. They also do not care you have unpacked a generic User persona into five sub personas and lastly they do not care about how you have improved the “AS-IS” comic style user stories into the “TO-BE”. The assume you do this normally, so don’t expect an “Adda boy/girl” pat on the back as well it’s like being asked for a high five for knowing how to check email? The mostly care about progress reports – where is their money being spent and why. They will care at times when visiting peers or their power brokers come by for a visit, in which case bring all the above out for a full show & tell (factory visits is what I call them). If you can justify the costs in a meaningful way that does not involve reading text then you are miles ahead of other teams who assume that just because a Story is written down that everyone “gets” where they are heading. Visualization of your products early often gives everyone in the room clear communication around what the vision will end up looking like. There is less pressure for demos to be at a fairly high standard given comic stories, prototypes & wireframes will paint that end point in a much more cleanly digestible way (which ultimately will mean memory recall – which is what you all want). Lastly, before I close out, can I just say aloud – everybody relax. The agile movement is simply about taking a lot of big lumpy problems and breaking them down into really small bite sized pieces that are easier to manage. This is a strategy that is not unique and exclusive to software development; other industries do this daily and without as many issues as we often create. An Example of this process is grab 3-4 unique small “beads” and drop them into a bucket of sand. Mix the sand up, then using just a small scoop, plastic bags and a scale come up with a strategy on how you can sample the said mix evenly. Solve that problem and you can have a future in geology but at the same time, you will also be in a better position to understand how Agile + Forecasting actually work.
TITLE: The Days of Microsoft Lives
The door opens and in walks the CEO, he looks determined but still has the look of the 1980’s car salesman buried deep within.
CEO: Alright, listen up as we have a lot to get through today. Thank you all for all the hard work you have put into the work so far, it’s been super duper exciting and I want to thank you all for the brilliance you’ve shown. Windows 8 and Windows Phone 8 are going to be the baseline markers for our future successes.
Sinofsky: If I may sir…
CEO: Grab some pine Sinofsky and shut your hole.
An awkward chill flows around the room as Sinofsky slowly sits down with an expression of both embarrassment and murderous intent leveled at the CEO.
CEO: Ok.. firstly given the huge pressure we have at making this release the biggest the will likely produce for some time I need to have our entire marketing and sales pipelines at full steam. With that, I need your resignation Sinofsky.
Sinofsky: What the f….
CEO: Basically not a lot of people like you and I asked you nicely awhile back to launch Windows 7 on the tablet and you wanted to play games. Well, you played and lost so with that, resign and clear your shit out by this afternoon. I also need to use you as a way to soften the upcoming failures with the board, so you may hear some things about what you did in the future, best you go along with whatever is said.
CEO: Now, I need to split his role into two as I never want to see an executive with that much power again. It frightened me a little.
CEO points at two executives either side of Sinofsky.
CEO: You two, yes you two you’re both in charge but in reality you’re not in charge. Speaking of executives with power, has anyone seen Scott Guthrie? … no?... Good, keep it that way as if he climbs out of that Azure hole we buried him in I want to be the first to know.
Sinofsky: Actually, he’s doing an amazing job with it and is likely to turn that turd around into a success. I mean it has come a long way since he took over the re…
CEO: Seriously you’re still here? … Is not there a box you should be filling…
Sinofsky: Shouldn’t we first figure out what we are going to say to the press? I mean my leaving will create an issue for both the PR for Windows and potentially the stock price.
CEO: You’re not that noticeable. Get packing, I will talk to the press later about it.
Sinofsky slowly gets up out of his chair and begins to walk out. Giving the CEO a glance as if to say “..this will be your undoing…”
CEO: Next, I want marketing to blitz the entire globe with ads about Surface and Windows 8, if you can also not separate the two products I think it will help cement that Windows 8 is a tablet and OS without saying that out loud.
Marketing Guy: Sir, wouldn’t it be prudent to ensure we keep the two separate and we also probably should discuss with supply & logistics about how we are going to supply the demand?
CEO: What’s your name? ..Does not matter…You are fired.
Marketing Guy leaves the room crying chanting, “I knew I should keep my ideas to myself, damn it, my wife is going to kill me…” as he sobs running into a glass door.
CEO: Market it my way people. Next I want to also limit our purchases of Surface online and via our retail stores. It is important we look like Apple In order to beat them at their own game.
RetailStoreExec: About that.. You know all of Apple stores are designed to reflect the environment they are housed within. In that, they really do go out of their way to work with the existing and surrounding architecture. We should really consider doing that as well as just copy their internal furn…
CEO: You want to join the others that got fired this morning? Pick one style and keep repeating them we don’t have time to be design focused.. more stores.. supply.. make it happen.
CEO: Can someone get in contact with Stephen Elop over at Nokia. It is time to move our timetable forward a little on Project Nokia Acquire. I want him to hold off on the Lumia 920 outside the US, if he can shorten stock orders worldwide that will surely lower the share price further for our takeover bid. Also, tell him that we got rid of Sinofsky, as he will be happy with that given Sinofsky used to always undermine him in during his Office days (builds favor you see).
OEMPartnerCVP: Won’t that also hurt our Windows Phone 8 adoption chances? As wont most hold out for that phone given it seems to be the one with the most features?
CEO: Yes. You are right but here is the thing: that was Sinofsky’s fault. If we can also bring moral and hearts/minds lower over the Christmas quarter I can then turn the ship around post Sinofsky leaving and make it look like I am a competent CEO and saved the day.
OEMPartnerCVP: Sir, you realized you said that out loud right. In that, it was not your internal voice.
CEO: I need your resignation by the end of the day. You know too much.
The camera begins to drift away from the scene with the CEO’s voice getting harder to hear but one last order is heard before the Microsoft logo fades into view.
CEO: Has anyone seen Guthrie? .. Make sure he his kept on the back bench do not let him out of that Azure cage. He has to many people adoring his abilities and he reminds me too much of Bill… Someone call Bill and make sure he knows that he cannot fire me or I show those Polaroid’s with him & two dead hookers.
You are all fired, you know too much now.
Question. If we all say WPF, is dead, wont that hurt its present day adoption?Answer. Yes. Definitely and I have personally been at the bruising end of that conversation. There is no doubt that if we the .NET community declare WPF end of life we in turn let Microsoft get away with their bad decision making (in truth my bad decision making as its former Product Manager) and lastly we shoot ourselves in the foot for future XAML friendly work. Having said that, declaring it dead is important short-term loss but potentially long term gain and I will explain why. Mobility platform adoption is at critical crossroads. Today companies worldwide are under a lot of pressure to discuss what their software offerings in and around web + mobility are likely to be. That is to say, the sales pipelines are handing feedback up stream that ask the question in around “when are we going to be mobile” (not in a literal sense but conceptually). If we today continue to prop up WPF as a “good enough” technology bet knowing Microsoft has abandoned any further support then we are placing the entire .NET community at risk of alternative development. This is to say that most developers who are bored with .NET or do not’ care will not be fussed either way and probably would embrace this all the more. Developers who do enjoy sitting inside Visual Studio and dare I say, Expression Blend might find this a troublesome thought to contemplate. The fact of the matter is .NET development is successful given its tooling story and .NET framework often gets you in and out of the development workload quite fast (I am a former Java/ActionScript developer, so I am not saying this a pure .NET whore). If we ignore the Windows 8 and Windows Phone 8 proposition in favor of high fiving WPF, well we are placing our short-term bets on desktop development here and now whilst leaving the whole mobility continuance exposed to iOS or Android development. This in turn can have a knock on effect, whereby developers in the .NET space are given a choice of either doubling down on HTML5, up/down-skilling in iOS or Android development practices or worse being outsourced to specialist teams who have prior experience in the alternative(s). WPF has no mobility story other than a remote desktop application on an iPad touching a desktop built in WPF (messy and clumsy). I see the whole Windows 8 proposition as a mess; do not get me wrong Microsoft have done us all no favors with their UI choice(s), developer relations nightmare and lastly internal bickering and constant wave after wave of aggressive behavior. It is time the company either started to fire some executives or regroup and come up with a better strategy than the one(s) they have now. Until such time, it in the end it has been left up to Architects worldwide who have influence to provide clarity around what the Microsoft mobility offerings look like and help position new projects towards this in a calm manner. I am not saying this will happen overnight it will probably take 1-2 years to push the business community into the Microsoft Windows-only mobility space. If we also can carefully, correct Microsoft messaging that WPF is dead whilst at the same time Windows 8 is the next version of WPF (current source code, tooling and skill reuse), you stand a greater chance of success than you do by choosing to downplay its state. The trick is to go beyond Microsoft’s weak guidance today that “Silverlight & WPF aren’t dead, XAML/C# are alive!” as if that was the answer to the question. It clearly needs to be expanded on further and teased out in careful threads on what that actually means. It’s not about XAML/C# it’s about “can I keep my existing work on Windows 8” first and foremost. If they can answer that question with clear and definitive guidance the whole WPF is dead becomes less of a bad taste. If they cannot answer that, then look to the blogger left or right of you and pray they understand Microsoft better than they themselves as its coming down to the ye olde “influencer takes all” position. Ubiquity seems to always be a sticking point with Microsoft. The fact that WPF right now has probably one of the best ubiquity stories that would make Silverlight at its peak salivate with envy still goes largely unnoticed. It has to do with Microsoft’s lack of marketing & evangelism around this but in reality you could knock out a WPF application and reach more audiences than most other languages. Think about that, how many Windows machines are there worldwide, specifically when it comes to Business customers (less consumer). Now what has always been the sticking point about making applications in HTML vs. Windows? Answer – cross platform. Having cross-platform has always been most sort after request and the main core reason why WPF adoption has often been parked in the “maybe next time” bay. The amount of times at Microsoft when I was in the Product Management team we faced this issue we would often just retreat to Silverlight as an answer hoping that would get deals across the line where possible (hence Silverlight got all the investment and WPF didn’t). The reality is Microsoft is a Windows only company and for a while, Silverlight and its x-platform strategies distracted us all, but ultimately that is what killed it. Microsoft cannot as a company afford any more to be semi-agnostic; they are losing so much market share right now it is ridiculous. They now have to regroup (Windows 8 product lines) and go back to their tired playbook of “Windows Only or bus” (it’s the only trick Sinofsky knows). If Microsoft cannot position WPF as a viable solution to real problems and instead are bowled over with weak answers to the cross-platform perception then what are we all doing? Do you keep fighting the lonely fight or do you regroup and rally behind the one thing that actually might get you out of this discussion a bit more cleanly via the Windows 8 pitch. Tooling is tapering off. I do not see Visual Studio 2012+ and Blend+ continuing much more in investment around Windows 7 + WPF. We all saw this happen with WinForms and it is not as if they will cut and run with these two, they just will not spend too much time on the problems that are faced with tooling for WPF. WPF is likely to still have internal investment so long as Expression Blend and Visual Studio continue to pull from its code base how that spills over to the public though is an open question (that will not yield answers). It is in Microsoft best interest to turn a cold shoulder here on WPF (despite its internal adoption) publically in order to get everyone shifted over to Windows 8 in a more timely manner. If they let WPF linger or keep feeding it backwards compatibility then it turn becomes what Windows XP has been to Windows 7 or Internet Explorer 6 to Internet Explorer 9 … a legacy you just can’t kill off no matter how much you promise “new” is better.
Question. Ok, so you are saying let’s all announce WPF is dead and long live Windows 8?Answer. Yes. Before you grab your stones and start throwing my way, it comes back to the key driving principle behind why that is. Do you optimize for a short-term gain and in turn leave the mobility and future platform battle to the alternatives or do you instead promote its end of life but do one better than Microsoft themselves by outlining what the transition will look like over the next two years. What I mean to say is, do not just say, “its dead, end of story”. Instead, say, “It’s dead as long as Windows 7 isn’t alive. The future of WPF however is tied-up in Windows 8, so if we want to get more into mobility then we have a transition moment here. We can continue to keep existing code that we have written and transport it across primarily. Secondly, we can also retain our developers skill sets that we have invested today given the tooling and languages are still intact (with minor and major modifications throughout). It sux and I am facing the same issue right now. As I sit here and type this on my Office 13 Preview via my Windows 8 Install, I am doing so under duress. Do I like Windows 8? I don’t like the UI, sorry I think Metro is a form of mass design retardation in full flight but on the flipside I can live with it provided I get a UX platform that I can do more with. I will trade my dislike for Windows 8 upfront if it can let me create a vision of what I think the software industry should do with its out of date workflows & problem solving. I’ve waited 15 years+ for a descent UX platform to come along, I sat through VRML, DHTML, Flash, Flex, WPF, Silverlight and now this hell spawn known as Windows 8. I worked as an outsider and insider on all of the above and I’ll be damned if I’ll give up now because some bald headed napoleon complex ass-hat decides “He’s got Steve Jobs beat”.
Question. You are still putting developer’s jobs on the line.Answer. Yeah I probably am. I am not proud of that fact and when I was part of a team that funded Silverlight & WPF we actively choose to ignore WPF in favor of Silverlight. It was a calculated bet at the time but clearly, the result is we have two products facing a slow death march in favor of a reboot to a solution we almost had at the start. Let me unpick that further. When I first joined Microsoft, we were fighting to get WPF into the hands of .NET developers worldwide. We needed to move everyone from Windows XP over to Windows Vista and in a timely fashion. Microsoft spent millions pushing the agenda alongside getting Office Open XML blessed as a standard (given it would help influence adoption). The whole thing was a mess and as a result Silverlight was born if anything as a way to buy some time around what to do in terms of solving cross-browser and cross-platform related issues (with a keen eye on mobility). Silverlight did its job initially but in the end, the chaos that flowed from those days to today still is haunting us all. My point is that by talking openly about the technology platforms the way I have, I am looking to cut through the political and chaos that is before us today. I am looking to instead help others diagnose the problem aloud as in order to solve a problem you first have to admit you have one. WPF is dead. Ok. Now what. Do you go HTML5? Probably yes, but do you honestly think WPF being alive or dead have influence to this discussion – more to the point do you think this blog is going to send companies racing for HTML5 now? I would say if a decision is to go down the HTML5 path that thought was planted well before I arrived there. Do you invest in iOS or Android? Again, go for it watch the dollars you were going to spend on HTML5 and WPF escalate given its not only foreign development practices to your existing .NET space but you probably will have to absorb the time to up skill or hiring of specialist teams to do the work (India outsourcing can only buy you so much). If this blog is the catalyst to a WPF team getting the termination letters then you were cooked well before I arrived I’m just the 1000th cut.
Q. Is WPF Dead?A. Yes and No. Yes WPF as you see it before you is end of life that is to say no more code will be written for the “platform” given Windows 7 and Windows 8 have different DNA going forward. No as in when we decided to move everything over to leaner Windows 8 platform we had to put both Silverlight and WPF on a diet in order to get Mobility parity / compatibility in check. The Upside is we’ve fixed some of the UI rendering issues that have plagued you in the past; the down side is we’ve had to sacrifice features here and there in the process.
Q. If I make an Application today in WPF it won’t work in Windows 8 tomorrow.A. Not correct. Expression Blend uses WPF still in Windows 8, so in a way you’re covered as long as VS2012 and Blend continue to take their cue from the previous XAML Rendering that has been in place since Windows 7. There are certain things you can’t do in Windows 8 going forward though, that is to say new features won’t work in both Windows 7 and Windows 8 for obvious reasons. If they aren’t obvious then …stop coding now.
Q. Do I have to learn HTML5 or C++ in Windows 8 now?A. No. The neat trick here is that we took the body of work found in Silverlight and made it handle the rendering of XAML. Now we didn’t take it as-is we again had to scale it back and use it as a starting point for a reboot of WPF/Silverlight to ensure two things happen going forward. The first is that we have WPF/Silverlight parity issues resolved in terms of performance and developer centric API changes whilst at the same time we had to find a way to make Steve Sinofsky believe that Silverlight was killed off. The last point wasn’t a technical issue it was more of a political one and so in order to help give him the illusion of Silverlight’s death we renamed a few namespaces and adjusted a few features here and there to give the appearance of “new” on the “old”.
Q. Why did you change so much in Windows 8 to confuse us all on old vs. new?A. We had to find a way to put Internet Explorer back into the hands of the masses in a more aggressive manner. In order to facilitate this internal metric we needed to also scale back Silverlight’s popularity given when you think about its future roadmap and Internet Explorer the two will end up competing with one another. Having Internet Explorer start taking over the HTML5 discussion would also help us win hearts and minds with the non-.NET crowd which would then help boost our internal metrics around Linux, Php, Apache and MySQL/Oracle compete (that has often plagued us for many a fiscal year). Once we’ve placed Internet Explorer onto many devices worldwide we will then ask developers to fork their beloved HTML5 in a way that lets them access Windows 8 further. This in turn will help us regain the lost dominance we once had before all of our Internet Explorer staff left the company to work for Google Chrome. Additionally, it will help us with our many year attempts at attracting more developers to our Windows Server & Tooling business units. Now to answer your actual question it’s important to know the previous strategy for Internet Explorer as now the problem we face both internally and externally is how we are going to balance Internet Explorer’s future with XAML given the old “Silverlight” concept was directly competing with this strategy. In short we had to make it feel there was a lot of change in the room and decided that letting you believe that what’s really happened is that WPF & Silverlight were merged as one and that Silverlight 5 wasn’t the last release as really Windows 8 is Silverlight 6 Desktop. Letting you believe that would keep you preoccupied with that branch of thought where what we need you to do is come back to the Internet Explorer way of thinking – there is no plugin only a browser.
Q. So… you saying Windows 8 is really Silverlight 6?A. Yeah in concept yes. Technically no, but if you take a step back from our bad messaging, public relation screw-ups and lastly our idiotic executive we pretty much did what you asked – we fixed WPF and Silverlight parity & performance and we made it also work on both desktop and mobile. I give you Windows 8.
Q. Well ..why didn’t you just say that? Why did you scare us with C++ or HTML5 rhetoric?A. I have no answer suffice to say there was lots of infighting going on and I don’t see Soma and Sinofsky sharing a beer or two at a BBQ in the near future unless the bottle was broken and one has the other pinned down with a desire to kill..
Q. You said mobility and parity are you saying Windows 8 is compatible with Windows Phone?A. Yes. Windows Phone 7 was kind of a hold our place in the line while we figure out what to do next release. It was badly marketed and in the end we were too late to enter the market – not to mention we weren’t ready to talk about the work we were doing with Windows 8. Now that we’ve finally hit reset on Windows Phone via our 8.0 releases we’ve now found a way to put the XAML rendering we have in Windows 8 onto the phone. Well to be fair we really kept Silverlight’s DNA alive in both which has now let us enable you to write applications on both platforms via our new upgraded API’s and tooling (again to give the appearance of new). This is in part why you can’t use Windows Phone 8 code on Windows Phone 7.x compatible devices, Additionally you would see how we swapped the two out and start to guess what really happened during the Soma vs. Sinofsky fight.
Q. I don’t think that’s technically correct.. if you look at Windows Phone 7 and then look at…A. I’ma let you finish by stating that the phone may not have changed radically but Windows did that is to say if you were going to drag Silverlight’s work into the new Windows 8 whilst releasing Windows Phone 7 previously then which of the two do you change? The phone or operating system? – Answer is you do both but incrementally.
Q. Hang on so all of Windows 8 is now Silverlight? That doesn’t make sense..A. No. Windows 8 core is, (as the messaging and PowerPoint decks say,) new. Now the XAML piece that bolts on top of that core is what I’d call “Silverlight 6” that is it’s all the work that has been done on WPF/Silverlight since their birth converging as one.
Platform Adoption - Use Case.Garnter’s VP recently came out and stated that 80% of businesses by 2013 will be outfitting staff essentially with an iPad like device. It’s a pretty bold stat and you have to remember that Gartner get paid to come up with research by companies that need the said research to abstract their sales pitch from bised to unbiased opinion - that being said - it’s not unreasonable to believe what he stated. Picking up a mobile device like an iPad at first seems like it’s a toy, or unnessary for variety of industries as they will never replace a desktop device. An assumption like this will be short lived in most large companies that are weighing up their platform decision making. Firstly concept of an iPad in the hands of an after hours worker is more valuable than a laptop. The main reason is they are carrying the device around with them and are more likely to whip it out during a dinner with friends than a laptop or slate (excuse me while I take out my laptop, no continue talking vs let me look at this device that almost to the untrained eye gives you the appearance i’m checking the bill for our dinner folder thingy). The worker opens the device, performs some quick “at a glance” review of the data within their company, see’s no urgent issues and continues to go about their evening. Having First response reactions are highly valuable and will be the likely first candidate for mobility in most verticals. It’s more to do with the psychology of the device than its possibilities that is to say you could shift a lot of your desktop solutions onto an iPad-like experience but it won't’ happen until organisations wrap their heads around Security and how they plan to break up their current desktop experience(s) into more finite pieces. Security will be the biggest sticking point initially and UX Technology adoption aside, it comes back to the fear that if a user were to leave the said device at a dinner table then people can shut down a factory or steal intellectual property from a company faster than if they were on say a laptop (yes it's retarded but you know there’s a Security jackass in some IT Division scaring the kids with just that scenario and getting traction). A company will in turn dip their toes in the water, they’ll use Frist Response workflow / process as a way to see if this whole Mobile thing has legs from an investment standpoint and technical adoption acid test.
Platform Adoption - Windows 8 Hijack.Having forked browser discussions or worse having forked staffing of development teams is about as interesting to a large company right now as letting users have free access to an iPad without a SOE lock down. The reality is right now any adoption bet a company makes is likely to be repaved post Windows 8 sales begin as weird as that sounds? If you look at Windows 8 today you’ll see the Google Chrome Logo color scheme spread out into a bunch of Boxes that are basically fluff for the consumer. A few people out there will get all excited about the Metro - err..Modern UI - style experience(s). Companies who have a solid bet on .NET however will be keeping a very close eye on how you can hijack the consumer experiences to suit their agenda(s). Just like in the Original XBOX or Kinect release in which Microsoft had expected the market do X in turn users ended doing mods/hacks to use it for their own needs. A company facing a mobility crisis as the one they are facing today will see past the mickey mouse Windows 8 UI layer and instead hijack it for their own needs. Giving users the ability to wet their appetite with .NET level code on Win8 devices will be enough to hold the door open in the potential “if we don’t build a mobile/web story our competitors and/or customers will kill us” door closing campaigns. That in itself is an interesting thought to let fester, what if Windows 8 saves the Enterprise from having to decide on HTML5/Android/iOS? What if the .NET kids simply keep pumping out a WPF like solution but on a device. Wait, I just looked around and it occurred to me. It’s already happening only downside is they need a way to kill off the Windows 8 AppStore experience and revert back to a “my app will be all you need for this new Surface hardware you have in front of you”. Windows 8 will have a yearly upgrade path, there will be a subscription model that works like it did with OSX Lion and if you combine both Apple payment ideas with Silverlight’s deployment model you have a fairly good enoug Windows 8 story that will keep Business occupied long enough for the merging of Windows Server 2008 and Windows Enterprise Customer Client Thingy story. I’d wager that if business does uptake on Windows 8 they will force Microsoft into a reactive situation where they’ll likely have to sacrifice features set for consumers only and instead opt for Enterprise (which is where they will make their unit sales through the most).
It’s not their fault, it was the company that is giving them the legal eye’s fault.Yeah you could throw the company in question who would argue Metro is their trademark under a bus here. You could do it easily enough with the right amount of PR spin, but, anyone who’s been a Product Manager for more than five minutes in Microsoft would be able to tell you swiftly that you never ever ever name something in Microsoft without LCA running trademark searches against it. Exhibit A - Silverlight’s Out of Browser. When we came up with the feature of offline Silverlight / Desktop usage (aka the feature that would later kill Silverlight) we agonised for weeks over what to call it. We tried out names like “RIA Desktop” and a whole bunch of left field names that had no real meaning. Each time we posted a probable name for the feature we had LCA verify we wouldn’t get sued over it (given the US is a sue happy legal system). Unfortunately the ass hats in the Microsoft Marketing team(s) didn’t get the memo that most if not all Junior Product Manager(s) get when they first join - You don’t name a puppy unless LCA approves it. Either LCA screwed up here or it was Microsoft Marketing (I somehow think it’s the later).
Where to from here, how do you undo a brand?Given its a fairly fresh and clearly abused name it may stand a chance of being deleted from the minds of millions of .NET developers worldwide. I doubt it will get a high five for its replacement name though, as “Windows-style” kind of looks like the default case in a long list of good idea switch statements, but none the less “Windows Style” it is. I feel however for people like the MetroTwit team who have worked quite hard to claw their way above all the other twitter client clones to establish a unique brand. I guess Long and his team will need to hatch out a plan around “WinTwit” or something along those lines if they wish to comply with Microsoft’s “oops” moment. In closing Microsoft has yet again screwed up and like all its previous screw-ups its left yet again up to the community to dig in deep, sigh and cleanup after the company’s amateur developer relations). At some point with all those billions Microsoft has been making they will actually hire someone with Marketing experience but point in case they hired me as a Product Manager for the company and I had none! That thought will fester.
Specialised TeamsCubicles of tomorrow aren’t going to be housed with team members who can write and design for multiple devices at the same time. They will be broken into specialised teams and the more and more business(s) begin to consolidate their branding into the device market(s) the more they will look to simplifying their product portfolios and brands. A team of .NET developers who write HTML and WPF client(s) will most likely need to include an iPhone/iPad, Android/Blackberry team(s) who mirror their offering. Companies will aggressively recruit and look for people who are agnostic in one or mediums but realistically given the complexity involved in all the current UX Platform(s) it just isn’t feasible to find that many people on the market waiting for a job call.
Browser ForkingHaving a specialised team isn’t restricted to proprietary solutions, it will also factor into a more traditional medium of HTML development and design. As strange as this may sound to hear, the idea that HTML5 will bring the industry into a global position of unanimous parity of it’s implimentation amongst all browsers is simply not correct. The only browser that i’d argue has a vested interest in remaining pure would be Google Chrome and that’ simply because having the entire globe of online consumers still accessing HTML work’s to the search engine and advertising model of Google. Having a browser fork in API and extend beyond HTML/JS works to Apple, Google and Microsoft’s favor as well. In fact, I’d argue Microsoft are banking on the ye olde embrace / extend model it’s had in the past (with great success).
Diverse a Product PortfolioOnce companies have audited and forecasted what their internal current development team models will look like for the next 2-3 fiscals, they in turn will need to reflect on which bets to place in which markets that are dictated by their choice of development. It will depend on their choice but even then they still need to figure out how they can leverage an iPhone more than they can an Android (or substitute your own technology bet here). For every device you target brings a variety of constraints and expectations that you need to meet prior to even beginning development. Diversity in choice will ultimately have an impact on a companies brand and consistency model in how they want to broadcast their personality to their respective users. If you target an iPhone for example you have a pretty prescriptive UI design to leverage so it pays to run with it and not against it, given it will reduce your time to market cost(s). Same applies with Android and especially with Windows Phone. Problem with prescribed design isn’t its ability to convey a uniform user experience with an end user it’s core issue is the reduction of being able to stand out amongst your consumer(s). If you spend more you can overcome the prescribed approach but in doing so you also need to ensure you can leap beyond the baseline of expected behavior.
Metro-style could winoutPrescribed user interface design in turn will slowly become more and more weaponised in a way to again have a single designer rule many device(s). If you can invest in a smaller group of design professionals who have custodianship of a brand and the personality that comes with it, you in turn can reduce your costs on having less investment on design and more on engineering. A company may prefer the model of having a centralised design team that works with 3-4 device teams as a way of offsetting cost’s associated with multi-targeting. Metro-style design in turn plays a comfortable role as Android and Windows Phone 7 pretty much lend themselves well to this vision of the way design should be. iPhone/iPad however goes in the opposite way that is to say the composition found within these devices are much more detailed and focused in around theming the experience as much as it’s about enabling an input driven experience. The design(s) to date using metro oppose the idea of having real-world objects embedded into the 2D design composition (less turning knobs, wooden textures etc). The cost for design here is hugely decreased as a result meaning in reality a design team need only wireframe the composition of what they want a particular screen to look like, layer in color and ensure it adhere’s to some basic principles that relate to consistency, minimalism and lastly shape driven pictography / typography (pattern recognition 101). Having a metro-style solution going forward can work on all device(s) and whilst it may go against the iPhone/iPad design grain, it can still sit within and more to the point it would reduce a brand’s chance of inconsitency and personaltiy (closer to the one design on all belief).
Designers did this to themselvesCompanies like Microsoft, Adobe, Google and even Apple have reacted to a problem that was created by designer(s). The problem started the day when designer’s went against the developer grain, that is they forked off onto their own technology stack which was designed for them (Apple). In forking their work flow away from mainstream development this in turn created a workflow issue and in turn fueled companies like Microsoft to invest in a lot of tactical decisions around how to solve this said problem (WPF, Silverlight etc). The forking also gave way to a different approach whereby companies like Adobe began to also invest not just in a x-platform tooling but also for a while there in a x-platform delivery that works with the said tools that designer(s) had grown to love (Flex, Flash). Once Apple had also moved to an Intel chipset this in turn gave away to what I would call the “Apple Developer” generation where over time more and more of a developer centric foundation was being build to which a series of tools could also now target the designer(s) (amongst other creative professionals). Design for the better part still remained in its own cut-off from the rest area and the more and more developer communities that didn’t have a dependency on Windows began to emerge, the more they instead crossed the divide and began to work on Apple with their designer sister & brother(s). The developer defection to Apple created a huge amount of issues and problem(s) from within Microsoft as now they are facing a massive problem around having developers target Windows but also ensuring there are the right amount of designer(s) ready to support such developers. The more applications being built on Windows the more they sell Windows is the simplified formula. Google also now posed an issue whereby they have no real dog in the fight, that is to say Apple or Windows it didn’t matter provided you targeted HTML and helped fuel their Advertising & Search revenue streams of tomorrow. I won’t go further into the various competitive back and forth that has gone on suffice to say at the heart of this entire issue around choice lies the designer. The illusive designer who often costs a lot and produces what will soon become the main differentiator in a companies offering - user experience.
Function is no longer important form isAs the industry reacts to the competitive changes that are ongoing, much like a teenage boy does around the time of puberty - design in will start to become the focal point of such change. A designer will feel suddenly more wanted, targeted and will be taunted and attracted with some quite lucrative offers. Developers will also see this and start or have began to shift career gears and start looking into ways of becoming a designer. Some will fail whilst others will discover a suppressed design gene within lurking and waiting to be unleashed. The designer will however become the leader of the pack, so used to being the one at the back or considered replaceable, they in turn will now become the most sort after as in turn what is replaceable is engineering (the market optimised for function instead of form for over 20years). Here in lies the issue, the designer isn’t really equipped to decide the outcome of a generation of computing, they will always prefer to take the right amount of time to do the right job in a way that adhere’s to their internal principles around how the world should look.
Winter's not coming, a Fork isA designer today hasn’t gone down in price or time to market, the time it takes to produce a design still takes just as much time and effort as it did last year and the year before that. It however got a little more complicated as the canvas now comes in not just a 1024x768 screen (or there abouts) it now comes in a whole host of screen sizes and operating system level imposed limitations. Once the corporations that fork their design teams figure this out, styles like the metro-style will begin to emerge as they in turn can bypass the designer if in some fairly competent hands. As in reality the importance of User Experience Principles has become weaponised with the more specialised teams making their work public for all to borrow/steal. Don’t be suprised if a team in the near future had a designer but now doesn’t and solutions that look like Microsoft Metro were being produced. Google and Microsoft have began and in parts Adobe’s tooling also adhere’s to this as well. Having real world objects in 2D design isn’t a bad or limiting thing, it’s an ongoing design evolution around trialing & erroring deeper design beyond flat monochrome wireframes that have or haven’t been colored in. Don’t knock it as the alternative isn’t as deep in its composition.
If I could get paid for each time I’ve been asked which UX technology/platform should one bet on in order to produce the next generation of software in day to day business – I’d be quite well paid!
I don’t have an answer, and what’s really sad about that is that I should have a few answers not just a single one.
Today, you’re spoiled for a choice of technologies to help you produce some user experience namely for mobility. Since the introduction of the iPhone and iPad it’s arguably put something we’ve all kind of known into the mainstream hands, which is “experience matters”. Businesses are now keen to ensure that the next piece of software they produce works like it would on an iPad or iPhone (the amount of times I’ve been given a brief that uses that as its baseline for success is almost 90%+).
Why the issue in selecting today then? Well let’s look at the brands in question.
You cannot disagree that Apple’s influence on the UX discussion has been quite loud and obvious. Almost all phones and tablet devices have pretty much copied the entire existence of their products to the point where even though they hadn’t invented some of the ideas, they now look as if they did. Having said that, Apple still is a prescribed existence in that in order to play on their hardware you have to develop & design to their standards. You also have a limited amount of agility in order to take the device and slot it into various enterprise/industry verticals (mining, finance etc).
Distributing your solutions via a closed private cloud like existence can be done with iPad/iPhones but its still a bit messy in deployment. Furthermore inside almost all large organizations your cubicles of developers don’t have “Objective-C” in their resumes.
Whilst it has become the baseline for what a device driven UI should look like in the eyes of most business and technical decision makers, it’s still got a lot of latency and turbulence around its software development life cycle (i.e. it’s fast become a specialist skill not so much as a mainstream one).
Google / Android.
Google have managed to hold strong with their device platform story, that is to say their entire development and design pipeline isn’t that bad. Having said that I’ve seen, heard and been in enough meetings to see it being instantly rejected and it has to do with versioning and security as the core reasons for rejection (right or wrong).
Furthermore Java development at its core isn’t something you see go hand in hand with design focused teams, so again you have this issue with as stated by Apple around specialist skills vs. mainstream skills mixed with some market acceptance issues.
Just read my blog for a few pages you’ll see a theme emerge. Microsoft had a few ideas around what the UX space should look like, they put some bets on the table around these ideas, they got some semi-successful acceptance worldwide on these ideas but now they’ve kind of hit reset on the said ideas, taking two steps back and pissed the developer base off in the process.
To summarize, Microsoft has a whole new round of trust issues around long-term decision making, their tooling is good enough to build large enterprise applications with and lastly they still have a healthy developer base that have mainstream skills in C# & XAML.
The downside is their entire strategy around what you should or shouldn’t do going forward is out of control and requires a focused mind to unravel.
What I would say though is that Windows 7 is likely to be around and in a healthy state over the next 3-5 years and I think the hardware market will still look into ways in how to socket Windows 7 as their native OS when possible (for business, not so much for consumers). Given Windows 8 Surface is making their own hardware it could also be a negative for Microsoft, so whilst the only real option for hardware makers is to adopt Windows 7 or other, this in turn puts a long-term question mark around whether or not Silverlight or WPF should be something you double down on?
I often praise Adobe more than I have in the past as despite how close they came to overtaking HTML as rich media technology platform, they have managed to regroup nicely around being focused on tooling.
Given the turbulence above this company may solve the problem through tooling so it could even abstract the decision making process around which is the next bet by simply saying “it doesn’t matter, just use Adobe XTool”.
It’s still a long way off before that idea is realized, but none the less Adobe Flex / Flash aren’t something one should ignore outright. It still has some legs and although its clear Adobe Flash and iOS will never meet, they do meet however on Android and potentially Microsoft Windows device(s).
Despite Silverlight’s attempt to knock Adobe Flash out of the decision process if anything Silverlight’s demise has strengthens the runtime’s position further.
That’s all argumentative, so who’d you pick?
There the above working summaries overall and it really comes back to the question of making a decision. A decision like this is important and still necessary as when you start making architectural bets for the life of your next industrial grade solution, you need to line up how you’re going to present your connectivity to its vast user base.
Walking into a meeting and saying “all of the above” won’t fly, walking in and holding the posture of “right tool, right job” mantra also may make you feel like you’re a software mountain sage it does little for productizing ideas/solutions to a customer base who have a variety of IT environment(s) that are looking to your company as a lifeline to making the said decision.
Bottom line is someone somewhere has to be the one that says let’s go with “X, because…”
If I was asked today which one I’d pick out of the lot, given I’ve worked in all the above.
My bet for enterprise would be WPF for one simple reason – Windows 7.
Microsoft spent all of last year praising how successful Windows 7 was in terms of sales, record profits and so on. What I got from all that bravado was that whilst Windows 7 was stomping on Windows XP wind pipe, it also was replacing the old problem with a new. That is it won’t be something in which gets deleted from Enterprise machines that cubicle workers and field agents use today anytime soon.
That for me has a much further and greater ubiquity story than most either realize or choose to acknowledge.
iPads are definitely something that may get some traction going further in large business but ultimately it’s such a specialized decision that I think having those devices do anything outside of a HTML app in its first generation of solutions in the enterprise is something that I’d say isn’t a worthwhile bet (it’s still in pioneering mode).
WPF and WinForms will still have a much longer usage than most will also care to agree outloud but I think once Silverlights engines get shut down more and more the retreat position for most will be back to WPF whilst they wait for the whole WinRT story to stabilize.
Adopting WPF today gives you also some healthy amount of skills to target WinRT later on, but it also gets you into a position where there is a likely chance of some additional changes / upgrades should the WinRT vision fall flat (Which I’m thinking it may very well).
That’s what I’d say out loud, as I’d say this based simply on your HR recruitment potential, tooling story and lastly ubiquity related decisions that are made in organizations where little patience is given to solutions built in HTML of the past.
My opinion has now been noted, so what would you bet on and why?