Channels ▼


Are You Certifiably Agile?

Are You Certifiably Agile?

Software Development

Worried about losing your job to an offshore outsourcer? Do you work for an outsourcer and want to become more competitive? Simply want to become the most effective developer you can be? Luckily, it’s New Year’s resolution time here at Software Development, and once again I’d like to provide some words of wisdom about how you can become a better developer.
There are three fundamental strategies for perfecting your skills. In previous columns, I’ve already outlined the first two: becoming a generalizing specialist and growing more flexible. This month, I focus on the third: earning certification in your chosen specialties.

In the IT community, certification takes on many forms, from technology-specific certification to certification in higher-level skills such as modeling and project management. Although it’s by no means comprehensive, “Certification Defined” lists some of the common types of certification that you can obtain. The important points? There’s a wide range of certification programs, and no single program dominates the landscape.

Why Even Bother?

Why get certified? First and foremost, certification looks good on a résumé. Everything else being equal, most employers would sooner hire certified Java programmers, because certification shows they’ve taken the time to learn the fundamentals and are serious about their career. For those of you entering the software development profession, certification helps you to get your foot in the door in the same way that a college or university degree does. In fact, some organizations prefer people with industry certification to those with university degrees, specifically because certification is typically more focused and up-to-date.

Second, by preparing for certification, you’ll actually learn something about the subject. Many people debate the value of some of the issues tested—How important is it to know the exact syntax of an esoteric part of the Java spec?—but the fact remains that to pass the test, you must have at least basic mastery of the subject.

Third, if you’re among the initial group of certified developers in any given subject, you can reap large (albeit short-term) rewards, because you’re at the leading edge of a hot new trend. For example, a couple of years ago, it was quite common for certified Oracle database administrators (DBAs) to command double or sometimes even triple the salaries of noncertified DBAs.

Fourth, certification programs help to “raise the skills bar” in the industry. These days, it’s difficult to gain employment as an Oracle DBA without certification. Yes, this is probably a reflection of the current economic times, but I suspect that we’ve seen a fundamental shift toward requiring certification in the database community at large—this doesn’t seem limited to Oracle. I’m also seeing similar trends within the Java and Microsoft communities, as well.

The Down Side

Nothing is perfect, including certification. Although it indicates a certain degree of proficiency, certification doesn’t guarantee competence in the real world. Certification also promotes specialization, something that I believe isn’t in your best interest. If you invest the time to become certified in a specific subject, you’ll probably decide to focus your career on that specialty. For example, people who get their Project Management Institute (PMI) certification typically decide to focus on being project managers—they seldom roll up their sleeves to write some code or deploy the system. Remember, the wider your range of skills, the more effective and employable you are.

Similarly, certification in technology promotes vendor lock-in. For example, anyone certified in Sybase is unlikely to be willing to switch over to Oracle, and vice versa. This is a particularly dangerous problem for technologies that are losing market share—you may not jump to a new technology because you have so much invested in the technology in which you’re certified.

Agile Certification

Does it make sense to certify people in agile development techniques? One has only to look at the popularity of programming language and database administration (DBA) certification to see there is clearly a demand. Although many agile practitioners may cringe at the thought, demand for agile certification will probably grow as agile approaches become more commonplace. Companies will want to ease the hiring process by requiring that employees are certified in given techniques; developers will want to distinguish themselves from the rest of the pack through agile certification. Now is the time for agile practitioners to start thinking about certification.

Though it may seem oxymoronic, there is growing evidence that agile certification is viable. For example, Scrum certification efforts are gaining traction in the project management community, perhaps because that culture is pro-certification due to PMI efforts. Scrum certification presents an interesting juxtaposition to PMI certification—where the PMI focuses on classroom training, self-study and eventual testing, Scrum certification is based more on initial classroom training using case studies and scenario discussions followed by an apprenticeship period. These two approaches to certification reflect the mindset of the underlying material.

What about certifying people in other agile techniques? Can we certify someone in Extreme Programming (XP) or Agile Modeling (AM), or in individual techniques such as pair programming, refactoring, test-first development or database refactoring? It seems a reasonable possibility, although it would clearly require some serious thought. I welcome any feedback that you may have.

I believe that certification is an important part of the overall picture, and that it’s something that every developer should consider. However, certification possesses significant potential to become more of a hindrance than a help. To keep certification effective, you must remember that an employee’s value is measured by what he does, not by the number of certificates or diplomas he’s posted on the wall. Certification is just a start—not a destination.

Certification Defined
  • Database Administration (DBA) (for example, Oracle , Sybase, MySql …). Provides DBAs with the detailed knowledge they need to administer and tune databases. Unfortunately, these programs don’t teach agile database techniques, critical skills required by all modern DBAs.

  • Institute for Certification of Computing Professionals (ICCP). A good start at true developer certification because it covers a very wide range of skills. Unfortunately, the ICCP appears to remain focused on traditional development methods.

  • Project Management Institute (PMI). Promotes appreciation of project management’s importance and ensures comprehension of traditional management techniques. Unfortunately, also promotes bureaucratic processes as opposed to simpler, cooperative and collaborative techniques. PMI-certified managers often don’t fit with agile development teams, but this may change over time, particularly if the PMI starts to adopt project management practices from Scrum.

  • Programming (for example, Java, C# or Visual Basic …). A good start for programmers, ensuring understanding of language syntax. Unfortunately, this type of certification often focuses on language details rather than the wider picture that includes modeling, testing and so on.

  • Scrum. This appears to be the agile community’s answer to PMI certification. It gives project managers/coaches the skills they need to succeed on agile teams, but its validity may be suspect because the program is based on a coaching and mentoring approach instead of traditional certification tests’ multiple-guess format.

  • Unified Modeling Language (UML). Promotes the importance of modeling. Unfortunately, UML isn’t sufficient for real-world development, so being certified in it is at best a start. UML certification may reinforce the false belief that you need only to learn UML to be an effective modeler.

Scott Ambler is a senior consultant with Ronin International Inc. His latest book is Agile Database Techniques from Wiley Publishing.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.