The mission to land a .NET developer on Jupiter.

image

Ask not what Microsoft can do for you but what you can do for Microsoft. That’s really the inspiring quote that President of the new colonization group – aka Windows  – needs to say to the unwashed masses of tomorrow.

Microsoft is taking on a mission that looks to go beyond the moon, they want to land on Jupiter and it will be done with Apollo. Still confused?

If you’ve not paid attention to all the codenames flying about the place you’d be forgiven to be confused as there’s a space theme happening and with these code names its quite interesting to see how the objectives for the next generation of Microsoft is likely to shape up.

Jupiter is rumored to be the reset button to Windows Presentation Foundation (WPF) and Silverlight. A reset is the latest suspicion as just yesterday I found out that the XAML ethos within Microsoft has been disbanded and set to various corners of the company.  Some went to Internet Explorer team, some went to Windows teams and others went to Google, Amazon and Facebook.

Why disband the teams? It is time for pencils down folks, let us stop piling on code for the existing stuff but now let us set our sights for the future, let’s be bold. Let us be daring. Why land on the moon when you can land on Jupiter floating on a cloud of Azure? (Ok, I lost myself in that metaphor as well).

Ok fine, I have gone through the seven stages of Silverlight/WPF grief and I am at acceptance I think.

The Mission.

In order to better prepare for the mission ahead, let us think about the various things we need to account for prior to launch (September).

Replace Crew Members.

image

Inside Microsoft there is a lot of toxic turmoil going due to internal re-orgs (which is fairly common) that fueled with how the Global Financial Crisis has affected employees etc. it’s no secret that Microsoft are losing some quite influential and dare I say, hard to replace staff to places like Google, Facebook, Amazon and so on. I personally know of three employees who have hated working for Microsoft for quite some time but have been stuck due to housing prices in Redmond etc not being ready enough for a resale – that is – until Google, Adobe, Facebook and soon Amazon have campuses of their own in Seattle.

Now the super geeks have alternative employment options. Microsoft is now on notice, treat me better or I will leave. The later choice has been winning in my opinion and the more the new found employees have sent me messages of "Omg, its way better over here than Microsoft" which has to be salt in some current employee’s wounds whom are likely staring down the barrel of uncertainty in the company given its end of year commitment scoring mixed with the demise of what we used to call the Silverlight/WPF & Blend ethos. What to do!.

Reaching Parity. 

image

A gentleman and fellow .NET scholar Jose has done the best he could in reverse engineering Direct UI (rumored to be the leaked incarnation of Jupiter). He has some insights that are both great and disappointing at the same time. The great part is it could very well be the next iteration of what has to come in the landscape of C# and XAML for tomorrow’s UX Pioneers.

The downside is its 3-5 or maybe more steps backwards in the current feature parity you have all eagerly waited for over the past 4 years. There are some fundamentals in the room whilst there are concerns around some of the other features that may or may not make the cut for version one.

If I know Microsoft and I like to think I do, this is likely to be yet another one of those traditional "version 1" moments whereby the team(s) behind the product eventually stumble across the finish line, exhausted but barely breathing enough to shout "Give me feedback on what you want in version 2, it will be better I promise" followed by some metaphor about how it’s a marathon and not sprint to the finish line (We got great mileage out of that with Silverlight and I dare say you could get a few more products out of it yet).

The tooling is likely to be not in place during this version 1 lifecycle as my sources tell me that the Blend Team aren’t cranking out the vNext improved world of Microsoft. I know Steve Sinofsky has had a few ambitions about what the Tooling should look like in the perfect world of Windows vNext frontier and I am guessing he did not play well with others in the Devdiv team(s) to share such ambitions.

That being said, either there is a skunk works tooling team hidden in some random building in Microsoft that others do not know about or the tooling story behind this next frontier is unlikely to be in place before Sept or for whenever this next version of our beloved Silverlight/WPF ethos occurs.
What I mean to say is welcome all to Microsoft 2005. Hold onto your Winforms or ASP.NET MVC  for a little bit longer and for those of you in Silverlight/WPF investment land(s) – try to not focus on the future but the now (best to keep your code base as lean as possible and not to tightly wound in client-side logic).

Put vital organs into Escrow.

image

Microsoft are quick to throw technology at a problem first and then ponder as to why the problem existed. I’ve often personally seen strategies – wait, that’s not correct, strategy requires forward thinking – tactical decisions (better) made around trying to grow developer audiences.

The assumption are

"ok, we’re not making our tech palatable enough, lets steal stuff from Ruby On Rails, Apple or Oracle to make it better".

The absolute harsh reality is often a lot of non-Microsoft customer(s) etc. just don’t like Microsoft (Ever liked a girl/guy and they don’t like you back? You try changing your clothes, hair, car etc. and still nothing. Welcome to the Microsoft Developer outreach program, you will fit right in).

The other side of this coin I guess is those of you who adore Microsoft for what they are. You spend thousands of your own dollars to go to various events to listen to Microsoft confuse the absolute crap out of you. The problem is lately, they seem to be a company you just cannot bet on for the future.

Grandiose plans to land on Jupiter may be bold, daring and exciting but is it dependable? Can this company commit to a master plan and is this a plan or just a tactical political brain dump mixed with a lot of Microsoft experimentation.

Is it a case now of not waiting for the next Service Pack but now waiting to see if a product can get past version 3 and 5 before you really consider it as a viable option of the future?

In order to prepare for this next mission, someone has to donate some good will to the fans of Microsoft technology. That means you cannot stick to the ye olde "need to know information" mentality. You got to bring your roadmap(s) for the future and you got to show us that you’re telling the truth that you want to aim for Jupiter and not some closer planet or worse – the unknown void beyond Jupiter.

Commit and stop being assclowns.

image

Commit to us so that we may commit to you. No more lies, No more "I’ve got a secret, can you guess!" and lastly no more internal political child play spilling over and into the blogosphere. It’s time to be a big boy company and use big boy strategies with big boy plans mixed with a lot of big girl personality (somehow that did the ladies no favors).

If we are to take on this mission, it’s time for a smarter playbook around transparency and if Steve Sinofsky is willing to bring the "come to Jesus" moment for the company around consolidating the entire product lines into a consistent continuous experience across all devices with a developer/designer experience to boot. Great, I personally will print out a t-shirt that says "I’m back in team Steve" (heh my old team inside Microsoft was called Team Steve…Steve the manager though was a arrogant jerk, different story, different time).

Right now its just a case of me holding up a really sick puppy that others have kicked and telling you all about the neglect its owners have given it. (If I quote that metaphor I was given last night by a friend).

Related Posts:

HTML5? Ok, so let’s also deploy Microsoft Silverlight onto Android then…

imageAfter finishing a podcast discussing  Microsoft fumbled future developer story, has sparked a few threads in my warped perception of all things developer platforms.  Please go out on a limb with me here and let this one swirl around in the ol noggin for a moment or two (it’s Friday).

Let’s for arguments sake state that Microsoft bets quite large on HTML5 / JavaScript as being a pull-through for net-new developers of tomorrow. It is an easy asks, as most developers on the planet can code in HTML or JavaScript without an issue per say – whether they like to or not is a different story.

Assuming this is correct and assuming you have a solution where developers can conjure creations under the wing of ye olde HTML/JavaScript then my question to you all is this. Why not put Silverlight runtime on Android.

I know it’s been a question above most people’s heads inside Microsoft as to why they shouldn’t put the mutation of that which is a x-browser, x-plugin and x-device original story onto a competing phone platform? You are about to do this anyway the moment you unleash the HTML5 & JavaScript story unto the world. Developers will hack your garden walls and find ways to push out to the multiple devices so at best all you can really do as a company (Microsoft) is retain Tooling and Server Share(s). Operating system share is going to obviously tank because of a unified development platform such as the ye olde web browser on steroids – aka Windows 8 Covershow – aka Sidebar Gadgets on steriods – aka..wtf do you call it?.

That is until you decide to fork the HTML5/JavaScript story and start introducing your own additive components to the equation that allow developers to touch deeper into the Operating Systems thus bolting down the developer base back onto your platform.

Ok, so assuming that was the guess of all guesses, then why abandon.NET as a preferred approach? As now you not only have to keep the .NET oxygen flowing in a healthy direction to 6million+ .NET devs world wide – but – you also need to put in place sugar pragmatic coding trix such as JavaScript/HTML translative (is that a word?) instructions to a common language runtime….ie CLR????

The upside by putting Silverlight onto Android is you get to part of the two horse race – let’s face it Android and iPhone have the developer markets attention more so than WP7. Enabling developers to play in both streams could energize your base more and you can potentially regain net-new developer share the other way. If you are going to give your farm away, at least fight for a good price is my thinking.

The reality is this, the Silverlight teams are grabbing some pine right now, they’ve been benched until further notice so we are unlikely to see Silverlight move past version 5 until the dust settles on Windows 8 that is code-named Windows 8 (brilliant marketing guys, seriously, brilliant).

Its’ that stalling posture and that sense of “hang on this equation doesn’t add up” that is ultimately causing ripples in the Light-force (ie Silverlight/WPF/WinForms etc Communities).

Just my thoughts – but what do I know, its not like i use to Product Manage Silverlight…oh wait.. doH!

Related Posts:

Why Microsoft is failing at WP7.

It is easy to sit on the sidelines, point and laugh at how the overall Windows Phone 7 tire fire is burning daily. It is also greatly disappointing to see as whilst I had predicted from the start that Windows Phone 7 will fail with consumers but could win with business/enterprise it’s also bitter sweet victory in many ways to be right.

How did the product arrive at this state? Where a pittance of allegedly 1.6million units have been sold out of the 2million units known to be “in-market”. My thinking is as follows:

No Aesthetic Differentiation.

 

Stating that is bold and a bit of an eyebrow raiser, as clearly the Metro UI is different to the rest right? Not really, as you are probably looking at this through the lens of a TechEd T-Shirt wearing c# ninja aka Microsoft “aware” perspective. The reality is if you go into a mobile store of any kind around the world, you just have to stare at the buffet of phones on display and cannot really help but notice one thing. They all seem to look kind of like the iPhone in terms of shape – keep in mind we humans are pattern people, we seek patterns first and then adjust to what the pattern is second.

If all the phones have similar shapes then what does that say? Does it feel like an iPhone knockoff? It has the similar price tag. So why pay for a copy of a popular device when you can have the real thing?

Assuming you get past that train of thought let us look at it from a different perspective. You are in the store, you get excited over the initial 10seconds of “Wow, nice UI” moment(s). The more you use it, the more you start thinking “meh, what kind of apps does this thing have?” so now you have to grasp the concept of the Zune Marketplace – assuming you’re outside of the US and the brand Zune is “What the freaking hell is a Zune?” moment(s). How do you grasp Zune Marketplace while in a store? You click on Marketplace but nothing happens as most phones have no internet connection(s) in stores.

I have seen many a “marketplace” on the ye olde phones that were run by carriers so what makes this different to those as again who is Zune? What apps do you have and do you have Angry Birds? Skype? Foursquare? Facebook (yes its built in, but are others outside the Microsoft sphere of influence aware of this?) etc?

Too consistent & poor quality bands.

image

The differentiation is one thing but then comes the moment of too much consistency. All of the applications tend to blur into being the same old cookie cut style. There is not a real sense of change or theming in place other than games. Today’s twitter application looks like a thousand other twitter applications aside from some color changes. There is no real sense of depth and whilst the team has pushed for “authentically digital” which is a noble gesture in the art scene, it is but one lacking in the consumer space.

To put it another way, If I have a voice recording “memo” style application then please make it look like a recording application (i.e. iPhone uses this big Microsoft and it takes on this “theme” of being the app). There are some diamonds in the rough when it comes to the marketplace, not all are bad – most are though.

All it takes is any C# developer with some developer muscle and a lame brain idea around FlashLight, Twitter, Task list or Tip Calculator and pretty much soon you have a saturated idea brimming to the surface of applications made available to you for purchasing. The quality baseline for success in the market is measured around quantity not quality. iPhone is no different much like Android, the difference with those phones however is they aren’t the ones struggling to convince people that their old version isn’t the same as you see before you in the new version(s). They don’t have as big of a hill to climb back out of and arguing mediocrity in quality bands as an excuse as to why is plain stupid.

