Five Axioms For Application Development In 2012

Software Is Not Code; It Creates Experiences

Ultimately, customers don't judge you based on how well you gather business requirements, choose development technologies, manage projects, or march through the development process — they judge you based on how they feel before, during, and after they use your software. This is the digital experience. If you get the customer experience wrong, then nothing else matters. And expectation inflation is sky-high thanks to the Apple-led smartphone revolution. To succeed in the new age of digital experience, application development professionals must collaborate with their business partners and customers to create experiences that customers love. You need a new approach represented by these five axioms:

  1. Software is not code; it creates experience.
  2. Development teams are not coders; they are experience creators.
  3. Technical talent is table stakes; great developers must be design and domain experts.
  4. Process is bankrupt without design; you get what you design, so you had better get the design right.
  5. Software is a creative endeavor, not an industrial process like building automobiles. Structure your methodology to empower your creative talent.

Doable? Definitely. Forrester clients can read the full report to learn how: Digital Experience Strategy: Follow These Three Mega Rules To Beat The Competition In 2012.


Living with reality for mobile UE

Mike, I am in broad agreement with your position but one has to view this from a practical perspective. At most 2% of programmers might be able to code something that is a great experience for the user. Most have serious problems to even imagine what the user could want and code simply something that they would like. Which means all applications would look like Integrated Development Environments for programmers. So yes, it is up to the team and you need in it a domain expert and someone who has an understanding for the targeted user to create the application. Otherwise they don't get useful, usable and desirable. And development managers and sales do not want to spend the money to get to this point. Make it work and quickly!

Alternatively you make the GUI so flexible that it can be adapted to the user role and type by without needing a programmer, ideally by users themselves. That has been at least my target with our EYE GUI technology. Mostly because you will have very different and changing requests over time. Especially with Mobile the GUI will be very different than the one for the Browser and on PC.

I am not sure what process you refer to. Development processes or the user processes? But in reality process is not what you design, process is a consequence of real-world states and events and the user actions from knowledge that this needs. So the design must NOT BE ABOUT PROCESS. The design must be about EMPOWERMENT. Process is about control. So when you code process into the experience you'll never get the dopamine you are asking for.

And then you recommend that companies develop their own mobile apps. Cute. In reality it is nearly impossible to find mobile programmers, much less good ones and even less those that understand the user experience. Which means it gets outsourced by a lowest bid turnkey project which does not create great UE.

The only way to get to this for a business is to utilize an application platform that allows user-empowerment paradigm and doesn't require a huge programming project to create the desirable UE!

I am with you on the Digital Experience Reference Architecture but in my mind it misses the application creation (not programming) capabilities that will make this realistic!

Regards, Max

All must play part in user experience design

Max, I starkly disagree with you that " most 2% programmers might be able to code something that is a great experience for the user.". That attitude is a large part of the problem that keeps programmers down. I don't believe that programmers have a genetic predisposition to create dreadful user experience. Instead of saying programmers can't do it. We must say they must learn to do it. Great programmers are smart enough to be great ux designers. It is just that no one taught them how.

I do agree with you that a totally new programming paradigm should dominate as you suggest. We are stuck in a programming rut thinking that Ruby, Python, Scale, name the next traditional programming language variation is the savior. It is not. We need more tools like you are developing.

But, I also believe that domain experts and business users also must learn how to design UX. Just because they understand their business doesn't mean they are experts in ux design or even process design.

Summary: UX design should be learned by all parties involved in application development. Application development feels like a bunch of soldiers on a battlefield. I think it should be more like The School Of Athens as represented in Raphael's renaissance painting.

Programmers as UX designers

Mike, in theory Communism is the perfect governance for a state. But it isn't. Why? Because it has unrealistic expectations into humans. I am in difference to most BPM proponents a strong believer in people skills and attitude and want to empower them rather than control them. But it makes no sense to be unrealistically positive. I have tried for the last twenty years to find and teach programmers to be both - great coders and designers of software and at least for some to be also focused on user interface. Simply, it doesn't happen. The people who are good with GUI aren't programmers and vice versa. You can build a team to have both skills but then again it also requires domain expertize as well and those people do not see themselves as needing UX design capability.

You are right that this is what it should be and you are wrong that it can be simply trained. It is not a matter of being 'smart' but to switch from an introvert coding perspective to a radically different extrovert user perspective.

The best UX designers are the people who use it. Ask them what they want and they can't tell you. Show them something and they know immediately what they don't want. They can give you some idea what may be easier in the current GUI. If you now let them change it or allow quick try and buy changes to UX then you most probably have a winner. Start simple and let them grow into it. This is really hard to do with programmers and today's programming paradigms.

So, UX should be learned by everyone ... it is simply not going to happen. What might happen that the people who use it (who are domain experts and judges) can handle the UX themselves. The additional advantage is that you do not need to code a different UX for different roles and different skills. That usually leads to a mediocre mix of UX functions that is not perfect for everyone.

So rather than empowering the programmers, I would focus on empowering the business users.
Thanks for the post and discussion. Great stuff! Max

Reason for the surge in importance of UX

Fantastic post, Mike!

Apple has been creating great digital experience for a long time now. But, this has caught up with the application development teams recently for 2 reasons:
- Cloud has disrupted the distribution chain. Applications and development tools are available at your mouse click on your browser and has eliminated distribution intermediaries.
- Elimination of distribution intermediaries has made "try & buy" & pay-as-you-go as the defacto model on the cloud. Now, buyers are not forced to "learn" or put-up-with software, because they havent bought them yet. They demand the software to be simpler and engaging. Else, they are going to try something else.

So, vendors are forced to create the best experience for their users in the first given opportunity. And not throw more features at the first time user. I guess, it is the only way to survive to improve that 2% conversion from "try" to "buy".

Well put

While some of the PC touchy-feely lables you have provided are bit much for me, I could not agree more with your #5 statement: Software is a creative endeavor, not an industrial process like building automobiles.

Over the years companies continue to attempt to commoditize the software development life cycle. The reason it fails, is because MOST software is designed to improve a specific process. What seperates one company from another is seldom the product or services offered and is more often the cost, quality or value proposition offered by that company. The one major differentiator can be process. If I can do something cheaper or faster than you, I can sell more.

Given that most business's see their processes as their secret sauce, there is seldom a 'one size fits all' software solution for them. The art of joining software to process is indeed an 'ART', any attempt to standardize, cookie cutter, or otherwise remove the art would also remove a businesses opportunity to differentiat.

Creativity at best

Very well said.

When I joined in the industry of software development, I had thought that there would be opportunities to be creative and design extra ordinary helpful software. However sometimes the culture of the company does not really allow us to be creative. Being creative alone does not help.