Application developer talent: Time to play moneyball

Application developer talent: Time to play moneyball

Summary: A few tips to note while assembling application development teams: Computer science degrees are overvalued, get people who can talk to business folks and monitor chemistry.


Michael Rosenbaum, founder and CEO of Catalyst IT Services, thinks software development could be quantified in a way akin to the moneyball tactics in baseball.

Rosenbaum's company rounds up teams of developments for rapid deployment where enterprises need to be aligned with the business and move in a hurry. Catalyst can deliver teams of developers within 24 hours and is often used for high-value projects.

At the Gartner Symposium ITXpo, Catalyst and Nike presented a case study highlighting how team selection can boost the metrics and returns of application development. Catalyst teams worked on the technology for Nike's Fuel Band as well mobile applications, APIs for partners and a unified e-commerce and Web experience.

dev moneyball 1
dev moneyball 2

The typical Catalyst client also uses offshore outsourcers, but has stumbled managing high-value work from afar because there's often a lack of understanding about the business goals.

Catalyst's analytics engine for talent selection and team assembly was started when Rosenbaum was a fellow at Harvard University. Increasingly Catalyst is being seen as a way to move development work onshore. We caught up with Rosenbaum to talk about building better development teams.

And Rosenbaum has tested his talent algorithms. He will hire 150 people over the next nine months and sort through data on 10,000 developers to find those folks.

Here's the recap.

Knowing the business matters. Application development is becoming critical in every company. Development teams need to understand the business and objectives on multiple levels. If developers don't understand the product and consumer experience, they don't deliver strong returns, said Rosenbaum.

Pick developers who don't have computer science degrees. Rosenbaum has fond that the market for IT talent places a premium on higher education degrees, but he's found that "there is no significant correlation between higher education and software development talent." Rosenbaum is happy to play the other side of the talent trade hires developers who have worked in retail and served in the military. "I look for developers from backgrounds you wouldn't expect because the market undervalues them," he said.

Indeed, a developer with retail experience knows the customer experience and shopping process better. That knowledge rubs off on the team deployed by Catalyst. Military personnel bring invaluable life experience and discipline. Ten percent of Catalyst's staff has military experience. "These people inform how people actually use technology," said Rosenbaum.

The metrics. Rosenbaum said there are multiple factors to track with software developers and he's surprised how little moneyball is actually played with talent. Some metrics tracked include defect rates, velocity, time per piece of functionality, keystrokes and hours per task to name a few. Rosenbaum looks at those metrics on individual and team levels. For instance, development teams can be carried by one or two developers. Rosenbaum also looks at mean and median averages on teams to level-set performance and highlight whether one or two rock stars do all the work.

The returns of devs without computer science degrees are measured in turnover. Catalyst has a 5.8 percent turnover rate compared to offshore providers who are often in the teens or higher. That low turnover rate is at least partly attributed to the fact that the talent market undervalues developers from non-computer science backgrounds. "Because they're undervalued they're hungrier and out to prove something," explained Rosenbaum.

Chemistry matters. When assembling dev teams Rosenbaum looks at team composition. Measuring chemistry comes down to the performance of a team. A team that has velocity and can deliver projects on time should stick together. "We break teams apart and put together in different ways," said Rosenbaum. In addition, teams are composed differently based on the client. A team deployed to a large enterprise needs people who can navigate an organization and play be corporate rules. Developers who want to push boundaries might be better suited for a team deployed to a startup. A developer working for a midsized company needs to get by with limited resources.

Topics: Enterprise Software, CXO, Software Development

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • It is a good way to get sloppy code fast.

    And it depends on how you define "defect" as to how the graph actually works.

    The computer science background gives you a good foundation for what is possible to implement, and reliable when implemented... but that takes longer than quick and dirty code, which is not likely to be maintainable.
    • Hmmm,

      "perfect code" a day late and a dollar short is useless.

      Just an observation, I have (very) rarely seen innovation form those so steeped in traditional ways to code, it almost always comes from an "amateur" that isn't happy with what all the computer science folks crank out.

      Fact: The BEST coder I've ever met (and that is hundreds) never sat in a class as a student in his life. Companies like MS require a degree for everything and we know how innovative they are right?
      • Knowledge is not an impediment to innovation

        A solid education gives you the background to know what has been done. Some with (and some without) that education have the imagination and creativity to go beyond what they're taught. But knowing the classical mechanisms is a great basis.

        I don't have a college degree, but I've studied others' code, books and magazines to learn what others know. I'm smart, but not so vain as to think I'm smarter than everyone else; even the greatest minds acknowledge learning from others.

        Oh, and I worked at Microsoft for six years. They knew I didn't have a degree.
    • Yes, but the point is relative value.

      If your team is exclusively made up of IT degrees without alternative experience, then your team is handicapped when challenged to communicate & develop products that touch non-IT users.

      Don't worry. Your job is secure. Sane IT workers ALWAYS hire/recommend new employees who walk & talk exactly like they do. This won't be changed by this example of taking a different path.
      • keyphrase "alternative experience"

        A good team member has both. An academic degree provides breadth of experience, industrial experience provides more of the business sense - but you can ALSO get that in an academic environment. That is why many companies provide a paid internship for students gaining experience.
    • There's always a balance...

      ..just like a carpenter who "measures three times and cuts once", it is often easy for someone with excellent coding skills to forget that they need to manage the balance between cost and time to delivery and code maintainability or quality.

      A good coder will optimize all his code, make sure there are plenty of comments, and use best practices in all his/her projects to ensure everything is solid. The good coder will also be over budget and late on delivery on most of his projects.

      A great coder will recognize that there are constraints involved that have to be met, and will be able to identify the parts of code most likely to need maintenance down the road, and will optimize that part of the software which will impact the most critical parts of the software the most.

      Both coders will deliver about the same level of quality, but the latter one will do so with a much better cost/benefit to the customer.
    • Overvalued Academia

      Just because someone doesn't have an academic background doesn't mean they write bad code.

      The best coders I've encountered in 30 years of software development have never had a formal CS background, but rather maths and engineering or no degree at all. The worst coders have always been the CS guys who can't seem to differentiate between what works in theory and what is better in practice.
  • Coding is only one of many skills required to write software

    Knowing how to write good code is important, however programming code is just a tool (or maybe a raw material) used to build a final product - the software application. A coder is akin to a carpenter - in both cases, skill is measured in the quality of work and speed of delivery.

    The skill of "writing good code", however, only makes you a good carpenter - it doesn't make you a developer, nor an architect. In construction, nobody expects the carpenter, bricklayer, electrician, or any other tradesman to design whatever it is they are building - there is an architect, engineer, project manager, and plenty of other bodies that drive that part of the project. These are the people expected to have the "business skills".

    These same skills are needed in software development, however we often expect the carpenter (coder) to also be the architect and project manager - often with disastrous results. Sure the code will look pretty, just as the corners of the house will be cut and sanded clean, but if there is nobody in charge that understands the business requirement and process well enough to drive the software design, all that pretty, efficient, and manageable code will be as worthless as a house with seven bathrooms and no kitchen.

    The part many coders don't like about all this - coding skills are quite easy to acquire, compared to many other skills needed for software development. On top of this, a lot of systems where software development was necessary (such as custom BI, dashboard, reporting, and even user-interface customization) have evolved to the point where much of that work can be done with tools that require little or no code development.

    Even in my firm, where we do quite a bit of customization and development of larger enterprise systems. On our customization team we have a few people who do nothing but software development. Over the years we've found the best developers are the ones that graduated with business degrees with an IT slant or who have taken one or two computing science courses as electives. As opposed to those who have computing science degrees with no business background.

    Between both groups, the code quality is about the same, however those with the business background are able to work with much less "micro-management" (just a high-level requirements definition) and are able to understand what the finished product needs to look like.
  • Some Have It. Some Don't.

    In my humble opinion, based upon nearly 3 decades in the industry, certain personality types excel at software development because it suites them. Nothing more. They are simply hard-wired for this kind of work. They outperform their peers because of their passion for the work and their willingness to learn and try new ways of doing things. Doing the things most programmers find difficult stimulates them!

    4-6 years of part-time classwork in computer science does not yield a creative problem-solver. If you want to see evidence of this, take a 400 level algorithms class and see how many students are left after the point where they can drop without failing. When I took algorithms there were only 5 people left by the end of the course. This tells me that many people enter the field for the wrong reasons. The 5 that remained were not stressed by the class at all, but were having fun trying to improve the performance of their algorithms... debating the best approaches taking into account the characteristics of different data sets.

    Those are the kinds of people I want on my development teams with or without a degree.

    The article states that a degree is not necessarily indicative of success. It doesn't say that a degree was bad. Over the years, I've hired people from both ends of the education spectrum. I have found that passion for their work to be the best indicator of success.

    If Catalyst IT Services has truly found a way to select undervalued individuals that are predisposed to succeed as software developers, they have the potential to be very disruptive within the IT outsourcing industry. Having read some of the articles and case studies on their website, I think that if they were publicly traded, I would buy shares.