Who’s Your User, Daddy?

All software is developed to be used by someone, even if only in an automated fashion (that is, without any direct interaction with the user). As such, it is important to understand who your user is, or you may (ok, probably will) find the going tough. If you are a game developer, life is good. You know who your users are – gamers! Likewise, there are many industries or types of programs where the user is a well-known entity. If you write accounting software, for example, your user is probably someone who does…uh…accounting.

I happen to work in an environment where the real user of the software is often a bit of an unknown. Well, the real user is generally known, but often we are unable to get direct feedback from the user, or the feedback loop is very tenuous and arrives filtered through other people who generally are not developers and rarely elicit the right kind of feedback or ask the users the right kinds of questions. The situation can be so backwards, in fact, that some of the developers I’ve worked with over the years are convinced the user is, in fact, the middleman who filters all that rarified feedback. Developers will say things like, “I’ll have to talk to the users about that.” Of course, they’re never going to talk to an actual user, just the business people who are in control of the project. In the real world, these people would be called stakeholders, but even in other companies, I’m willing to bet that the stakeholders are actually treated as if they were the users.

Stakeholders may feel they have deep insight into how real users will interact with the software, but, unless they spend a lot of time with real users, they are typically just guessing. That’s bad enough, however, the real problem occurs when the stakeholder has a vested interest in trying to shape the software to make their own job easier. While that’s understandable, and their opinion does matter in that respect, it doesn’t serve the actual user of the software. A common symptom of this affliction are screens that fit the stakeholders workflow, rather than the end user’s workflow, or forcing the end user to enter all kinds of data that may not be readily available to them. The stakeholder wants every possible piece of data up front, whether they truly need it or not, and these become required fields. End users will frequently come up with creative ways to get around the restrictions, which ultimately helps no one, because it ends up being extra noise to filter out.

Unfortunately, developers have no say in any of this, and most will simply do as they are told. I’m not sure what can be done to change this attitude, but it’s ultimately counterproductive, and developers like that end up revisiting things over and over as they try to tweak things and plug holes – problems that might have been averted by paying more attention to making sure the software actually was developed for the right user.

6/1/2014 Developer News Roundup

Joke:

Scientists from the University of Southern North Dakota at Hoople* have discovered a technique for extracting the glazing from the eyes of mindless bubble-gum-chewing teenagers and applying the extract to various surfaces to give them a unique shine. The scientists have tried it on a number of materials, including leather, and the results are, if nothing else, quite fascinating. Apparently, Mel Brooks has caught wind of this development and is considering using it in his next motion picture, tentatively entitled “Glazing Saddles.”
Apologies to Professor Peter Schickele of P.D.Q. Bach fame.

 

Security news:

In baffling move, TrueCrypt open-source crypto project shuts down (Very cryptic. Never say I don’t go for the obvious dumb jokes, either)

OpenSSL to get a security audit and two full-time developers (Two, count ‘em TWO! I feel more secure already. Not.)

 

Mobile, web, and cloud news:

Ramda wants to put the function in functional JavaScript (Have a rendezvous with Ramda. Arthur C. Clark must be rolling over in his grave, now.)

Tools rush in: Developer options grow for Internet of things (Get yours now, before they become obsolete in 27.5 hours)

Pop quiz: Who invented cloud computing? (Seems the answer is still kind of hazy)

PHP improvements to boost real-world app performance (Now if they would just make it more secure and actually pleasant to program…)

Mary Meeker’s 2014 Internet Trends report is a must read (Why not. I’ve got nothing better to do.)

App dev Q&A: The journey to making Famo.us real (And Famo was his name-o)

Microsoft goes public with browser development plans (More open, just without the source)

Microsoft’s new open source ASP.Net can run on Linux, OS X (ASP.NET goes Mono e Mono)

ASP.NET vNext on OSX and Linux (Some more on the subject)

Xamarin.Forms – Write Once, Run Everywhere, AND Be Native? (This makes looking at Xamarin for cross-platform development even more compelling)

RubyMotion 3.0 Sneak Peek: Android Support (on the other hand, if you only want to support Android and you like Ruby, not Java, take a look at this)

Apache Cordova 3.5.0 (New version)

Hands On with the Android Wear Developer SDK (Warning: This may wear you down)

Update: Xamarin 3 releases Apple Xcode alternative (These people are on a roll)

Microsoft shoots to shorten Internet Explorer’s long tail (After shooting themselves in the foot for so many years)

Visual Studio Now Supports Hybrid Cross-platform Mobile Development via Cordova (Shades of Dr. Strangelove – We must not allow a PhoneGap gap!)

