Monday, October 13, 2014

[Desktop|Mobile] first developement

Caveat lector: I'm probably not qualified to ponder this subject nevermind spew my ponderings across the web. But then again, tats wot teh innernet is for innit?

I prefer desktop first. Not because it's easier (mobile dev is still new and will, all things being equal, improve). Not because I'm an old curmudgeon (though I am). Not because I'm a luddite (I'm not). Not entirely because I think 'mobile' everything is overly hyped (that's a whole 'nother post). The reason I feel this way can be summed in one simple analogy.

I'd rather have a van for my family of 5 than a smartcar with a trailer hitched to the back. A smartcar will get one person, maybe two if they're quite friendly, to work and back. Possibly through a small trip to the grocery store. There can't be any significant cargo space in those things; groceries for my family would take up the entire cabin. The smartcar is essentially equivalent to mobile first development. You get the basics (4 wheels, propulsion, steering, safety equipment) done first and eloquently. Then you start bolting on the extras as they'll fit (stereo, sunroof). Then for the things that won't fit on mobile you build out a desktop version. You bolt on a trailer with some seating to carry passengers (still, no cargo space to speak of if you actually want passengers...). Stop right there. The van will do all that with aplomb and grace... while sucking up gas and spewing out fumes like nobody's business. They both have their faults.

So I have a van to tote my groceries and family around with. The passenger and cargo space is important  to me so I want it done right the first time around. All you people with smartcars are going to understand when you build a family (or you already have a family and multiple vehicles, patience I'm getting to that). In the same way if I care about the functionality of the software (in other words, if I would actually give someone money for it) then I want the broadest functionality built in the most efficient, eloquent fashion. Desktop first. For those pieces of software that I don't really care about mobile first is fine. The key point, just like the analogy, is that I don't need the desktop quality experience or functionality for those packages, and indeed I probably don't want to have all those additional features taking up resources or mental energy. MSPaint works great for the vast majority of the graphics editing tasks I have. On the other hand Notepad is not a sufficient text editor for me (for the vast majority of computer users it is more than sufficient) and so I pay for UltraEdit. Note that although I have MSWord it is not a text editor :P

Now, here's where the analogy breaks down. People that need a van will often have a second vehicle to use when they don't need the full capacity of the van. On the other hand typically you'll only use one software package for any given purpose (for a number of important reasons). If you routinely use Photoshop (or GIMP) then you probably won't bother to open MSPaint. I rarely open Notepad because text formats are associated to UltraEdit in the OS and UE is my instinctive go-to in all other cases. There's the rare moment, equivalent to renting or hailing a cab, when I'll open Notepad from the Run... dialog just to act  as a backup clipboard but those are outlying cases. You'll note that in those cases I'm not paying for the mobile-first software package.

There are, of course, cases where the mobile platform has inherent value that makes up for it's reduced capability, again those are outliers. Yet it seems like most mobile developers bewail the fact that they can't get a user to pay $0.99 for their mobile app while for some reason people still pay for desktop apps (and a lot more than a mere $0.99 in most cases). Is it perhaps because reduced functionality apps are used mostly by people that don't need the functionality enough to pay for it on any platform?

No comments: