Archive for May, 2011


In a previous blog I talked about Android vs Apple. My opinion was Android has the better long term value, but they needed to offer more consistent user experiences. Hopefully this new platform will help with that. I always knew they would take my advice 🙂

App builders eager for taste of Android ‘Ice Cream Sandwich’

Developers hope the upcoming Android release will resolve fragmentation issues

By Paul Krill | InfoWorld

Developers are hopeful that the upcoming “Ice Cream Sandwich” release of Android will fix the long-standing problem of fragmentation on the platform, which has forced application builders to write their programs differently for the multiple versions of the OS in circulation.

Android OS 4 “Ice Cream Sandwich” is due by year’s end, providing a unified platform for both smartphones and tablet devices. “It’s definitely going to be a good direction because fragmentation seems to have been a direction they were going in. Hopefully, this brings it all back together,” said Brian O’Neil, software architect at Turner Broadcasting. Developers could find an easier path with “Ice Cream Sandwich,” he said.

[ Google is also extending Android so it can be used for custom-built devices; InfoWorld’s Neil McAllister explains what the Android ADK is all about. | Keep up with the latest developer news with InfoWorld’s Developer World newsletter. | Follow Paul Krill on Twitter. ]

Concurring was Mark Wolgemuth, chief architect at Web time-tracking tool vendor RescueTime.com. “We have an Android app that I’m working on trying to get it to work across [versions] 2.2.x [“Froyo”], 2.3 [“Gingerbread”], and 3.0 [“Honeycomb”], and the UIs behave a little differently in some ways. To not have to code to a diverse branch of platforms and be able to code to just one and instead use screen-size detection and things like that to handle UIs is a much better solution.”

“Ice Cream Sandwich” is positioned as an open source release for multiple device form factors. “We want one OS that runs everywhere,” said Mike Cleron, a member of the Google technical staff. Capabilities from the 3.0 “Honeycomb” tablet release of Android — including a holographic UI, multitasking UI, and richer widgets — will be able to run on smartphones. Also, APIs will enable developers to take a UI and scale it across different form factors. For conferencing applications, “Ice Cream Sandwich” will be able to detect who is speaking and shine the device’s camera on that person.

“I think [the upgrade] will help with fragmentation as far as the tablets and the mobile world is concerned,” said Mike Adams, a Web developer at marketing firm Brooks Bell Interactive who has dabbled in Android application development. “Developers right now are developing for multiple devices, which can cause problems depending on their hardware. Just to have one source for an SDK is going to help out tremendously.”

Android has been beset by too many OS versions, said Conor Power, CEO of SaaS developer No Good Software. A movement by Google toward unity is the “right direction,” he said.

Mobile Web application builder Rich Manaling said fragmentation involving different screen sizes has been the biggest complaint he’s heard about Android. But Apple iOS developers also deal with different screen resolutions for different iPhones, he said. Manalang expects most improvements in “Ice Cream Sandwich” to be related to the UI layer.

Android application developer Matthew Nakatani, a student at Sonoma State University, lauded Google’s plan to have Android devices support 18 months of OS upgrades after their release. “Previously, the devices were never guaranteed an upgrade,” he said. “So, you [would] buy a device, it’s got the software on it and you throw it out.”

“That [new policy] alone is huge because that reduces the amount of devices you’re going to be throwing out, and so reduces the amount of new devices that you’re going to have to be purchasing,” Nakatani said. Partners such as Sony Ericsson, Verizon, Motorola, and AT&T will receive OS upgrades for their devices.

This article, “App builders eager for taste of Android ‘Ice Cream Sandwich’,” was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

Advertisements

A buddy of mine sent me this article that I think hits the nail on the head. There are a lot of developers out there, but there are a small group who are able set themselves apart. Long in short, they do this by being able to show experiences where they have built something on their own. Not only that but they can describe their code and the theory/reasoning behind it.

Jon Evans

May 7, 2011

We’ve all lived the nightmare. A new developer shows up at work, and you try to be welcoming, but he1 can’t seem to get up to speed; the questions he asks reveal basic ignorance; and his work, when it finally emerges, is so kludgey that it ultimately must be rewritten from scratch by more competent people. And yet his interviewers—and/or the HR department, if your company has been infested by that bureaucratic parasite—swear that they only hire above-average/A-level/top-1% people.