There is no switch up inside the phone, all apps tend to become the same look and feel repeatedly – so my point is this is not just a phone it’s a media device that should be filled with brainless eye candy as much as functional brilliance. Let the audience decide if Authentically Digital compositions are their cup of tea but forcing all to bow down to this mentality is simply locking you into a bubble of ignorance.

Dance with the girl you came with.

These are the end result of a local GOVT dept who bought HP iPAQ's instead of WP7 for development purposes? Sad?

Consumers are morons, and are easily tricked if you have a brilliant strategy. Urban legend of Colgate guy wanting to increase toothpaste sales that tried everything but in the end all he did was increase the diameter of the hole in which toothpaste pours out of by 3mm in the end sent sales through the roof (given we used more toothpaste unwittingly). It is a story I was told in my days of Marketing 101 training, but it stuck with me for obvious reason(s) – hopefully.

Microsoft is so preoccupied with “beating” the other guy (and we used to drink that compete rage elixir often) that its lost perspective on the places its getting success – Business/Enterprise. Go into a govt department, large mining company, finance sector the whole thing and ask them how they are coping with business related devices such as PDA’s and wanting field staff to do xyz. You would be surprised at the response you get – especially how iPhones, Androids and Windows Phone 7 are not even in the race. The reason being is simple – “How does one deploy a private app to my citizens?”

The reality is Microsoft’s spent the lion share of its marketing spend on US Consumers hoping that this like some kind of weird end of year Xbox style achievements metrics “Congratulations! You have Achieved Level 1 in sales!” moment(s).

Inside Australia for example the WP7 Marketing is a secret? As its rare you catch glimpses of its existence outside a mobile store and even then you have Windows Phone7 Logo right beside Windows Phone 6 devices.  Confused? I was.

The win here while it may not be loud (which sadly gets you career points in Microsoft) is that if Microsoft released an Enterprise follow-on with the WP7 devices focused on allowing draconian SOE overlords to brick the phones in such a way that forces its peon’s to adhere to the blah blah policy then you in turn would have a backdoor into consumer market.

The reason being is these are human beings the phones are being handed to during work hours. The more they use them, the more the grow accustom and forgiving towards the device you are giving your crack away via corporate mandates. Establishing a habitual usage amongst the business/enterprise community in turn creates natural evangelism, which in turn can either make or break you (if its crap phones it will be very loud as to why).

If you are in a meeting and you see many WP7 phones in the room, you cannot but help notice them – that is what they call “product placement” in marketing terms and you get it free amongst the business community.
Nobody is doing this right now, and I’ve witnessed thousands upon thousands of units of HP IPAQ like devices running Windows Mobile 6.5 as a result (right now I’m staring at a body of work I’ll need to work on soon in this space, simply because no Wp7 device is available for commercial usage).

Competitions are an act of marketing desperation.

image

I was once told inside Microsoft that if you get to a point where you are running a competition to excite developers around a product, you have failed. It is the last desperate refuge for a marketing to try to regain some lost momentum around marketing a product that really needed more than a “Win a new phone?” moment(s).

When I was doing my interviews for Product Manager on the Silverlight team, my bosses boss (Dave Mendlen) asked me how I would handle a competition etc for a product if had $50k to spend? I guess he wanted to see me break it down into its overall pieces etc. My response was simple

“I’d take the $50k,  put up a 1x Page website and simply give away a CAR in any country around the world for the best and fairest blah blah”.

My point was simple; competitions suck firstly so I would rather get this fool’s errand out of the way upfront. Secondly, if you are going to have competitions then go big or go home. Don’t pussyfoot around with $1k or below offerings, you want competition right? You want people to take notice and work hard to fight to the finish then put a carrot that is big enough that it feels both reachable and enriching at once.

I see way to many competitions for developers to write xyz Windows Phone App around lately and it’s just sad to watch. Microsoft needs to raise its game and seed the product in much smarter ways then weak competition tactics. Evangelism needs to be smarter and the marketing spend / product placement campaigns need to be better than it is today. Seeing a Windows Phone 7 on a TV show is a good start but it lacks follow-up(s).

If I go to a geek conference of any kind I want to see Wp7 branding everywhere but I also want to see someone doing something interesting with the phone(s). I want sizzle and holding creations as if the one Brandon Foy hostage to “If you get 200k+ views I’ll let you do a commercial for real” is like asking Don Draper to audition for entry-level copywriter. You had talent in front of you and you still missed it.

In Summary

The phone is failing and it is not really the actual phones fault it’s more direction, understanding of who needs the phone and lastly ensuring the quality bands associated with the phone raise. If you are going to go head to head with Apple who have shown repeatedly that Industrial Design / User Experience is what consumers are really attracted to. Bring it fully do not “version three we will get it right / marathon speech” it to death.

Related Posts:

RIAGENIC is a UX/UI Business.

It’s been a couple of months now since I went full time into focusing on growing a UI/UX business for myself. I thought I’d share my thoughts / notes and adventures along the way so far in the whole Microsoft UX/UI space as a freelancer.

Which are you? a developer or designer?

image

How far we have come and yet how so little we have learnt! As someone who worked in/with the Silverlight/Expression teams to make sure the message that Microsoft has entered the UX space and that we’re essentially building a mutated Developer meets Designer and vice versa pixel ninja type person, the reality is people still need to put you into a category.

I often find myself torn between which side of that fence line I sit. As to be blunt i can do both, I know every single API inside Silverlight/WPF like the back of my hand, I can code in 9 languages outside of .NET and aren’t script kiddy languages either. I can do 3D and 2D design to the point where many have commented on my abilities here as being “eye for design” or “you are freakish good” but still i’m tormented by having to pigeonhole myself either category.

The reality is people aren’t ready to accept the person who can do both just yet and it takes a lot of proof to build trust that you can do both. I’ll let you know how I go with this journey over time but for now suffice to say, its new territory for me and yet still profitable as I can easily pick left or right and just swim in either pool where needed.

I need a UX guy urgently.

image

