Resume Driven Development (RDD)

January 19, 2007

It always amazes me when I find new or even seasoned managers that haven’t come across a situation where programmers wanted to use tools, techniques, or technology to improve their resume instead of solving the customer’s problems. This concept, which I call RDD (resume driven development), is very real and it’s actually a fairly widespread problem.

In fact, RDD is so prevalent these days that people will actually choose Java over Perl because “Perl will not help my career”. Or, they’ll choose WebLogic or WebSphere instead of Tomcat or Jetty because “who’s going to hire me because I know Jetty?” Never mind that Ruby, Perl or Python may be much better for some quick and dirty solutions where Java may take too long. Never mind that WebSphere will cost much more and may be too heavy a framework for the customer’s need. I’ve heard many developers at my clients’ sites say that they “just have to use Ruby on Rails on this project” because rails work may be in demand. Never mind that Rails may create maintenance headaches or require senior engineering talent that may not be available.

Now, don’t get me wrong: choosing any particular IDE, framework, or tool like Rails is not a bad idea (I actually love Rails). But, tools should not be chosen to help a career; tools should be chosen because the customer will get a high-quality solution. Just don’t choose a tool or product (and I’ve seen it many, many, times) because a developer wants to “learn the tool” at your customer’s expense! Similarly, choose languages and libraries because of their utility to your project, not the developer’s preferences to learn new things. More often than not, a new tool introduced into an existing project will delay things, not speed up delivery. And quality will likely suffer.

It’s similar to a problem I’ve seen in non-technical sectors as well — namely, the politicization of decisions. As we all know, politics (office-style) and Politics (democracy-style) often leads us to make suboptimal decisions. Managers choose particular people on their projects to help advance their careers; workers hide problems and make themselves look better to advance their careers; these are things we come across all the time. RDD is no different — developers usually can’t play politics to advance their careers so they end up with resume driven development tactics to pad their resumes so that their next job is easier to get.