It’s a big problem, especially now. There’s a boom on. I get harassing emails from recruiters every day. Everyone’s desperate to hire developers…but developers are not fungible. A great coder can easily be 50 times more productive than a mediocre one, while bad ones ultimately have negative productivity. Hiring one is a terrible mistake for any organization; for a startup, it can be a catastrophic company-killer. So how can it happen so often?

Like many of the hangovers that haunt modern software engineering, this is ultimately mostly Microsoft’s fault.2 Back when they were the evil empire where everyone secretly wanted to work, they were famous for their “brain-teaser” interview questions – Why are manhole covers round? – and, of course, they asked new university graduates about computer science theory; “Write me a binary search.”

Everyone wanted to be like Microsoft, even Google, until everyone wanted to be like Google (until recently); and so that interview meme persisted. Check out these two recent posts on the subject of interviewing, courtsey of Hacker News: one from a would-be employee, onefrom a Google interviewer. A couple of illuminating quotes from the latter: “I’m not even necessarily saying that this is a good metric” and “If it’s any consolation, at least we don’t ask gotcha riddle questions anymore. Those were especially offensive.”

It’s nice to see that Google have almost sort of realized that their recruiting algorithm is problematic. Too bad they haven’t fixed it. See also Jean Hsu’s “How Effective Are Technical Interviews?” The fundamental problem is that the skills required to pass today’s industry-standard software interview are not the skills required to be a good software developer. Oh, there’s some correlation, but it’s like the Oakland Raiders always drafting the fastest runners available, only to discover to their endless dismay that the NFL is not a foot race.

Actually it’s worse than that. At least wide receivers have to run, whereas I can guarantee you, without fear of contradiction, that no software engineer will ever have to write a binary search after they are hired. It’s like choosing a contractor because they know how to forge and cast steel using coal, iron, an oven and a bellows, when they actually need to know a) the address of the nearest Home Depot b) what to do with the steel once they buy it.

Joel Spolsky once correctly explained that you’re generally looking for two things in an employee: Smart and Gets Things Done. (Academia is teeming with people who are the former but not the latter.) First, though, you have to establish something else: Not Completely Inept. You’d be amazed how many totally incompetent people show up for technical interviews. Google’s binary search is presumably intended as their “FizzBuzz” – a low bar you have to hurdle just to get in the door. But a FizzBuzz should take all of five minutes, before the real interview begins.

So what should a real interview consist of? Let me offer a humble proposal: don’t interview anyone who hasn’t accomplished anything. Ever. Certificates and degrees are not accomplishments; I mean real-world projects with real-world users. There is no excuse for software developers who don’t have a site, app, or service they can point to and say, “I did this, all by myself!” in a world where Google App Engine and Amazon Web Services have free service tiers, and it costs all of $25 to register as an Android developer and publish an app on the Android Market.

The old system was based on limited information—all you knew about someone was their resume. But if you only interview people with accomplishments, then you have a much broader base to work from. Get the FizzBuzz out of the way, and then have the interviewee show and tell their code, and explain their design decisions and what they would do differently now. Have them implement a feature or two while you watch, so you can see how they actually work, and how they think while working. That’s what you want from a technical interview, not a measure of its subject’s grasp of some antiquated algorithm or data structure. The world has moved on.

1Yes, I am being deliberately sexist here, because in my experience those women who write code are consistently good at it.

2I don’t mind that Bill Gates is a megazillionaire; he’s done a lot of really interesting and innovative stuff. I do mind that a lot of unworthy people rode his coattails to minizillionaire status, eg the inventor of Hungarian notation, probably the dumbest widely-promulgated idea in the history of the field.

The Almighty Dollar

I get to speak with people everyday about their careers, and it can be fun and challenging at the same time. When people begin to look for a job there are several factors they take into consideration such as…

1) Salary

2) Day to day activities

3) Commute

4) Work Environment

5) Stability

These are just a few, but important non the less. Now lets get down to the nitty gritty… When looking for a new job there is an expectation of salary. One needs to feel like his or her skills are being recognized. However there are situations where the work environment or technology stack may be a little better which can justify $5000 or $10,000 drop in salary.

This week we had the pleasure of working with someone who had two job offers on the table. One had a salary that was significantly more than the other. After weighing the options she took the job with the lesser salary because it was a better long term fit for career growth.

My point is this, money can be the proverbial blind fold that masks other things that can be more important. Yes, you should feel happy with what you are getting paid; but at the same time make an educated decision taking all the variables that are important to you just as seriously as the salary.