NEWSLETTERS
 

CIO.com updates, insights and advice on technology, management and your career.

 CIO BlackBerry News and Tips
 CIO Research and Analysis
 CIO Microsoft
 CIO Insider
 
 
 
SUBSCRIBE TO CIO
 
Are you involved in setting the direction for your company's IT budget or strategy?

Apply today for a FREE subscription to CIO Magazine!

 


Tue, Dec 2, 2008 14:23 EST

Who's the worst programmer on your team? How can you tell?

Topic: Development

Blog: You're the Boss

Current Rating: 5 Comments: 25

I bet you could point to the weakest software developer in your department with little hesitation. But if I asked you to identify your criteria, it's unlikely that "metrics" would play any part in that judgment.

Since the earliest days of software development, the Suits have grasped at metrics to evaluate programmer performance. They started out by looking at the number of lines of code generated, and then the methods got even sillier. Every discussion about programming metrics begins by saying, "We know this is only slightly useful, but...."

The purported goal in collecting such measurements is to judge team members' production. With the best of intentions, a manager wants to use that data to strengthen and reward top performers, and also to identify weaker team members so they can be trained and improved. (Right. Its usefulness in "Who to fire or lay off" would never be relevant, I'm sure.)

The problem is... the metrics don't really help managers accomplish that. Just as you shouldn't confuse the map with the territory, looking too hard at metrics—any metrics—causes you to put your attention on the ruler, not the object being measured. Looking only at the yardstick makes you lose sight of the mission, which is probably something like "create happy users" or "deploy useful software on time and on budget."

I do understand the goal. Nobody wants to work with someone who is bad at what they do. Managers want to be fair and... well, not dispassionate, exactly, but at least even-handed. But judging a team member's contributions isn't easy. It's even harder if you're not looking at the developer's code day-to-day, or if your lack of technical expertise keeps you from understanding what you're looking at. (That's okay; you're a manager. Developers don't always expect you to write code anymore.)

Yet, I think you could do a quiet survey in any programming shop, asking everyone who the weakest contributor is—and probably get the same answer from most team members. (My gut tells me that you'd get less consensus from "Who's the best programmer?" but that's another discussion.) This all came to mind recently when, in the comments to James Turner's When Agile Projects Go Bad, a few Agile un-fans recommended that companies just "fire the bad programmers." Okay, maybe—but how do you know who they are?

That was the question I posed on LinkedIn and almost immediately I got a few dozen responses. You can read through the entire discussion if you like (I think it's fascinating), but in the rest of this blog post I summarize the wisdom I gained from some very smart software developers, and then follow with a few thoughts of my own. You'll notice one important thing: metrics aren't part of the criteria.

Developers whom others label as bad:

  • Don't care about the quality of their work. This shows in both personal attitude and in code quality (such as a lack of software testing). "The worst programmers tend to not buy into the project emotionally, intellectually and professionally," wrote one computer consultant. "They tend to show up, do the bare minimum to get by, and then leave." Their lack of engagement usually hurts the project, he says, in big ways (such as misses in requirements) and subtle ones, too. Or, as another described concisely, "The one [who] makes most money out of least work."
  • Attitude matters a lot to team members, much more than does technical skill. (Ignorance is curable, after all.) "There is a difference


    You do not have flash or javascript support.
    Average (2 votes)
    5
     
     
    Tue, Dec 2, 2008 15:34 EST
    Posted by: Eugene Nizker
    Rating: 90

    Hi Esther,

    I'd like to add a few (mostly qualitative) metrics to your and "LinkedIn's" set of criteria. These are what I use:

    • She never asks inconvenient questions and always agrees with concepts that are descended on her from above.

    • Any new thing is a pain for her. For example, she very reluctantly switches from one part of the system to another

    • She prefers working by herself. Other folks prefer not to take her as a programming pair

    • The amount of refactoring her code needs to go through is huge

    • When you consider assigning a tough task, her name isn’t the first that comes to your head. It’s not the second either.

    • Your key developers are very careful selecting the words while qualifying her work

    • Her salary is below average in your team (I firmly believe that if you are letting go your highest paid guys, this just means you are poor manager and must be let go first)

    Please note that I do not talk about personality misfit. This goes without saying. I also don't talk about the amount of work since this has already been covered.

    I would add that I saw two types of bad programmers. One type is shy and quiet: they know what they are and try to get under the radar. Another type has absolutely inadequate self-assessment – those are easier to weed out.

    Truly,
    Eugene Nizker
    Evident Point Software

     
    Wed, Dec 3, 2008 9:06 EST
    Anonymous user
    Posted by: Anonymous
    Rating: 90

    I enjoyed Ms. Schindler's article very much but somewhat disagree (or at least need to qualify) her final example about the programmer who writes very "tight" and "optimized" code which is "difficult to read and understand".

    In truth, easy-to-read and understand code almost always trumps tight and optimized code, especially in the context of who is the "best" programmer on the team.

    Many programmers have an internal need to be clever and write the "best" code, when in truth, "good enough" but highly maintainable and understandable is usually better for the overall project.

    Stuart

     
    Sun, Jan 11, 2009 17:10 EST
    Anonymous user
    Posted by: Anonymous
    Rating:

    Boy, I can't agree w/ Stuart more! I have been a developer (and team lead and manager) for about 25 years, and there is nothing that makes me cringe inside more than seeing a block of code where the programmer was being 'clever'. It usually means that they exploited a unique characteristic of the target processor (i.e. the block in not portable), or a unique characteristic of the compiler de jour (again, NOT portable), or they are so full of themselves why not use 3 levels of indirection when one would do?

    I just reviewed a block of code where the developer used an specialized assembly instruction which replaced a few others. The reason for doing this was to save memory, so on the surface the choice was justified. However, by doing so the developer failed to realize that the replacement code didn't actually work. For their particular use case it happened to work because it was a test that was being optimized to if(1) and the code that would have failed was skipped. The danger in this is that this developer could have taken this and put it into their 'bag of tricks', and used it in the 99% other cases where it would introduce a bug.
    Clearly understandable and maintainable code wins hands-down in my book.

     
    Wed, Dec 3, 2008 9:24 EST
    Anonymous user
    Posted by: devMomentum
    Rating: 90

    I think a development process may help a lot at identifying fast bad practices by team members (developers or managers). If these problems are not addressed, the badness virus will spread, even to the best programmers. They will start to care less and less and try to leave.

    Agile processes produce work in short iterations, so they will highlight weak spots in the projects very fast, whatever their level is (dev, management, design, ...). In Scrum for example, teams meet daily, so trashing (be stuck on a problem for days) can be avoided. And Iterations post mortem is the place to wrap up what has worked great and what has not. Lessons are learned from each iteration.

     
    Wed, Dec 3, 2008 10:03 EST
    Anonymous user
    Posted by: Shantanu
    Rating:

    What is interesting is absolute stereotypes are hard (if ever) to find. Between absolute black and white, there are many shades of gray and developers generally have combination of good and bad traits. This is what confuses non-coding managers big time identifying the bad apples or the weakest link.

    Post new comment

    * Subject:
    * Username:
    * E-mail:
    The content of this field is kept private and will not be shown publicly.
    Homepage:
    * Body:
    • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <blockquote> <strike> <p> <br>
    • Lines and paragraphs break automatically.
    More information about formatting options

    * Denotes required field.

    About this Blog

    How would you solve this management problem?

    Start a Conversation
    Click to post

    Got something to say? We want to hear it! Click the Post button to get started. GO»

    EXPERT ADVICE
    See our roster of experts.

    Advice & Opinion from more than 113 of IT's most insightful thinkers.

      PARTNERS       WEBCASTS    
     

    Windows 7 Webcast Series

    There's a lot of buzz about Windows 7 out there. Each month in our webcast series, listen to analysts and customers discuss how Windows 7 and the Windows Optimized Desktop is impacting large companies around the world. Learn how they evaluated Windows 7, including the cost of deployment, deployment strategies, and tangible benefits.

    Sponsored by Microsoft  Listen to on-demand Recordings »

     

    Service Level Management Best Practices Life Cycle Overview - Improve Service Levels

    Best practices for Service Level Management (SLM) is a process for consistently meeting customer requirements and delivering on IT's promises. See the steps required to ensure high-quality SLM.

    Sponsored by Compuware  Read this White Paper »

     

    Keeping Your Members Safe from Online Scams and Predators

    In order to keep fraudsters out, romance sites must deploy effective solutions that look at information independent of what is supplied by users. A device fingerprinting solution such as iovation ReputationManager™ provides unique insight into the computers being used to create multiple accounts and exposes hidden device-account relationships that identity-based fraud solutions often miss.

    Sponsored by iovation  Read this White Paper »

    Resource Alerts

    Get instant email notifications by topic when white papers, webcasts, and case studies are added to our library.

    Resource Alerts

    Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

    Defend Against Blended Threats: What You Need to Know

    Blended Web and email threats are becoming increasingly complex and represent a huge...  View Now »

     

    Prescriptive Actions to Reduce Risk

    In this Webcast, learn best practices for effective systems management in a heterogeneous environment and keep client systems cost under control.   View Now »

     

    Webcast- Vantage 11: Redefining Application Performance Management

    Compuware's latest release, Vantage 11, is a major advance in end-to-end application performance management--bringing together proactive issue identification, quantification of business impact and problem resolution into a single solution. Tune in to learn how Vantage 11's top-down approach helps you make better decisions and dramatically lower operations costs.  View Now »

    Resource Alerts

    Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

     
    NEWSLETTER

    Sign-up for the Blogs & Discussion Newsletter

     
    FEATURED SPONSORS
     
     
     
    SPONSORED LINKS
     

    Return on Information: Google Enterprise Search pays you back. Get the facts.

    VMware. The source for Business Infrastructure Virtualization.

    ShoreTel tells businesses to untangle from competitors' complexity and turn to its brilliantly simple UC solution

    See how AT&T can help protect your network.

    Streamline IT Costs. Boost Performance with WAN Optimization.

    Build your 1st app FREE with Force.com

    TDWI checklist helps define data readiness for analytics. Download report.

    A Clear View Toward Virtualization

    Virtualization Technology as a Business Solution

    The rules of infrastructure management just changed.

    A Clear View Toward Virtualization

    Interactive Q&A helps you discover key ways to maximize IT assets.

    Ready to virtualize tier one applications? Check your virtualization maturity.

    Think you can't afford a Cisco Switch? Cisco Catalyst Switches are now more affordable.

    Five minute business analytics assessment. Immediate results.

    The Case for Investing in Business Analytics Technology. Read white paper.

    Upgrading to VMware vSphere with vWire

    Top 10 Lessons Learned for Corporate 3G Mobile Broadband Deployments

    CRM Built for IT: The Executive Guide to Selecting CRM that Meets IT Needs

    Return on Information: Google Enterprise Search pays you back

    ROI of Application Delivery Controllers

    Making Consumer Two-Factor Authentication Simple and Cost-Effective

    Mining the Cloud to Ease the Enterprise Compliance Burden

    Solve Five Key IT Security Challenges with Cloud-Based Authentication

    White Paper: Right-Sizing Your Power Infrastructure

    AT&T Synaptic Storage as a Service. Expand on demand

    Trend Micro ranked #1 against real-world malware. Read more.

    Webinar: Jump-start your in-house e-discovery with Ringtail QuickCull from FTI Technology

    Top Five CIO Challenges

    Read the RSA report: Security for Business Innovation

    64-page prescriptive guide to security, compliance, and IT operations.

    Increase UPS efficiency without sacrificing protection.

    eZine: A Roadmap to Reducing IT Complexity

    Reduce risk, gain agility. See how Progress can help your business.

    Virtualization Technology as a Business Solution

    eZine: A Roadmap to Reducing IT Complexity

    World-class trading technology solutions from NYSE Technologies.

    If You're Paying for Telecom, You're Paying Too Much. Contact Asentinel Today.

    Trade-In your old printer and save up to $1,000 plus free recycling!

    infoBOOM! - The Mid-Sized Company CIO's Exclusive Community

    Live Webinar: Applying Business Analytics. Click here to learn more

    Removing Barriers To Better Server Virtualization Efficiency

    4G Revisited. The Continued Evolution of Wireless Mobility.

    What's Next for Enterprise Resource Planning?

    Maximizing website Return on Information with high-quality search

    Gartner Magic Quadrant, Application Delivery Controllers 2009

    Authentication as a Service by Forrester Research

    Cloud-Based Authentication for Next-Generation Extranets

    Cut Costs & Green Your IT Operations with PC Power Management

    White Paper: 4 Customer Service Myths