I’ve seen this a lot in the past 8 months. I get called in at the last sprint or towards the end of a project and find myself having to triage features vs design vs engineering constraints. It’s the worst time to engage a UX/UI person(s) as in the end you’re asking for a Hail Marry – “can you make this UI look good and functional oh and don’t change the code base in the process?” is a common brief.

The trick I’ve learnt is that I can do it, it just takes a lot more patience and focus –, and you really need to know every single backdoor into Blend as well as the Silverlight/WPF API’s. IT is a challenge but can be a success   if there is enough time  and the communication is clear and expectations are set properly.

The bottom line is folks – Engage early and often. Even if its just 1 or 2hrs of their time per week or day, make sure you have someone in the room who bleeds UI/UX from the beginning of the project. Don’t engage late as the price will go up you won’t be able to salvage as much as you think by then  it’s not a UX consultation its just a pixel polish.

I don’t use Blend, just Visual Studio.

image

You are breaking my design heart when you say this to me. Everybody right now who reads this open up Blend and pick a fight with it. If you take the time to get to know it and get to know it well, then when used right can help you out enormously with both Silverlight and WPF development. If you’re a person who likes to indent and keep their XAML neat, stop right now, you are trying to skate up hill.

XAML is not meant to be a hands-on language. It’s a common data format created to allow Design and Code tools to work against the same model without giving up their inherent capabilities. If you are editing it by hand just stop as you are not doing it right.

Pick a color any color.

The amount of times I’ve walked into an engagement and seen a rainbow of colors in the UI has left me thinking that it’s not so much a lack of will power around design it’s more the reality that not everyone is up to speed with color theory (there is a science to color selection).

The easiest tip I give people is this. Typically a brand has one or two colors that are used the majority of the time,  then they  will use white or black for the majority of the content depending on the background composition (white for dark, and black for light). When you design a User Interface for your next Silverlight/WPF project, pick one or two colors and create a ResourceDictionary called [ThemeName]Colors.

ColorePalette Then take that color and break into four shades (2x dark, darker and 2x light, lighter). Now then select what I call your chrome colors, these are the colors you would use for the outer chrome of your UI, in windows its typically around 4x shades of gray (light, lighter, dark, darker) and label them accordingly (i.e. chrmeAccent1, chrmeAccent2) etc. Keep your color naming conventions abstract (use camel or Pascal case – whatever lights your design candle).

Now don’t use any more colors. Lock that in and use these. Don’t deviate at all from this plan unless you have a designer person in the room who is held responsible for retaining the product/projects brand.

Lastly and this is the most important thing I can say to developers world wide:- Don’t use bold colors. Stick to pastel or light colors as you’re typically not ready for the hurdles that bold colors can throw at you. In saying this I did also notice that the MetroTheme that Microsoft has put into play has me a little nervous as it relies heavily on bold color scheming – which is great and cheap way of avoiding depth in a UI but at the same time creates a potential color scheming hazard around highlights vs lowlights and focal areas of your GUI composition.

Typography is also another concern of mine as too much reliance of ye olde text can put UI two steps back instead of forward – people don’t like to read in general, visuals often handle the workload – review the many articles available on “extraneous cognitive load” for proof of this.

MVVM that is all.

image

I get that some of you want to get gung-ho with PRISM, MEF or your own framework. Bottom line is this, if you’re starting out and haven’t figured out the tricks and hacks just yet of WPF/Silverlight then you are better off  sticking to  simple MVVM. It handles 90% of your workload and doesn’t require you to learn  WPF/Silverlight and an extra layer of complexity at the same time.

Keep it simple, work to the idea that the code you write in the first year of WPF/Silverlight is code you will want to throw away or refactor later on. It’s natural you write bad code or work onto something that a year later you’ll look back on and proudly say “What was i thinking”. You’ve got your Microsoft UX training wheels on, embrace this openly and you’ll do just fine. Walk into a room and pretend you have it all under control and you’ll fold eventually as you can’t credibly hold that facade for too much longer.

If you can also check out AutoFac as well, this again will compliment your codebase nicely. MEF/PRISM are really for folks who have a team of engineers and are looking to build a complex mammoth size system – that’s the reality even if Microsoft try to deliver a different message  – I’m an ex Microsoft Product Manager so I can spin with the best of them 🙂 hehe.

UI and UX are two different things.

image

I need to say this out loud. If you ask someone to do UI, then they will do just that; focus on designing a user interface for an existing concept. If you need someone to wireframe and help you figure out how the whole user interface can be built, that’s where a UX person comes in. They are two different work streams just like a developer and a DBA are different.

You can find people who do both, but keep that in mind.

Oh, I need someone local.

Yes, having someone onsite is definitely a goal a team should always be on the hunt for. SCRUM teams etc benefit from this and it doesn’t need to be evangelized further. I will say however though, having someone working remotely can be just as effective especially a guy like me in Australia.

I say this, as at the moment I’m working on a project with Microsoft and it’s working out in our favor as while they sleep I work, while they work I sleep and we’re able to have a show & tell (i.e. remote stand-up) with one another where the design and development work can meet in the middle actually pretty well. As I’m able to say “ok here’s what I’ve done for you, its in your inbox when you wake up” and in the afternoons they’re able to go “ok, here’s what I need for you to start my day tomorrow” and so the cycle is a 24hr development run that works quite well.

It’s not for everyone but so far I’ve found  it works without any issues other than an expensive mobile/cell bill from my end lol.

Show me some of your work?

There’s a reason why painters and builders never work on their own house – same goes for me. This blog as weak as it looks is still the  front door  for my company – RIAGENIC. I need to get off my ass this month and put my site up but the problem I have is distilling what I do into a webpage that makes sense as I’m my worst client (picky, arrogant and will agonize over every pixel and paragraph in the site).

I also need to find  a way to promote me but at the same time associate myself with a brand, so that for me is a tricky marketing hurdle. I’ll soon see if I can pull it off! 🙂

Find people you can trust and don’t have to babysit.

image

