Sunday, July 20, 2014

Why I'm Giving Up on Windows Phone

I love Windows Phones.  I really do.  I picked up the Lumia 900 a couple years ago, and replaced it with a Lumia 925 when that one broke after two years.  But I think I have to leave Windows behind, and here's why.

In the ago:

I've never been what you'd call a "gadget guy".  Sure, I like the cool toys of every generation, but generally don't want to make it priority to buy gadgets as an early adopter.  I've got two kids and not a butt-ton of income I'm willing to consider disposable enough to stay at the forefront of the technology adoption curve.

Cell phones had been out for years before I got one.  I'm still not sure I did the right thing.  It's an expensive thing that tethers you to the beck and call of both work and home in ways that were impossible before.  I love and crave asynchronous communication in my life, and telephone calls just aren't that.

But I did it, because peer pressure in the workplace, and all the cool kids were doing it.  And I ended up with the most modest little brick phone I could find.  It took me years just to adopt the "cool" phones you could flip closed to hang up on someone when you were angry.

I can't even remember what year it was that I got my first smart phone.  One of my buddies had been extolling its virtues for a while, and I eventually caved.  And in that moment, my life changed.

iPhone era:

I think it was the iPhone 3G.  It was many, many versions ago, but boy, was it handy.  It took a relatively resourceful individual and made him into "problem solving man"!  Stuck on the road and didn't know where to go?  Shoot, I got GPS, y'all!  I could get my email via phone!  I could search the internet to find anything! I could look up movie times! 

And everything was great.  For a while.

