Developers, Grow Up.
I’m spending my day at Microsoft’s Charlotte campus for a Windows 8 Dev camp. Doing Windows 8 Metro dev at work got me interested so I decided to take a day and see what I can do to make my Metro app better.
I also went to CodepaLOUsa in Louisville in March, which was loaded with Windows 8 sessions. While there are a lot of great info in the sessions, there’s always one component that seems to rear its ugly head at every collection of ‘developers.’
But let’s define that first. What is a developer? Remember, this is fluid. A dev 5 years ago is radically different from a dev today. Same is true over really any time slice longer than a few months. A developer now is a technologist, a designer, a coder, a project manager, an architect, an infrastructure guy and a business process counselor. That’s a lot of hats. But that’s ok, because as developers, we already have to have IQs higher than 14.
Which leads me to my next point — if your goal in life is to focus solely on blowing holes in what others are working on, you probably are less of a developer and more of a tool. Let me explain.
If you’ve ever said ‘Users have to use this,’ you’re not a developer.
At both CodepaLOUsa and here at Microsoft today, there’s already a crew of people complaining about security, control & consumerization. Chances are, these guys aren’t developers, they’re guys who write apps — apps that suck. Apps that are forced on users because they’re corporate developers who don’t care about consumers or choice.
Ok, so we shouldn’t worry about security? Or control?
No. You shouldn’t. You should write your apps keeping those things in mind, but you certainly shouldn’t hide behind them as reasons why your apps suck. You can write secure apps that don’t suck. It’s simple — never trust the client, write rock-solid backend services, use common sense and you’ll stay protected.
You should let the third-party services (who can do their thing better than you) focus on all the BS that goes along with their service, so you can focus on your app.
You’ll always have bugs. Responding to them in a timely manner is key. Filing bugs as ‘can’t reproduce’ is a typical ‘enterprise developer’ attitude — two seconds, can’t repro, so it’s gone. Doesn’t matter, because users are forced to use it — no competition.
So I’ve de-sucked some of my app. But what about 3rd party services?
This is the next thing the old crusty guys in the corner complain about. It’s really an extension of control:
“OMG, MY USERS WANT TO USE SKYDRIVE! DROPBOX! MADNESS!”
Please. Let’s be reasonable. Third party services are the backbone of any development platform or OS. I mean, think your little delta replication algorithm you wrote in an afternoon holds a candle to Dropbox? Puh-leeez. Think dropbox has any interest in your data? (they don’t) Think that Twilio gives a rat’s ass what you’re texting to your corporate users? Here’s a hint:
yeah, No. They don’t. This isn’t to say you shouldn’t be diligent about your own due dilligence. If you elect to try out Jim Bob’s Storage Bargain Madness, who says he guarantees four-nines uptime (but doesn’t tell you where those nines fall in his percentage — 64.9999 and 99.99 are radically different), then you’re a fool in your own right.
If you write garbage apps, users will go elsewhere — even if you’re a corporate dev
Obviously, anyone who’s written consumer apps knows that if you have a crappy app, the only way to be successful is to obliterate the competition (or do something so dry and boring that no one else cares). Corporate devs know this, but elect not to care. For one reason — no competition. For a long time, it’s been like that for a long time — IT security ‘professionals’ (i.e., I read an informationweek article about threats to my network) have shut down internet access and crippled devices to keep users in the dark.
Things change. I said it twice so it would sink in. I’ll say it again: Things change. Your users are changing. Your corporate IT management is changing (albeit, brutally, brutally slowly). You can’t kill 87% of the internet through your proxy and expect top talent to stick around. You can’t expect top talent to keep their devices and services at home. You can’t expect even mediocre talent to stick around without a device with capabilities from this century (I’m looking at you, RIM).
There’s an interesting thing about change — you can embrace it, be a part of shaping its future and enjoy the ride, or, you can fold your arms, grunt a bunch and whine and end up having to change anyway. Which of those sounds more fun?
Your customers are consumers — and have zero allegiance to you.
Don’t fool yourself into thinking that the guy who uses Dropbox, Facebook, Twitter is suddenly going to stop when he gets to work. Don’t think that the top-notch user experience he’s used to from those services is just going to be forgotten as soon as he walks through your doors. He may not say anything to you or complain, but there is a reason — he’s using something else.
I think you’re an idiot.
That’s fine, you’re not the first. And what I’m saying here obviously doesn’t apply to every developer or every corporation, or every anything. It’s a gross generalization — but it’s something I hear every time I get around more than a couple of developers. And it needs to stop.
Seriously, grow up. Be a dev. Embrace the culture and experience of one of the best jobs in the world. Embrace the career that pays you a lot to learn every day. Embrace the creativity and innovation it takes to do what we do — and do it well. You’d be amazed at how an extra 10% of effort and focus on making your app ‘consumer friendly’ goes towards pleasing your corporate users.
And if you can’t do that, perhaps it’s time to reconsider. There are plenty of highly-paid jobs that relish in the ‘old guard’ — guys who delegate, dictate and produce nothing.