I’ve worked with a lot of developers in my time, nothing annoys me more than baby sitting incompetence. I’m fine with newbies learning the ropes, that I find far more rewarding as you’re working with someone who has passion and a determination to learn. It’s the people who are lazy and expect you to spoon feed them every 5mins on “how”. I didn’t learn Cinema4D by sitting next to a 3D wizard and ask “Ok so how do I write an xpresso script that makes the wheels rotate per frame”, I sat on Google and the objective was this “Find how to make wheels rotate in xpresso” and eventually I found it. Along the way I learnt a lot about Cinema4D and Xpresso as i was hunting for my answers.

If you work with me, I will set the benchmark high per person I meet, I will quickly assess your skill set and then raise the bar to challenge you to meet it as I do want to work with people who get it and are smart at what they do.

That being said, I love nothing more than coming into a cubicle of developers and feeling like I’m the newbie in the room as now I’m in learning from others mode.

At the moment I’m working with Joseph Cooney (one of WPF’s first MVP and of learnwpf.com fame). I’m learning heaps from interacting with this guy, and its a fun project at the moment we are on. I don’t have to babysit him and he doesn’t have to babysit me. We just looked at the specifications, agreed on a solution structure and boom, were’ off grinding pixels and code.

The next job I go to where they need a WPF/Silverlight dev etc, Joseph is one i’d recommend – again, its about networking and building relationships and finding people who you can trust and work alongside.

Reputation is a false economy.

image

I often hear how folks worry over their reputation. I’ve watched people spend way to much time either building or recovering it from a bad project etc. The simple truth to this from what I’ve learnt is that if you know your work, you approach things with openly and honesty and don’t dump and run as well as admit mistakes, you’ll come out fine.

Just focus on doing good work, reputation has a habit of following and self regulating itself over time.

At times people I’ve heard bad things about on a project often aren’t the ones at fault as  the recruiter / business development sales person didn’t set expectations appropriately or the project was a train wreck well before this person arrived and they were the last ones to hold the steering wheel as it went off the road.

Agile/SCRUM is not a religion.

I’ve seen a lot of developers follow this concept by the book to the point where I often wonder if they are conscious of how badly they have gotten. The correct way and the natural way are two different things and in the end communication is the core piece to this.

Stop arguing over protocol and just focus on establishing a clear line of communication and work on getting estimations as close as you can while at the same time admitting to your fellow team mates the moment you can’t do something or are over on your estimate – just put up your hand and say a simple word – “help”. I personally work under the assumption I’m the dumbest guy in the room, it keeps me calibrated and if you work with me and think “geez i thought that guy knew all of this” that’s fine, but i probably do, but i’ll ask anyway just to make sure.

I’ve felt the wrath of a false hero before, and I ended up having to do his work and mine at the same time only to be burnt for it later on. I could of thrown this person under a bus and said “well actually it was his fault” but in reality, I just absorbed the blame and avoided working with this person since.

That is all.

Note: I am a UX/UI Ninja for hire.

Contact me at scott at this domain.

Related Posts:

UX Tip: Just because you can count change, doesn’t make you a mathematician

I was watching a MIX2010 video from Microsoft’s head UX guru, Bill Buxton on how specifically developers and designers engage with one another. There was a throw away line he put out there, which was stated in reference to developers whom often think that because they have a bit of design muscle deep down that they too can contribute to the design discussion –

Just because you can count the change in your pocket, doesn’t mean you’re now a mathematician.

I laughed when I heard this as yes, design is an art (who knew) and often at times we take it for granted a lot more than we probably care to admit out loud.

For me personally, given I’ve visited countless developers in a variety of scenarios in the Microsoft space, one constant theme I see continues to emerge, developer art.  This consistent pattern is the exact fit for the above analogy.

Allow me to explain further..

Developer Art

image

Developer art is the composition of a interactive solution that almost looks good enough to ship, but when you start to tease away at the various threads (i.e. DataGrids) you begin to see that there isn’t a lot of structured thought put into place behind the “Why” the screen is structured the way it is. In that, they often tell a story as to why it’s important to cram as many UI elements onto a screen making full use of all the pixels you are given and then some. It has certain hints of developer based design and structure but it comes across very adhoc and chaotic in thought.

“Oh yeah, I’ll add that button in later..”

I admire their intent (truly), but sadly this is really just re-echoing bad habits into a new medium and all we’ve really done going forward is polished the cumbersome UX and it’s attached pixels with a brighter gloss – the problem continues to live on though, and user’s are expected to jump through hoops due to poor software development planning and useless deadlines that in reality are more than likely going to increase the problem rather than decrease it.

Note: Most devs i’ve engaged with this, are aware of this as well, and are openly keen to get this fixed (very encouraging days ahead).

That being said, developer art tends to lead into Pixel Cramming

Pixel Cramming

image

Having a large screen is tempting to do a lot with, but in the end we must remember an important fundamental about humans, in that we like to chunk information into pieces that make sense to us. We listen to a story and isolate important pieces, in that we tend to skim read large documents and isolate important facts / figures. We often hear a story and isolate key pieces of information and bank that into our working and/or short-term memory.

Chunking is a clue to how your end users approach things in general, yet with developer art UI, it tends to be blatantly ignored. The reason being is, most of the time developers want to take a large resolution of pixels and fit as much data and finite amount at that, onto the one screen – because users like to analyse all of this data is usually the response I often hear.

I could inject countless research papers here on how humans + density = cognitive overload and the chances of recall and/or visual encoding are diminished as you layer more and more amounts of data. I don’t though as depending on how you deliver that message can lead to an emotive discussion focused around the words “I think”, less “I know” (which is really the base primitive used to instantiate an argument randomly.

Instead I come at it from another direction, that is asking the developer(s) to consider layering complexity.

Layer in Complexity.

image

I often tell developers to start easy and then layer in density or complexity (as you learn more about your end users expected habits or paths of access).

I do this for a number of reasons.

Firstly it’s a sneaky trick I play on you, as it forces you to think about the big picture first from an end users perspective, whilst it then removes you from that pesky habit of getting bogged down in the finite details (engineers play chess with UI, they are always trying to guess 3 moves ahead).

Once you structure the surface of your UI in a way that mimics the way humans process information, you just may stand a great chance at producing some UI that doesn’t feel like a page out of the classified section.

Secondly, another reason as to why I ask you to layer in complexity/density is that it can help safeguard you from creating lots of virtual problems that probably don’t need solving. What I mean is that approx 80% of your end users are likely to only use 20% of your features, which in turn means that if you were to ship V1 as a very basic piece of software without the cascading density of UI you would in turn raise questions within your user base that are mostly likely going to yield you a lot of “I know” to questions that are probably coming up with “I think” today.

(Behind the scenes you are effectively doing an on the fly qualitative analysis on your said upcoming software’s development approach).

What If I were to come into your developer enclosure tomorrow, walk up to your feature task board and steal 30% of the features away from your product randomly. How would your end users react? I know how you’d react, but really, how would you’re end users react. Would they even notice it’s missing and if they did notice it was missing what story would they in turn tell you about why it’s important. Once they do tell you this information, and I only agree to give you half of the features back, how would you weight the importance against what you already have today done or still on the board.

My point, you do this anyway, you often start out with a healthy amount of feature requests, but through the inertia of development these features get squashed, contorted and at times glossed over in the development process. It’s a really negative impact on what started out with so much positivity.

Bottom line is this.

image

Engage a UX Professional as well as a UI Professional, as in the end they think about these various points allot (at times both from different angles), and typically see the world for the chaos that it is and less inclined to care about you the developer (It’s not you, it’s not me either, it’s them, ya know, the end users). If you don’t already, do some persona development around your product and it’s important to do this. If you have done this, then grab some wall space and scrap book various clues about the end user for all to see. Remind yourself daily who it is your developing for and why. Ask yourself “Which person’s life am I going to ignite with this feature being done perfectly, done in an ad hoc fashion and/or not done at all”. You should have an answer to this with a degree of confidence that should be shared by all.

Does this mean all design is hands off to developers?

Yes and no, if you aren’t passionate about the concept of what design is, you really need to step back and let someone who is genuinely curious about solving problems for end users through interface design and less about shipping schedules or how brilliantly they orchestrated their MVVM architecture. As the ironic thing about development patterns is you’re building software to make life easier for developers to be apart of? funny, why can’t you do the same for the end users?

I’m not an expert, far from it, I’m just experimenting out loud with all of this, but the more I data I gather, the more I start to see how all these puzzles fit and all to often, developers are trying to be too many roles at once and well, humans are never really good at multi-threading – hence we chunk.

Related Posts:

Context and Experience Matters.

Hold your hats folks, I’m about to praise Adobe and yes I’m now a confused UX soul as a result of it.

What has got me all hot and bothered in the right way about Adobe, is the Adobe.TV site, as for me it just brought something to life in which I was often quite vocal internally in Microsoft about – contextual synchronization.

In fact, you can see the very deck I used a few years ago on the said subject and it was mainly focused at how stupid and silly Microsoft is with its constant “File->New” website approach. I not only was vocal internally but external as well – recently as last year being picked up by other sites such as Slashdot.org, Tim Andersons Blog  and InfoQ on the very subject.

(Note: Download the deck for full effect here)

 

Adobe have designed the concept where it appears folks who sign in are able to have the content react to their needs vs the end user reacting to Adobe’s needs. As a result, I think this will provide more signal vs noise to consumers of the content (hopefully) but the main thing for future planning around content is that I think it will put Adobe in a better position to see what areas they need to focus on the most. I say this as every time you the end user narrows your selection down,  you are essentially voting with your fingers on the said selection.

image

I like this as they have broken the self-selection down into not just categories but also have managed to involve other filtering mechanisms such as “what others say” (ie Most Viewed, Highest Rated etc)

I have dreamt about this concept for quite some time and I hope that the Microsoft various website owners are paying close attention to it.

Why is this a good idea?

Firstly, when you onboard to any technology you face a multitude of challenges most of which is confidence. You need to have this sense of “easiness” associated to a new technology you are about to adopt, so it’s important that you’re not in hunt mode but more browse mode as fast as possible.

Once you are able to overcome confidence issues relating to the technology, you also need to keep focused on advancing along the adoption curve, as you want to build a better tomorrow as fast as you humanly can, but deep down you still want to keep cheating, by skipping over things you probably should pay attention to.

Skipping is important but at some point you will need to go back and and absorb the parts you just skipped, so you kind of need a way point mechanism in the way content is presented to you. In Adobe.TV case you can filter out the irrelevant areas that don’t appeal to you – YET. Tomorrow though you can pick this back up and run with it should you choose to, keyword being choice.

I call this contextual synchronization as the content is synchronized to your contextual needs.

Microsoft has a terrible footprint regarding content of this type, as if you were to look at Silverlight for example there are 4 sites all competition for your attention and that’s just for Silverlight. If You’re a .NET developer your world increasingly gets more and more complex and its hard to parse the information from each individual site, given it’s mostly narrative content and less about serving a contextual need. The ones that don’t focus on narrative are more along the lines of projecting information at you and less working with you and more to the point, there’s no instant reward/recognition approach to learning.

This is important with regards to confidence as if you get a sense of accomplishment for taking the time to adopt or learn something there in turn needs to be a mechanism in place that provides that visual feedback “Good job, keep going” mentality.

Adobe.TV doesn’t have this, but you could easily build on from here? you could add badges or rewards to the context above by outlining that the person is moving along nicely and here’s a T-shirt or something cheap and meaningful to show recognition to the end user for doing a great job at sticking it out.

One day I hope that my vision would come to life, but inside Microsoft there is such a de-centralized approach to the site ownership problem that it would take an act of Executive order to change this – even then it would likely take a few years to filter out externally.

Tim Anderson, a well known IT Journalist who gets paid to navigate the web soup such as Microsoft.com, stated this:

I use “web sites” in the plural because there are many Microsoft web sites. Perhaps there should be one; but as the referenced study observes, there are numerous different designs. There are different domains too, such as Silverlight.net, ASP.Netand so on.

Take my experience this morning for example. My question: how many processors are supported by Windows Small Business Server 2008? My Google search got me to here, an overview showing the two editions, Standard and Premium. I clicked Compare Features and got to here, which says I have to visit the Server 2008 web site to find out more about the “Server 2008 product technologies”. I click the link, and now I am looking at info on Server 2008 R2 – only I know already that SBS is based on the original Server 2008, not the R2 version. It’s not clear where to go next, other than back to Google.

The prosecution rests your honour.

Related Posts:

My Slides: Microsoft UX: What Just Happened

I’ve been travelling around Australia in the past few weeks talking about Microsoft UX and essentially “What Just Happened”. I’ve uploaded my slides to slideshare.com (though they don’t animate, booo hiss..) but none the less they are there for those who may have attended my presos to look at.

The “What Just Happened” title came from an internal discussion list inside Microsoft, where I would decode movements on Adobe for all of Microsoft to get a better understanding of the PR spin coming from those guys. I’d essentially break it down into less b.s and more to the point information. Given I had a lot of success with this inside Microsoft I thought it would be a great idea to do the same, only not with Adobe but for those in the public regarding Microsoft.

It’s a theme I plan on continueing with in the near future.

Related Posts:

Adobe Open Screen Project – reality check.

 image

Despite what some folks in the Adobe community think, I’m actually still a big fan of Flash and what it represents. I do however hold Adobe up to a much higher standard than I did with Microsoft, as for me they have shown endless amounts of potential but have in my opinion squandered through either in-fighting or misalignment with the rest of the industry.

I’ve read a many a post on the “Open Screen Project” and whilst the concept of putting Flash Runtime on multiple devices etc is quite an appealing concept, I just don’t see them pulling it off beyond a few million units here and there. It’s a reality check that I think a lot of the Adobe staff need to take a step back and review.

Putting Flash on the iPhone or vNext desktop device is the easy part and I don’t think a lot of companies are realistically against that idea on it’s own. They would be typically skeptical of the technical dependency when you start too look beyond the “Open” PR spin and start focus on the tooling and ecosystem surrounding it.

Adobe just don’t have the developer numbers to support a sophisticated ecosystem it requires. There are a lot of exceptionally talented programmers in the Adobe community, some of which are fighting well above their weight – these however aren’t the majority. Adobe needs more of a groundswell of developers, ones that typically hail from either .NET, PHP or JAVA as their previous breeding ground. To date, they haven’t yielded that as fast as they should/could.

Adobe have been plagued with getting their community to move from ActionScript 1.0 and 2.0 over to ActionScript 3.0 and for the past 2-3 years that’s been a campaign of there’s in motion (i.e. being a little more aggressive in ensuring future roadmaps lock the next generation of ActionScript etc into place, essentially what I call a “duress adoption”). They’ve also recently started picking up on the reality that Microsoft fears daily, PHP has become the 800lb gorilla. There are quite a groundswell of PHP developers out there who don’t typically favor Adobe or Microsoft in a lot of ways and are more than happy to punch out solutions built in a HTML/CSS/JavaScript sandbox.

So why me, someone with little PHP experience? I’ve always felt like evangelism is about growing your developer community and developer relations is about helping the community you have – Ryan Stewart, Adobe Evangelist.

Adobe needs to court these folks and fast, as if they can get these folks to switch gears into the Adobe community lifestyle, they in turn and increase there developer base in a much more significant way than they have in the past by pounding at the Java and/or .NET developer doors.

Assuming they fix the Developer base, they next need to convince OEM manufacturers that their tooling isn’t the liability in this equation. I say that, as whilst its fun and 10x more productive to build Flash based solutions via Adobe specific tooling, this in turn creates effectively a liability in around the concept of being “”Open”. It’s not really Open, its more of a half-hatched Open concept, as producing a SWF outside Adobe tooling is actually not a likely thing to occur in the industry. The reason being is, whilst you can technically make your own SWF, you are still required to fall into line with Adobe’s roadmap and vision of where it all heads.

Implementing software which creates SWF files has always been permitted, on the condition that the resulting files render "error free in the latest publicly available version of Adobe Flash Player." – Wikipedia.com

Point is, that whilst their intentions are righteous and feel open, you have to face reality that this is just shifting the boundaries on a total lock-in and instead of declaring the Runtime and File Format as completely locked, its really the tooling story behind it is where the money tree begins. After all, Adobe aren’t in this business for free, they have shareholders and a $3billion+ fiscal profit expectation to meet.

The tooling component to this equation is really the bottleneck as could you imagine what would happen if say ActionScript 3.0 and Flash were solutions that a Visual Studio .NET developer could write inside the said tooling? It would have a huge impact on both sides of the isle roadmaps that’s for sure.

Related Posts:

Silverlight is creating a mutant designer who can code.

I look over the past 3-4 years in around the RIA industry and just chuckle at times to myself. I say this with all the appropriate levels of respect attached.

The reason I chuckle is that prior to Microsoft i was laser focused on getting developers to adopt Adobe Flex as we had an abundance of Designers in the Adobe community but less developers. Once I joined Microsoft, I was then focused on getting designers to join the Microsoft ranks as we had an abundance of developers.

image

Today, nothing really has changed much. As when I was a Product Manager for Silverlight, I think we last announced there was around half a million (there about) Silverlight developers, which for a product that’s roughly 20+ months old, is about 4:1 on Flex Developers give or take. Yet, before we all start whooping and high fiving one another about the success of SIlverlight over Adobe’s products, they would have about 5x as many designers in their ranks compared to Silverlight which would have probably a design audience measured in thousands and not hundreds of thousands.

I’m yet to see any evidence that this stand-off is likely to change radically in the next 2-5 years either, except there seems to be a change in the wind that I was hopeful would happen but skeptical at the same time. It turns out Silverlight is igniting a lot of design passion within the ranks of the Silverlight developer community – meaning, I am seeing some interesting signs of developers wanting to learn “design” albeit also “user experience”.

Can they design though?

Everyone can design, as when you were children you were told to draw a house with clouds, you did so and sure it made your parents happy enough to put it on the family fridge, but is it a realistic house that can withstand the elements such as a sun with eyes?…no.. but you designed. As you began to age towards adulthood for some reason you stopped drawing. The passion in a nutshell, was depreciated from within you.

Designers however kept it alive and continued to learn new techniques and slowly over time mastered ways to explore the concept of design more. That’s why they see things differently in the world than most and can bend your ear on the subject in ways you think they are likely smoking crack.

Today, lets face it, the design audience isn’t exactly pounding down the Microsoft Expression door, this in turn has created a discipline that needs to be filled and as such more and more developers are stepping up to fill it. They will in turn need guidance and better techniques on how to pull off the design part and it will take some time for them to master this art form. In the process I think this will also be a more vibrant unbiased beacon for the design audience to flock towards as in order for the developer audience to fill such a position, they will seek out more designers for help. As the design audience begins to help them, they will in turn also begin the journey of understanding what’s before them and hopefully it will stick.

Thus as Yoda would say:

“the cycle it will, repeat itself it may”.

Point is, at some point we will have a displaced audience that sit between the words design and develop they in turn will be the influencers on why Silverlight should be adopted. Today’s developer is tomorrows designer, so we who consider themselves of the design lineage need to show kindness and patience towards these folks. As they in turn will also show us faster and more efficient techniques to also carry out interactive design.

Next time you hear a developer say “I can’t design” correct them and say “You mean you haven’t the passion to try design” as this is a more correct response.

Related Posts:

What does a potential Silverlight Adoption Lifecycle look like?

I’ve been working in this industry since i left high school back in 1995, and I often think about my journey to date and how I’ve adopted a technology. I then as a Product Manager on the Silverlight Team constantly try and put myself in you, the adoptee’s shoes. I’m constantly thinking about what it takes for you to adopt and what are the motivational events that have impacted you along your journey.

The below is my own personal experience / observation of the industry in general. It doesn’t stop at Silverlight either as prior to Microsoft I watched folks do the same with Macromedia Flash and then Macromedia Flex.

Not to mention AJAX and so on, even HTML! – yes, I watched the birth of HTML unfold into what is now a commercial entity known as oxygen ;).

