Monday, October 18, 2010

Qualities of Top Developers

We’ve often heard about the two fold (or five fold or ten fold) productivity increase between the top developer and the average developer. I’m sure we’ve often (ok, always) wished for a team full of these folks, but somehow we rarely get that. We tell ourselves that top developers are hard to find, they’re one-in-a-million, or that it’s just luck to hire them. There may be some truth to that, but there are certain characteristics that software experts share, and if you recognize these characteristics, you are more likely to either find them or cultivate them on your team.


First, and most obviously, top developers are among the most technically competent on your team. The have a wealth of tools in their toolbox, and the ability to use the right one for the right job. Both the breadth and the depth of their expertise are usually built over time and a variety of project challenges.


In addition to skills and experience, the best technicians tend to have great natural ability. Their brains just work in a way that makes designing programs easy. This has enabled them to build up their toolbox by allowing them to learn tools and techniques easily, and determine which ones are valuable and which are not.


A third characteristic is attention to detail. Whether it is in the requirements, design, coding, or testing phase, attention to detail will help ensure the work product is high quality. In their own personal growth, attention to detail is also important as it helps them develop new techniques and avoid old mistakes.


Fourth is the desire for continuous learning. Top software professionals are always “sharpening the saw”. They are learning new languages, processes, tools, or just simple techniques to build more good code faster. They are always up on the latest trends and eager to work with new technologies.


A final characteristic that is found in many of the most effective developers is teamwork. In most companies these days, interpersonal relationship building is a necessary skill. Most developers are not people oriented to start with, and those that can develop this essential skill have a huge benefit over those that do not.


Every top developer may not have all of these qualities, but be assured that they have most. Screening for, interviewing for, selecting, and nurturing these qualities will go a long way towards improving the effectiveness of your teams and your software development efforts.

Tuesday, October 12, 2010

DroidX is a Mighty iPhone Competitor

Tired of waiting for the iPhone to be available on the Verizon network I decided to jump onto the Android bandwagon and abandon my Blackberry Storm. The rumor mill continues to heat up with stories of an impending CDMA iPhone available in 2011. I am happy to report that after only two weeks of using the new Verizon 3G Motorola DroidX I really think Apple has very serious competition.


A couple of my concerns about the Droid-type phones were the quality of the user interface and the availability of business oriented Apps (iPhone set the bar very high). Both of these concerns were totally unwarranted. The DroidX’s gesture based user interface works well and is very intuitive. The new Swype technology allowing one to trace out a word on a displayed keyboard is truly amazing. At first I thought it might be gimmicky or even a throwback to Palm’s Graffiti language. However, it is neither of these. I find it to be a major productivity enhancement in creating messages, documents or emails over the multi-tap on-screen keyboard.


What can I say about Apps, there is simply no shortage. Like the iPhone there are tens of thousands of Apps from which to choose. Some are free and some may be purchased. Unlike the iPhone, where there is one central location for Apps, the Android world provides several alternative websites to choose Apps. I am just beginning to discover them; more on this in a later post. The phone came with about 2-dozen Apps. Many of which are very useful. My favorite is Navigator, a voice activated and turn-by-turn spoken navigation system. It is based upon the built-in GPS system and provides a real-time traffic overlay. Well almost real-time.


The first App I needed to find was one to link the DroidX to my company’s Microsoft Exchange Server for email, contacts, calendar and tasks. There were several to choose from in the Android Market and I selected TouchDown (NitroDesk). I downloaded a free and fully functional trial of the App. After spending a few minutes to enter login and server information I was connected to my company’s server. Within 15 minutes I had all my Exchange emails, contacts, events, and tasks on my new DroidX. No more local synchronizing! All updates between the phone and the Server are via the 3G-network or WiFi the updates are immediate.


Of course the Android syncs with the entire Google eco-system of Gmail and its associated apps. You need to enter a Gmail address and you all your Google data is now available on the phone. Other email accounts work well and are easy to setup with the built-in mail application. In future posts I will talk more about some of the business oriented Apps and yes, fun Apps, I am now discovering. If anyone out there has any specific MUST HAVE apps please speak up.


Oh, one other thing, it is a pretty darn good phone!