Compared to the desktop, the application model seemed so limited.  I didn't like having to close one app to open another.  I didn't like the app store experience all that much, and I despised iTunes, with its huge PC-slowing bloatware (I haven't ever owned a Mac - I hear that integration is better).  Battery life just wasn't that great, and a phone without a solid battery becomes a useless brick when the charge is low.

But the last straw came when my wife's iPhone was stole while she was out and about.  Someone snatched it right out of her purse (this was back when digital devices were apparently worth something on the black market).  We called AT&T.  We called Apple.  According to them, nothing they could do to brick the device when stolen.  Nothing they could do to protect the information on the device.  Nothing they could do to even help us restore the information, because iTunes supposedly stored all the useful information for a backup in a binary format that couldn't be read, except to restore the file onto a new iDevice.

We did not want another iDevice.  The whole experience left a bad taste in our mouths, and we decided to try the new OS on the block: Android.

Android era:

So we did our research and decided that for our next his/hers phones, we'd each go for the Motorola Droid X, the media darling of the day.  And we liked Android.  Both of us, which is pretty rare when we can agree on a technology.

Android was slick.  The app store worked.  Everything synched to our gmail, our contacts, it ran all the apps we wanted (well, not really, because Android wasn't the big player it is today back then, but enough of them).  It all felt slick and non-proprietary and easy to use.

But ultimately it wasn't for me.  It seemed that the battery drained way too fast.  Over the course of the couple years I owned the Droid X, the performance seemed to get worse and worse, like a Windows PC all loaded up with background cruft.  You'd tap an icon and nothing would happen, so you'd tap it again, and wait and then two taps would register and who knows what the effect was going to be?  Cloud apps weren't quite there yet, and to try to figure out how to get all my disparate information off and refresh the whole phone seemed ridiculous to me.  There just had to be a better device.

Enter Windows Phone:

I think it was at Codemash 2012 that I was expressing this displeasure to Clark Sell, Min Maung, and Lwin Maung. They were all talking about the new Lumia flagship device that was launching or had just launched. This was the Lumia 900, and it was going to be great.  I think they all had Lumia 800 and in playing with the phones, the whole OS just felt right.  It felt intuitive, easy to use.

I did my reading.  This phone was optimized for usability.  The OS gave priority to touch, so that even if something was processing heavy, if I tapped the phone, by gum it was gonna respond.  I was in control, not the currently active thread, and it felt like it.  The OS managed threads ruthlessly, and if I'd not been back to an app in a while, it would hibernate the thread and keep the resources running clean.

The phone also seemed optimized for battery life, too.  Black screen was the default.  You don't think much of it, but a black pixel is off.  A white pixel is on.  It does affect power consumption for an OLED screen, like the Lumia 900 was going to have.  Further, the Windows Phone has a lot of nice features about degrading services gracefully as power gets lower.  It extends the battery life for seamlessly turning off services for you.

Overall, the phone just worked.  

So I got one, and it was amazing.  It was quite literally everything I wanted a phone to be.  Great battery life, great threading model, meaning it was always responsive.  Uploaded pictures to the cloud.  Pretty great camera for a phone.

Upgrading to the Lumia 925:

I eventually upgraded from the 900 to the 925.  The 900 didn't support the push to Windows Phone 8 or whatever the release was called, and that had some features that I thought I wanted.  I put it off for a while, but ended up with an issue with the headphone jack that would have required a repair or refurb, so I figured, "Why not?"

And things were good again.  Migrated my data over to my new phone, got the Windows Phone 8 OS, and all was hunky dory.

Now, one thing should be noted.  All this time that I'm loving my Windows Phone, I'm not loving some of the choices it's forcing me to make.  I like to listen to podcasts, and a lot of podcasts simply aren't available on the Windows Store.  I made do, because I only have so much time, but it sure made it hard some days to find something to listen to.  

On top of that, RunKeeper, a popular program for GPS tracking my runs, dropped support for Windows Phone.  Broke my heart, really, because it's not as if they didn't support Windows Phone.  They stopped supporting Windows Phone.  They betrayed me.

Then there were all the apps that I liked that never supported Windows Phone.  Sure, there were alternatives you could find, or maybe someone would release a dumbed down version of the app you liked, but it was never the iTunes or Google Play store.  But given the positives, I still wasn't really willing to go back to those models I didn't like so much.

The straw that broke the camel's back:

This past week I went down to North Carolina.  The family piled in the Kia and drove down, I mean.  And when it's my turn to drive, I need my podcasts, while everyone else is sleeping or otherwise occupied.  So I fire them up, plug the aux cable into the headphone jack and start listening.

About a minute in, the podcast cuts out mid-sentence.  That's strange, so I have to look at the phone and figure out why.  Oh, looks like it's paused.  Well that's weird.  Ok, so press play and back to listening.  And it does it again.  And again.

It is a nice feature that when the headphone plug is unplugged, the music or other media stops playing.  In this case however, it seemed like bumping the headphone plug or cord in a particular way would cause the audio to pause.  And because we were on the road jostling, this happened every few minutes or so.  For hours on end.

Of course the headphone jack issues with both Nokias could be a coincidence.  But they were both out of warranty when it happened.  Feels like shoddy work, or even planned obsolescence.  After hours in the car driving back, knowing full well I can't use this device now to run with either, it's decision time.

And I pull through the Walgreen's drive-through to pick up prescriptions today on the way home and what do I see?
There's even an obvious little space where to put the "Available for Windows" logo.  But it's not to be.

So now I'm torn.  I need to move off this Windows thing and admit that it's simply not going to happen for Microsoft.  Wouldn't be the first time a really good product didn't make it, so I am not too unhappy, but now I'm wondering where to go next.

Now taking suggestions:
So, I've seen the iPhone 5 and used its camera.  It's pretty fast, but I don't know much else about it.  My wife never took the Windows plunge and has a Galaxy S3, but that phone is acting weird now, too, and she's ready to chuck that, too.  

So seriously asking... What phone next, and why?

Thursday, July 10, 2014

Inspire the Troops

Ok, so today I want to talk to the team leads, the tech leads, and the tech managers out there, the people that other developers and software engineers look to when they want answers, the people whose job involves technology thought leadership.

One of your biggest challenges at your job is motivation.  Not yours, obviously.  No, you're the kind of go-getter who gets up in the morning and eats a big bowl of "I can do it" for breakfast.  You read blogs.  You watch your favorite speakers on Twitter.  Your motivation is beyond reproach.

But you've got folks on your team who have been doing this whole development thing awhile.  Maybe they've been working on that document management subsystem for two years and are really coasting. Maybe they've been stuck on the same platform or same language so long that you see them not being able to think outside the box for a solution.  Maybe they are sitting around waiting for direction instead of proactively looking for improvements the way they used to.  That doesn't make them bad employees.  Life sometimes happens.

As a team lead, you need to get their enthusiasm up.  You need to generate in them a lust for coding.  Not so they'll code for you 12 hours a day.  Don't do that.  Burnout is as bad as or worse than a lack of enthusiasm. No, you need your folks to enjoy coding, to enjoy solving problems, to think about their work critically and try to find and suggest new ways of doing things.

But that's a slippery and elusive thing to go looking for.  Team motivation might as well be your white whale. You've tried lunch and learns, brown bags, watching team internet videos, and that seemed to help, but you're only one person, and you can't do your job and also manage an inspirational team calendar.  Or maybe you can and it's just not enough.

So here's what helped me.  That Conference.  I've made it no secret that community conferences changed my life.  That's just me.  But you're not me.  You're a successful team lead.  You've got the motivation.  So don't come to That Conference.  Send your team.  Here's why.

See, if you want them trained on a particular topic, send them to Pluralsight (I'm not a shill, and they're not a sponsor, but I've had good luck with them).  Send them to a class.  There are lots of good training programs.  Sometimes those programs inspire, to be sure.  But I've seen so many people sit through a dull class and come out bored.  That's if they were even happy to be there or paying attention to begin with.

What about big conferences, like TechEd, or Google I/O, or one of the huge $2500/ticket conferences (never mind the per diem, the hotel stay, the air fare => maybe you're looking at a $5k total)?  They have value, sure, and employees may be motivated by the fact that you've given them a perq.  There's value in that , too.  But motivation to code and get things done may not be the value there.  Maybe it's too marketing-speak.  Maybe it's too specific.  Maybe it's too platform-limiting.

That Conference, and polyglot community conferences in general, are designed to inspire.  By getting attendees into a place where the boss has no presence and giving them a buffet of technologies to feast at, you allow them to rediscover why they came to that field to begin with.  You offer them a chance to see different approaches, try different platforms, or understand a different technology culture.

August 11-13, we're hosting the biggest, baddest community-led technology conference/summer camp at the Kalahari Resort up in the Wisconsin Dells.  150 sessions on a glorious and dizzying array of technologies are available to attendees.  Encourage them to go to sessions outside their comfort zone, and they may amaze you with what they learn.  Even if they stay near to their platform of choice, however, they will find their ideas challenged, and their techniques extended with everything from overview sessions to deep dives.

Of course, it's not just about the technologies.  At the end of the day, we're all people interested in similar things.  Many of the Speakers (err... Camp Counselors) are industry leaders, but they don't fly in and fly out without interacting.  They hang out, meet people, share war stories, and in general are available.  I have chatted to people on Twitter forever and then met them for the first time in person at community conferences. Meeting inspirational people is just another way to get motivated.  Heck, just meeting a new colleague at another company who is doing similar types of development can be rewarding.

All that would be totally invaluable at the price of one of the bigger conferences.  Inspiration and motivation are hard to create, but they seriously affect your team's productivity.  That Conference tickets come in at $399.99. With easy travel by auto for anyone in IL, WI, and MN, and most meals included with the ticket, you're talking about more enthusiasm and motivation for potentially south of $1k.  Such a deal, really.

So send your teams.  Let them bring back their enthusiasm to you.  Let them share with you what they learn. Tickets on sale now.

Hey wait, before you go, remember how I said not to come to That Conference?  I lied.  We totally want you to come, too.  We value that leadership and enthusiasm.  Speakers for the main sessions are already set, but there are dozens of Open Spaces slots over three days where you can share what you know and maybe even get a little inspired yourself.  Come out and meet me.  I hope to see you there.