The Adoption Curve.

clip_image002

Contact. You’ve found the word Silverlight fly past your senses, you’ve not pinned down what it is but its the talk of the town

Awareness. You just finished reading something about it and have a somewhat bit of knowledge in and around what it’s capable of doing.

Understanding. You just finished a tutorial, training session or brown bag, overall you’ve got what we commonly call a “basic” understanding of the product.

Evaluation. You’re now writing a quick prototype of a project you’ve thought about making in Silverlight. You’re still unsure, but the product has captured your interest levels.

Trial Usage. You’ve built a first draft of your Silverlight solution, and you’re essentially shopping it around for feedback and help you up sell / include this into your peer’s technology radar.

Adoption.You’ve built your Silverlight solution and are ready to deploy, you’ve troubleshooted your way through learning the product and are now what we would call an “Adoptee”.

Institutionalization Your solution is in play, you’re now thinking about the next release or next project, you’re well on your way to success and have either a positive or negative feeling towards the brand.

The Learning Curve.

I’ve often thought about the whole competitive story around what it takes to adopt a technology. I know I’ve personally learnt more technologies than i thought my long-term memory could contain, but none the less they are there, crammed deep within the dark matter of which i call my brain (Java, PHP, C#, ActionScript, Flex, XAML, XSD, Maya, VRML etc).

The reason I do think about the competitive nature of technology is that in many ways when you read a Flash vs. Silverlight style post (insert Apple vs. Microsoft etc) it at times reads as if that technologists are easily conned into adopting a technology they’ve never used before.

In that the x number of years they’ve spent nurturing their chosen technology could easily be diverted to the new shiny toy that they have before them.

I put it to you that, folks aren’t that easily swayed, that often its simply a case of a number of factors. They are:

image

Boredom.You’ve been using X technology for the past N years. You’re essentially peeked in terms of all that you want – not can – learn from the said technology. It’s time you explored your horizons and shop around for what’s the latest & greatest, that or research an old technology simply because of the nostalgic geeky cool flavor it brings to your technology palette.

image

Goldrush.You’ve seen how much others are making off the Y-Technology and you’re keen to get some of that action. You are motivated my greed, but that’s ok, as in the end getting a leg up in life is fair game. You typically would of probably ignored this technology in the past, but all the other kids are doing it, so you’re essentially force fitting yourself to the adoption.

image

Duress.You didn’t want to adopt, but you’re forced to due to a project you’re working on or about to. You start off in a negative state, in a duress state. You’re constantly trying to marry your existing skills over to this new technology but are finding it a rough road to follow. Eventually you figure it out and have an overall negative / positive emotion around the technology. It’s at this point you decide to either continue to pursue the adoption or abandon and retreat back to your preferred X-Technology of choice.

image

Curiosity.You’re neither bored or motivated by gold / project. You’re simply one of those people who love to explore no matter what the technology. To you, technology is about the art of creation and problem solving and you tinker with them like someone explores a music library – all music is good, it just depends on the listener.

Summary.

There are different motivational reasons as to why someone adopts. There is no one fits all approach, and given in today’s IT environment there are so many moving parts to keep track of, it’s not an easy thing anymore.

In the old days, I remember learning Delphi vs Visual Basic. I choose Delphi simply because I couldn’t grok the VB way of code, to me the Delphi seemed more natural. Delphi didn’t get the uptake as much as VB did, so what happened?

Companies like Adobe, Google, Microsoft, Apple, Sun etc all have an offering to provide you all. The main mission overall is to highlight the technologies strength, divert from the weakness and encourage you to at least get as far as the Understanding stage in the life cycle. From there its entirely up to you, as that’s where the freedom of choice really kicks in (there is only so much a company can market).

It’s from here that you decide based on merit and personal experience (aka Time vs. Commitment) and ultimately this is the true test for these companies. As for us in Silverlight this is where if were to take a pulse at your confidence level, you’d tell us data that I’d rate as pure signal. As this ultimately for us is the tipping point of success vs. failure for the product as its our job to make sure you understand what the product is, ensure it’s easy to learn and lastly reassure you that you’re not alone – as nobody likes to actually bleed when it comes to bleeding edge adoption.

Is that all?

Next Post, how the human mind absorbs the adoption lifecycle, lets dig into cognitive science. The new fad i like to call “Cognitive Load Theory”, as once you fully understand how the human mind works and ways to seed information in both short-term and long-term memory, it gets really interesting… well for me anyway.

Related Posts: