Columns
Greenhorns and Warhorses
- By Joseph Ruffolo
- May 29, 2001
Joseph Ruffolo is a solutions architect at Born Information Services.
Today's IS organizations are operating in perhaps the most challenging environment in their history. A tight labor market, combined with the proliferation of new technologies and a lack of senior developers trained
and experienced in those technologies, has strained many an organization's
ability to manage the resources and skills that help support its business
strategy.
How tight is the labor market? So tight that companies are doing everything
from setting up recruitment booths at rock concerts to offering signing
bonuses just to attract entry-level developers. According to a study by
Meta Group Inc., a Stamford, Conn.-based research firm, there were 200,000
unfilled IS jobs in 1997. And the problem isn't likely to end anytime
soon; the same study projects that the demand for people with IS skills
will grow faster than the supply until at least 2002.
To compound the situation, the cutting-edge development skills that
are most in demand - Java, HTML, XML, OO tools - are those that are in
lowest supply among senior developers. Programmers fluent in these critical
skills - or eager to learn them - are frequently less experienced and
usually lack an understanding of the business issues and user needs driving
new development projects. Very often, junior staffers are also deficient
in the project management skills required to keep development efforts
on track.
Fortunately, there are ways to bridge this "experience/skills gap."
The solutions require IS management to pursue new ways of working to better
leverage the most valued attributes of contributors - senior and junior.
Learning any new technology requires, first and foremost, a willingness
on the part of the trainee to embrace change. Business and technology
are moving far too quickly for anyone in IS to become complacent or resistant
to change. Unfortunately, some senior developers view new technologies
and development approaches with the jaundiced eyes of skeptics who have
seen many other "hot" innovations come and go.
What's especially unfortunate is that these senior contributors are
essential to any IS organization's success. Besides developing applications,
they've developed an in-depth understanding of their company's business,
industry, processes and priorities. They know exactly who their users
are and what they need. For these reasons, their knowledge is invaluable
to the organization.
In contrast, less-experienced developers are often more open to learning
new techniques and tools. To them, learning new technologies is not only
intellectually stimulating, but can also lead to greater recognition and
faster career growth. For an IS manager, enthusiasm alone may be enough
reason to focus new technology training efforts on junior staffers.
Another incentive to invest more effort in training less-experienced
developers is the problem of "unlearning" among senior employees. Often,
new technologies require not only the learning of new languages and syntax,
but also the "unlearning" of old procedures and methods. For example,
object-oriented programming is more modular than the traditional linear
programming of COBOL or Pick/ BASIC. An object programmer needs to approach
a project with the intention of identifying discrete tasks or operations
that can be saved and reused elsewhere in the same project, later in application
updates or in subsequent applications. Before linear-oriented developers
can learn such object-oriented programming methods, they must "unlearn"
the methods and processes that served them so well in the past.
The following tips can help IS managers bridge the "experience/skills
gap," while building and retaining a better trained, more collaborative
and more productive development team.
Make training an ongoing, integral part of the organizational culture.
One way to minimize complacency and resistance to change is to ensure
that training and skills development are integral to the culture of the
IS organization. Organizations that include training as part of an IS
employee's performance review and professional goals will reap lasting
rewards. Employees who are directly exposed to new ideas on an ongoing
basis are less likely to rely solely on the tried and true, and are more
willing to consider other alternatives.
Incidentally, when I say "training," I mean actual courses with "live"
trainers and hands-on instruction. It may seem easier and more convenient
to hand a developer a book on, say, Java and ask them to absorb it. But
most introductory programming language books focus more on the basic "how-to's"
than on the more valuable aspects of the language: for example, taking
advantage of particular features and functionality, applying the language
to real-world problems, using shortcuts and avoiding common problems.
A proper training course gives developers what they need to become more
productive in the language.
Many vendors offer training courses that transcend their products. At
an organization where I worked recently, we used Forté Software products
to develop financial management and distributor service applications,
and to integrate SAP with other corporate systems. To assist in the learning
process, both senior and junior developers took Forté training courses.
Course selection included a broadly focused OO design class that taught
our programming staff the fundamentals and essentials of this indispensable
skill.
Besides fostering an atmosphere of openness and a respect for continuous
learning, ongoing training lets developers know that their employer values
them and is willing to invest in their long-term success.
Reduce the number of development tools.
Left unchecked, the number of tools used in a development organization
can grow into the dozens - and no single developer can be expected to
be proficient at more than two or three at most. As a result, IS organizations
often have several groups that are organized around different languages,
business functions or even hardware systems. This impedes an organization's
ability to manage development resources, and to move team members from
one project to another without major retraining and ramp-ups. By standardizing
on a smaller number of development tools - preferably tools that enable
programmers to describe an application logically without regard to target
language or hardware system - IS organizations gain tremendous flexibility
while simplifying training requirements and encouraging greater skills
sharing.
Exploit the advantages of inexperience.
To most employers and employees, a lack of experience is nothing but
a liability. But inexperience does have its advantages. For example, developers
with less than five years of experience tend to learn more quickly and
more willingly. More often than not, junior developers have the time and
the enthusiasm to take on new challenges. For all of these reasons, it
is best to give less-experienced developers the bulk of the coding work
for projects using new technologies.
Temper novice enthusiasm with a liberal dose of mentoring.
With their knowledge of the business and its processes, as well as their
ability to anticipate problems, senior developers can act as effective
mentors to less-experienced staffers. Additionally, senior staffers can
effectively translate business needs to system design or project management,
help define the scope of a project and avoid the headaches of scope creep.
When senior and junior developers are teamed in pairs or small groups
on projects, they quickly learn to rely on each other's strengths to overcome
their own weaknesses. By acting as mentors, senior developers can share
the benefit of their experience - thereby building junior team members'
knowledge - while getting close-hand exposure to newer technologies. It's
a win/win situation.
Find the right role for each contributor.
Everyone wants to feel valued and that they're contributing. People
who feel they are valued contributors in an organization are easier to
retain. That's why it's important to recognize the attributes, strengths
and preferences of each member of the development team. For example, not
every senior developer wants to - or is equipped to - be a mentor or project
manager. Some people are invariably unwilling to embrace change; they
may prefer to remain solitary programmers specializing in traditional
languages. Very often, organizations can find a role for these holdouts
as maintenance programmers of legacy applications.
Organize for interaction.
In an ideal situation, everyone learns from everyone else. An important
way to foster this interaction and skills exchange is by structuring the
organization around projects, not functional areas. When organizations
standardize on a small number of platform-independent development tools,
they are freer to assemble project teams composed of junior programmers,
senior mentors and project managers. This mix can create a stimulating
environment in which all contributors learn, share and build valuable
relationships.
With the IS skills shortage, however, some organizations may make some
ill- advised resource decisions. Here are examples of what not to do from
both ends of the spectrum: 3Never turn project management responsibilities
over to a developer who is unfamiliar with the technology. I know of one
instance where a senior developer was put in charge of an object-oriented
project - a technology he was just learning. The result? Huge cost overruns
and failure.
Never expect a novice developer to learn your business on the job.
In another case, a junior developer was assigned an important Web project.
He did a great job of learning the technology, but the project didn't
succeed because he had no understanding of the company's business and
processes. Once a mentor was assigned to the project, the work was completed
quickly and with more professional results.
Results on time and within budget
Bridging the "experience/skills gap" is well worth the effort, on any
number of levels. The most important result is one we all strive for:
"Good code ... fast."
The cultural results are no less impressive. When all team members know
that they're expected to keep their knowledge of new technologies updated
and refreshed regularly, they are less likely to become "stuck" on one
tool and resistant to change. Learning - not only in the strict sense
of training - becomes part of the organizational culture and an important
stimulant for new ideas and innovations.
One of the current buzzwords in corporate IS is "knowledge management."
The concept is built around the idea that a company's knowledge is one
of its most critical assets, and it's been used to sell everything from
groupware and messaging to data warehousing. But you don't need a sophisticated
software system to achieve true knowledge management on a smaller scale
within your IS organization. All it takes is an understanding of the relative
strengths of senior and junior team members, and the right environment
to get them sharing their knowledge - and achieving your business objectives.