Top 10 JavaScript traps for a C# developer (Sounds like some of these also apply to other types of non-JavaScript developers)

uncss: Find Unused CSS (Hey, you might even find Waldo!)

New standard for a faster Web finished by year end? Maybe not (I’m betting not)

 

General news:

15 trends and 15 turn-offs in app dev (Just 15 of each?)

Caliburn.Micro – Xaml made easy (Write once for all your Windows-based platforms, if you like that sort of thing)

Git 2.0 features better defaults and a kinder learning curve (Now you only need a Masters degree to git it…get it? Er, never mind, I hear someone calling me…)

Computer scientists study other computer scientists (No doubt looking for signs of artificial intelligence)

Enjoy machine learning with Mahout on Hadoop (A shout out for Mahout)

TechEd North America Highlights for App Developers (Lots of links to content from the conference)

When too much coding can kill you (No coded messages, here)

Skype shown automatically translating multilingual voice calls (Why not? What could go wrong?)

Microsoft’s New OneNote Service API Backs Free Apps for Windows, Mac OS, iOS and Android (Hmm, very OneNoteworthy)

Setting Up F# In Emacs (Emacs in the key of F#)

Coding Principles Every Engineer Should Know (Random quote: “…only good programmers can solve problems in simple, understandable ways.”)

Nitra goes Open Source! (probably because you’ve never heard of Nitra before this)

Where Is the Learning in Agile? (It was too fast and has already left the building?)

Choosing a Web Framework/Language Combo for the Next Decade (A decade worth of relevance? That’s optimistic)

Announcing Update to Productivity Power Tools 2013 (Apparently, we we’re productive enough, before)

Don’t Believe Anyone Who Tells You Learning To Code Is Easy (Really?

New Windows app development training resources now available (Please, please, won’t you build some apps?)

4/11/2014 Article Links

Joke:

Two buddies rent a boat to go fishing. Naturally, they bring along a lot of beer to pass the time, because, who ever really goes fishing just for the fish. Anyway, they hit it big time and catch a lot of fish, while also ingesting a lot of beer. After a while, they both have caught their limit, so they head back in and return the boat. The first guy says, “You know, we really should have done something to remember that spot for next time.” The second guy says, “Oh, I did. I marked a big red ‘X’ inside the boat.” The first guy says, “You dummy! Suppose we don’t get the same boat next time?”

 

Cloud stuff:

Available Now: Preview of Project “Orleans” – Cloud Services at Scale

New Amazon toolset tracks cloud spending

Security could be a casualty of the new Azure portal

 

Mobile development stuff:

Windows Phone 8.1: a lap around the new development features

The decline of the mobile web

HTML5 apps can be just as speedy as native apps with the new Famo.us Javascript framework

 

F# stuff:

DDD and CQRS Using the Functional Language F#

Facilitating Open Contributions for the F# Compiler, Library and Visual F# Tools

 

Other stuff:

First look: MongoDB 2.6, the all-grown-up version

Developer picks: 7 tools for making the most of GitHub

6 ways the Internet of things will transform enterprise security

Dart 1.3 dramatically improves server-side performance

Mono and Roslyn

Software Estimation: How Misperceptions Mean We Almost Always Get It Wrong

Star software designer Greg Christie leaving Apple

4/1/2014 Article Links

Random picture:

DSC_0069-69-4-Edit-Edit-Edit

Badlands National Park, South Dakota.

 

Trivia:

April Fool’s Day History

 

Random stuff:

Facebook tweaks (used to fine tune an iOS app)

Adobe Announces PhoneGap Enterprise for Mobile Development

Windows Phone 8.1 core has finished today

Microsoft to unveil Enterprise Mobility Suite alongside Office for iPad

Survey: 33% of iPhone owners would shell out $300 on contract for a bigger iPhone 6

Apple engineer reveals where the iPhone’s original software came from

Git smart! 20 essential tips for Git and GitHub users 

Farts and f-bombs: see the hidden jokes in Microsoft’s early code (what else would you expect to find in MS-DOS code?)

Why your previous developer was terrible (raise your hand if you’ve heard this one before)

Whatever Happened to Reuse? (It was recycled)

Cloud deniers are the flat earthers of the tech world

Google General Counsel to Arrington Allegation: We Don’t Snoop on Gmail to Find Leakers

Can Microsoft rescue Windows? (wait, I think I’ve heard this one every other release of Windows…)

It takes an open-source village to make commercial software (cue catchy theme music)

Apple says it wants emoji to be more multicultural