Note to all managers and leaders of software projects: when developers ask you to choose a particular tool or technology, always have them explain to you why this may not just be a RDD request versus a request that may actually be good for the client. If the developer talks more about the technology as opposed to the solution or the customer’s requirements then the developer is not focused on the right topic. In fact, ask the developer outright: “will this tool, technology, or technique help your career more than it will help the client?” See how the developer responds.

  • Dmitriy Kruglyak

    You hit the bullseye, Shahid!

    I love the acronym.

  • http://shahid.shah.org Shahid N. Shah

    Thanks!

  • http://benfulton.net/blog Ben Fulton

    Don’t forget, though, that you also need to use a tool that you will be able to find someone else to work on if you have to. You may decide that Algol is the perfect language to write your application in, but if your Algol developer is hit by a bus, you may have to rewrite in Ruby whether you want to or not.

  • http://shahid.shah.org Shahid N. Shah

    Great point, Ben.

  • Igor

    The behavior you’re describing is that of either a junior developer or someone who is permantently stuck in the junior mindset. With experience, there comes a point of realizing that in the realm of development of business applications the listing of tools one can put on the resume is not as important as what skills and knowledge they can use in solving real business problems. Tools don’t solve problems, people do.

  • http://shahid.shah.org Shahid N. Shah

    Igor, I wish that RDD was really relegated only to juniors but your point of “junior mindset” is right on the money. Many so-called “senior engineers” have the “junior mindset” where customers are less important than tech and where tools are more important problem solvers than people.

  • Igor

    And that makes competing quite a bit easier ;-)

  • Pingback: Experiences (Reloaded)()

  • http://blogs.armondavanes.com/experiences Armond Avanes

    Great points! I couldn’t resist not to point to this post in my blog :-)

  • http://www.nainil.com/ Nainil Chheda

    Hi,

    I like your post on RDD. However, it usually isn’t just the normal developer who decides on what the development IDE / framework etc is. It is a team of individuals that focus on a project and then cumulatively come together on consent about their project development environment. Your scenario does focus on good points but it seems that it mostly considers firms without the concept of development team.

    Just my $0.02

    Nainil Chheda.

  • http://shahid.shah.org Shahid N. Shah

    Good point. RDD is certainly more likely to happen on small teams without significant architecture guidance.

  • A. Carroll

    You’re right, but you’ve put your finger on the symptom, not the cause. Follow the money, and the ways that incentives are designed. HR departments (for employees) and contracting departments (for consultants) usually require specific experience on specific technologies to even get past the automated keyword screener. I’m sure that most of us have had the experience when HR asked about a specific technology, and we asked whether that technology was installed or even contemplated, and the answer was “no”, and are not able to answer the question, “Then why is that a requirement?”. Also, CEO’s muddy the waters by requiring that their companies get on the “technology bandwagon” when they find out that their competitors have installed Technology X, even if their requirements and capabilities are totally different.
    Client requirements. current and future, always must be analyzed, understood, and designed on a logical level first, before deciding how they should be physically implemented and supported. Determining the technology platform before understanding the strategic business and operational requirements is a disservice to our clients, and we should be confident and honest enough to tell them so.

  • http://shahid.shah.org Shahid N. Shah

    Exquisite argument and a great post. Your point about the politics outside of development (especially recruiting) is right on the money. I might write up another post and include your comments as-is (quote). Thanks again.

  • Dmitriy Kruglyak

    I think the most important thing is for development managers and senior execs to recognize the issue and make the decisions accordingly.

    Recognition of “RDD bias” should be only one of the factors in the choice of technology, but of course not the only one.

  • http://www.besthealthcarecareers.com/ SeOdom

    Good point. RDD is certainly more likely to happen on small teams without significant architecture guidance.
    Healthcare careers

  • http://www.digerateur.com Alexander Ryan

    You are absolutely 100% correct and I love the catchy acronym which sums up the problem very nicely.

    IMHO this is a part of the so-called “Business-IT” divide.

    Some IT people pursue their own best interests at the expense of their customers. This reflects badly on all software development professionals.

    Never putting our best interests ahead of our customers should be a part of a software developers code of ethics.

    I wish their were an organization out there that established such a code of ethics so that those of use who abhor this practice can differentiate ourselves from the RDD crowd.

  • http://www.javadonkey.com/blog/put-this-on-your-resume/ JavaDonkey

    Maybe RDD will become the latest buzz. I think I will put that on my resume.

  • raveman

    If you love client so much, why don’t you marry him? in development someone has to lose, why developer has to waist time to maintaining/using old/bad technologies ? old/bad because they are dead, if they werent dead they would be good for RDD.

    Its funny that your against RDD since your Java/.Net guy. Maybe you should also learn php :>

  • devdanke

    RDD, great acronym!

    Here’s another view on this topic.

    RDD is forced on developers by the market place. It is ommon for a developer to not even be considered for a position just because they lack experience with a particular app server, such as WebLogic.

    This is odd because a major idea behind JEE is that if you develop against a standardized API, like JEE, then your skills and the app you write will run with minimal or no changes on any JEE compliant app server.

    However, when businesses seek developers, the development manager, the internal HR person, and the external technical recruiter forget this reality about JEE. Instead they usually only consider applicants with experience, not only with a particular app server, but sometimes only when the applicant has experience with a particular version of that app server.

    This is the common case in the software/IT industry when hiring developers. Developers don’t usually make these rules, but must live by them or not get hired.

    Developers who do not steer their careers towards using mainstream tools and technologies, may find themselves unemployable, especially when the economy is slow and many devs compete for a few jobs.

  • Andrey

    You are lucky guys. I have to work with 10-year’s technologies (ASP, Access) and I never that put on my resume. I work at home in my evenings and use the last technologies and that I will put at my resume.
    Developer may quit because he see that his success will better in another place. I don’t understand what’s wrong with him. It’s a manager fault. If I can I will quit at soon as possible.

  • http://www.tahirakhtar.name Tahir Akhtar

    Nice post.

    IMO, that’s how many service industries are run. All these industries are characterized by a large information asymmetry [http://en.wikipedia.org/wiki/Asymmetric_information]

    We can talk about ethical considerations but i think more important aspect is market health.

    In some cases, like domestic software development market in developing nations, such behavior on the part of software developers and development firms seriously limit the growth of market.

    All this theoretical stuff aside, I believe nature of Software Development business, job market pressures on software developers to acquire latest skills and rapid pace of change in software technology creates a uniquely complex situation.

    You can view this issue from software buyer, seller, industry or developers point of view.

    You definitely have triggered my train of thought and i would like to say a lot more but unfortunately I have to go back to learning new technologies. No one is going to hire me for such rants ;)

  • Bobbie The Programmer

    How about companies that use the exact same development tools year after year? What does that mean for the programmers who work there? They will watch their skills grow more obsolete while the world marches past them.

    And let me tell you, based on my own sad experience, “home projects” get you almost nowhere looking for work.

  • Shafi

    Nice articale. What about if developer thinks that the technology he wants to use (like .net) will be good for client in comming future since the technology he is using in past soon to die (like vb6) than if he suggests new technology to adopt; will he be right or wrong?Nice article. I have one question to ask:
    What about if developer thinks that the technology he wants to use (like .net) will be good for client in coming future since the technology he is using in current is soon to die (like vb6) than if he suggests new technology to adopt; will he be right or wrong? Because he might not have any other suggestion that how it will help client for now but he knows that the software will run for a very long period.

  • http://shahid.shah.org Shahid N. Shah

    Good points, Bobbie and Shafi. Technology and tools modernization is requirement in all forward-looking companies. The main issue is whether the new tool selection can be justified based on business requirements and return on investment or only because a developer wants to do the upgrade.

  • dharma

    RDD is developers’ response to KDH (keyword driven hiring). When developers are hired based on the list of tools and latest technology hypes on resume, instead of their intelligence and understanding of design/development, what you get is RDD.

  • http://shahid.shah.org Shahid N. Shah

    Excellent point, Dharma and I love the KDH acronym.

  • BuggyFunBunny

    The problem, has been for years, is that the ‘decision makers’ almost always don’t have direct experience with the competing technologies.

    How else to explain the au courant ecstacy with all things XML? How many understand that it is superior for neither data transmission (almost anything else is better) nor data store (IMS, anyone?). Other examples: EJB1/EJB2/EJB3, CORBA, SOA, Applets.

    Point Haired Bosses are the root of it. Or, to put it another way, the MBA mentality which posits that A Real Manager is a skill set independent of the work being done. How many people know that the Web is structurally just a block mode disconnected interface: aka 3270 talking to OS/VS1? How many people know that AJAX is just a way to get back to what we had in 1988: Unix databases talking to character mode VT-220s?

    There is more RDD in the Executive Suite than there is in CubeLand; although there are enough knuckleheads there, op cit XML.

    By the way, I did once work for Optimed. What we did with character mode Progress still can’t be done today with any technology. Well, if you can live without the pixel dust.

  • Andrey

    I think the employer should compensate for working with boring old tools.

  • Andrey

    Your article doesn’t have point at all, because I can answer on that questions and I see most of programmers can, see posts, but it doesn’t matter for old boss, he just doesn’t want change anything. I only have a hope on my own, what else?

  • http://softwaresurvival.blogspot.com/ David T

    Great post Shahid!
    As a development manager, one of your key roles is to help the team focus not only on your customers’ success, but also on your customers’ customers success.
    But there is also a pendant to RDD at the customer level: when customers buy into fads and are convinced they need something they really don’t – see my post on Britney Spears and Software Product Development
    [http://softwaresurvival.blogspot.com/2007/01/britney-spears-and-software-product.html]
    There are just many ways to justify bad technology decisions.
    Cheers,
    -David

  • Aneel

    Hi,
    Such a healthy post. I believe it must help me as I am in very initial stage of my carrier.

    Thanks for showing good path.

  • http://www.mloknitting.com/ MLO

    Hrm… I have been in the IT field for nigh onwards of 10 years and have never seen this coming from experienced and competent developers. More often, it is Marketing or Senior Management who have read the “buzzword of the day” coming and saying “I must have this!”

    I have worked in academia, manufacturing, banking, and publishing – and it has been the same in all of those fields. Technology decisions are never driven by what is best – rather, they are decided by someone in the chain of command reading an article in Info World, Computer World, or CIO (if tech chain), or even The Wall Street Journal. Often, these so-called “new technologies” are already in place.

    But, the developers who are complaining have a valid point. I actually had a recruiter who had had a customer looking for someone who knew XML, HTML, SGML, and databases. Um… if the person knows SGML and databases they are qualified to do what the person was asking. Of course, the rate quoted was ridiculously low since there is a dearth of people who know both. However, the search was unnecessarily narrowed by insisting on having several keywords show up in the resume that are just subsets of knowledge within the main field – which anyone who truly knows the field already knows.

    Honestly, since the dawn of outsourcing the situation has gotten much, much worse in every field – not just IT. Oh, and the dawn of the MBA. I have managed both MBAs and non-MBAs and with very few exceptions, I have always wanted to fire MBAs because they showed an incredible arrogance and unwillingness to learn. Give me a hardworker with experience and the proper technical knowledge any day.

    RDD is something the MBA mentality and outsourcing created. Guess what, you have to eat that which you have sown.

    Pax,

    MLO

  • Praveen Jhurani

    Though this is an interesting article and I like the acronym, I would like to resonate the statement that this is more market driven and one of the factors of fast pace/growth in new tools/technologies. In my experience, most of the times good developers are able to embrace new tools and technologies and deliver if business requirements are clear and well defined. Decision maker should have the insight/experience and depth and breadth to do pros and cons analysis, understand the risk/reward and be able to ask insightful questions. Beyond that its like any other business decision.

    My 2 cents.

  • Sree

    Hi, Impressive carrier. Healthcare plus IT excellent how about some RealEstate and Legal experience that will full fill the top notch of industry ;-))..good luck and wish me the best, had done lots of IT stuff now just started the HealthCare exposure.

    Sree

  • Chalam

    Shahid,

    I got your point, but you can’t summarily put the blame on the programmers. Managers are equally responsible in amassing ridiculous software junk in the organizations that are no way relate to each other and then one fine day will start looking for a programmer to fill a position

    “who has hands on development with Java, ETL, Cobol, Python, C# and ….. my ass…. able to work independently….. with minimal supervision….”

    This kind of job market makes the programmers becoming “Jack of many trades” and “Master of none”.

    If i don’t get a job and sit on bench for months due to this “Jack of many trades”, whose fault is it?

  • http://nikelin.ru Cyril K.

    It’s really problem, it’s big problem for companies where it take place. But it’s rather complex problem than only management or development organization.

    When teams work by model you call RDD, it’s mean that they only not motivated as well, they not feel their relation to the product and result, and probably not stay in company for a long time.

  • http://www.rapid-servers.com Josh

    an Old post, but it still help to improve my knowledgebase.
    Healthcare plus IT is a great job

  • Pingback: Practical X Scholar Programmer « Rodrigo Gama()

  • http://www.wickerbenchstorage.net Wicker Bench Storage

    I have not much time, but I've got many useful things here, love it!

  • http://pulse.yahoo.com/_JJ35QKECIBGOBKJQ2ZZ6RZ4O3M David

    Ever come across “Magazine Management”? Where a Senior Face decides that a new project should be implemented in Z where Z is the subject of an article in his favourite magazine.
    Never mind that Z is new and unproven and that there are no tools or resources, and nobody has any experience working with it. It's the new thing and that's the way we are going.

  • http://www.shahidshah.com Shahid N. Shah

    Great point, David :-) Anytime developers make decisions based on what they like or know instead of what will service the customers and the business development becomes a tough row to hoe.

  • Andrey

    Well, good approach “shut up and code, biatch. Forget about the career!” Nobody worries about my career except me, so I monitor job market and choose to improve resume instead of to be useful for customer.

Previous post:

Next post: