The text Roles and Responsibilities for Senior Technical Staff was created by Mark Kampe.
In this text he describes how a Senior level engineer should act and what's expected from him/her.
Here is the full text
Roles and Responsibilities for Senior Technical Staff
version 1.6 of 04/20/98
I, according to my copy, have done set it in
imprint, to the intent that noble men may see
and learn the noble acts of chivalry, and the
gentle and virtuous deeds that some knights
used in those days.
William Caxton, Preface to the first
printing of Mallory's "Le Morte D'Arthur"
1. Introduction
What is the difference between an MTS4, a Staff Engineer and
a Senior Staff Engineer. What skills and responsibilities measure
progress along the Senior Technical Staff career ladder? The
Engineering leveling tool provides general guidelines to answering
these questions, and defines the minimum requirements for the jobs.
The setting of minimum requirements is, however, a formula
for failure. If we are to succeed, as individuals or a
company, we need to set our sights higher than the "minimum
requirements". In order to achieve excellence, people need
to take a more expansive view of their responsibilities. We need
to define and promulgate guidelines for what defines exemplary
senior technical performance.
Moreover, the Engineering Leveling tool is designed to
clarify the differences between the levels. It is not
intended as a definition of the jobs or as a tutorial on
how we should go about our jobs. If people are to be
successful at a job, they need to know exactly what is
expected of them.
In fact, senior engineers and managers already "know"
what is expected of senior engineers - and senior
engineers are already being appraised on the basis of
these standards. The problem is that these "standards"
are informal and haven't been committed to writing.
Standards for professional excellence and expectations
for performance should not be informal. Quite to the
contrary, they should be explicit and widely circulated.
The primary purpose of this paper is to clarify the distinction
between junior and senior engineers, and to set forth standards
of performance towards which Senior Technical Staff should aspire.
This paper is aimed at three audiences:
Junior engineers who want to understand what it
takes to become senior engineers.
Senior engineers who want to understand what the
company needs from them and the growth opportunities
that are available to them.
Managers who need to appraise the performance of
senior engineers and guide/facilitate their career
growth.
This paper also has a second, but perhaps more important goal.
By attempting to formalize our conceptions of what constitutes
technical excellence we can reinforce our "Culture of Excellence"
(our shared values and aspirations). When values are more clear,
people are better able to identify with and aspire to them.
1.1 Use and Abuse of this paper
Because this paper seeks an expansive view of what a senior
engineer should be, it is not a description of the average
senior engineer ... or any senior engineer. It is an attempt
to discuss all of the various roles that a senior should fill
... a composite picture of an ideal senior engineer. To some
degree it is a portrait of Sir Lancelot of the Lake or St
Jeanne d'Arc.
Realistically, no mere mortal is going to be able to
deliver an exemplary performance in every role. Different
people have different strengths and will excel in different
areas. If this were a list of job requirements, somebody who
only did half of the things on the list would be doing
a pretty poor job. This is not a list of job requirements,
but an overview of excellence. Someone who does a good
job at half of the things we discuss is delivering a
stellar performance.
This is intended to help us identify areas where further
growth is possible. It would be a perversion of this
purpose if this tool was used to "ding" people who are
already delivering superlative performance. This is
the danger of defining standards of excellence.
If we "aim low" however, we are assured of "hitting low".
By putting in writing the values in which we believe and
the levels of performance to which we aspire, we hope to
help build and maintain a "shared culture of excellence".
This profile did not originate in Management or in Human
Resources, but with senior engineers. It is appropriate
that senior engineers should chart out their own standards
for professional excellence.
2. The Short Answer - what is the difference
Senior Engineers supposedly have more experience than Junior
Engineers, and so it is often expected that they will have
broader and deeper technical expertise. The difference in
"expertise", however, is not the fundamental difference between
Junior and Senior Engineers. The fundamental difference is
in the scope of their responsibilities and the roles they play
in their projects and organizations.
A Junior Engineer applies hir professional experience to the
accomplishment of specifically assigned tasks.
A Senior Engineer applies hir professional experience to ensuring
that the project, program, and company will be successful.
A Junior Engineer grows by gaining technical skill.
A Senior Engineer grows by assuming responsibility.
A Junior Engineer demonstrates proficiency by the reliable
delivery of high quality work.
A Senior Engineer demonstrates proficiency by anticipating,
recognizing, and dealing with problems.
A Junior Engineer is responsible for the quality and timely
delivery of hir own work.
A Senior Engineer is responsible for the quality and timely
delivery of the project.
If it had to be summed up in one line, Senior Engineers are
not supposed to say "not my job".
3. Long Answer - Responsibilities of Senior Technical Staff
The primary differences between junior and senior engineers
are in their responsibilities. Responsibilities are obligations
that we owe to others. A reasonable way to explore these
obligations is by trying to enumerate (a) to whom we owe the
obligations and (b) specifically what obligations we owe them.
Senior engineers have obligations to:
other engineers
their managers and projects
their organization
themselves
3.1 Responsibilities to other engineers
The essence of these responsibilities is the Norman dictum
of "Noblesse Oblige" (Nobility obligates). When people are
promoted to positions of greater responsibility, they
automatically assume numerous obligations to help and
protect their juniors.
3.1.1 help them succeed
Senior engineers should ensure that the problems that are
given to more junior engineers have been broken down to a
manageable size, and are appropriate to the abilities of
the people they are assigned to. In this way, both the
individuals and the project can be "set up" for success.
Senior engineers should ensure that the people who are working
on a project understand exactly what the project is and what
their work entails. A manager or junior engineer may not be
in a position to recognize whether or not this communication
has been successful. Senior engineers are.
When a senior engineer recognizes problems that are likely
to go unnoticed by more junior engineers, they should point
those problems out, and help ensure that adequate provisions
are made for their solution.
When problems come up in the course of a project, senior
engineers should work with more junior engineers to ensure
that the problems are properly understood, that the proposed
solutions are adequate.
3.1.2 help them grow
Senior engineers should try to ensure that more junior engineers
get problems that will challenge them. This means giving them
an opportunity to fail. In many cases it means giving a junior
person a task that the senior engineer was looking forward to
doing.
Senior engineers should help to ensure that more junior
engineers get opportunities for visibility, and that they
receive credit for their contributions.
Senior engineers should provide guidance to more junior
engineers on how to improve their skills and work. This
can be done in formal 1x1 mentoring, or in informal hallway
conversation.
When a junior engineer requires help, a senior engineer
should not "solve the problem" for them. Rather, the
senior engineer should help them to work through the
analysis of the problem and potential solutions. If
the junior engineer is weak in some skill or lacks experience
in an important area, the senior engineer should look for
ways to develop the needed skill or experience.
3.1.3 help them survive
A senior engineer should be looking out for situations where
more junior people have gotten out of their breadth, and
step in to help them if they need support or facilitation
in working with people in another group.
A senior engineer should counsel more junior engineers on
political matters to help them understand the forces at
play in a situation and help them formulate a plan that
deals with or accommodates important non-technical factors.
If a junior person becomes the target of a more senior
person's ire, a senior engineer should consider interceding
on the junior person's behalf to ensure that justice is
done. Sometimes, however, it is better to sit back and
allow people to learn from their mistakes.
3.1.4 be a decent human being
Whether or not they want to be, senior engineers are leaders,
teachers and role models. Because of these responsibilities,
many of them will also be asked to be counselors. Senior
engineers should be accessible and reasonable to more junior
people who seek their help or advice.
3.2 Responsibilities to your Manager and Project
The senior engineers on a project bear the lion's share of
the responsibility for the successful completion of the
engineering work. Managers are responsible for working
all sorts of priority, schedule, resource and coordination
issues. When it comes down to ones and zeroes, however,
it is the senior engineers who are expected to understand
(and take responsibility for) what is really going on.
3.2.1 range patrol
What ever else they are doing, a senior engineer is on
constant "patrol ... riding the range", looking for things
that might indicate a problem. More junior engineers may
become blocked by relatively simple problems, or may pass
over disasters without recognizing them.
Attention from a senior engineer can ensure that simple
problems are solved with minimal wasted time, and that
serious problems receive the prompt and appropriate attention
they require. No one else can do this job.
Junior engineers focus primarily on their assigned tasks,
and deal with tangential problems if they are told to.
Senior enginers have to take responsibility for anything
that could affect the success of the project, and must
be proactive in driving solutions to those problems.
In order to do this job, the senior engineer has to be
able to "get hir head out of the instruments and look
around". People who spend all their time fixating on
details often miss big pictures and early trouble signs.
3.2.2 problems and options
When problems are discovered, the analysis of those problems
and the evaluation of potential solutions is the responsibility
of senior engineering. Ideally, more junior engineers will do
the majority of the analysis ... but it is the responsibility
of senior engineers to ensure that the information passed up
to management (the information based on which decisions will
be made) represents our best understanding of the problems.
When management is evaluating the options, it is the
responsibility of senior engineers to ensure that they
properly understand the options and costs, and that their
decisions are made on the basis of the best and most
complete possible technical input.
3.2.3 all things great and small
There is a natural tendency, as we gain technical experience,
to focus on more technically challenging tasks. An innovative
design, however, is not a guarantor of a successful product.
There are a myriad of processes between a designer and a
happy customers (e.g. documentation, testing, release
engineering, training, support). In order for us to be
successful, all of these processes must be working well.
Senior engineers should have an appreciation for the
importance of all of these activities, and should be
concerned with ensuring that all of these activities
work well. A senior engineer should recognize that
hir most important contribution to the project might
be in writing documentation or a participating on a
bug prioritizing team.
3.2.4 communication and evangelism
Often management, marketing, executives or other groups
do not have a full understanding of the problems that
engineers are facing and the approaches can be used to
address these problems. Sometimes this incomplete
understanding results in poor decisions. It is the
responsibility of senior engineers to ensure that these
other groups have an adequate understanding of technical
issues.
Often technical messages go unheeded because they were
not adequately explained or justified to decision makers.
Senior engineers are responsible for ensuring that important
messages are understood. This means that senior engineers
must be prepared to understand and discuss less technical
(risk, schedule, support, business opportunities) issues that
factor into the decision process.
In general, making a single presentation on a great new
idea is not enough to get the company to change directions.
It is often necessary to speak to many groups in order to
build consensus for a new initiative. Sometimes this means
that senior engineers have to "go on the road" to sell a
new concept. Senior engineers are expected to "follow
through" on communication, and "do whatever it takes"
to ensure that important messages are understood.
3.2.5 personnel planning and evaluation
When management is assembling a team of people to carry out
a project, senior engineers should endeavor to ensure that
management has the most complete possible picture of the
abilities and interests of the candidates. Ensuring that
the team includes the right mix of skills and people who
will find the project interesting is a major step towards
ensuring the success of the project.
When management is appraising the performance of the technical
staff, senior engineers should endeavor to ensure that management
has the most complete possible picture of the achievements,
strengths and needs of the other engineers. In many cases,
managers may not be close enough to the work to develop
well informed opinions on the quality of an engineer's work
or of the roles they have played in getting that work done.
3.3 Responsibilities to your Organization
The character of an army is set by its sergeants, and the
character and effectiveness of an engineering organization
is set by its senior engineers.
3.3.1 be a technical conscience
When the "Emperor has no clothes", it is the responsibility of
the senior technical staff to stand up and say so. Sales people
are driven by short term business. Marketing people work with
all manner of vague and ambiguous factors. Executives work with
the information that other people have given them. Managers work
with the directions they have been given. Engineers are the
people who responsible for figuring out how this stuff is all
going to work ... and if it isn't going to work they have an
obligation to say so.
When somebody says "good enough for who its for", it is the
responsibility of the senior technical staff to set higher
standards. The business people are primarily driven by time
and cost considerations, and if the senior engineers don't
stand up for technical excellence, we can be sure that nobody
else will.
Senior engineers need to regularly ask the questions:
If not now, when?
If not us, who?
3.3.2 be an apostle of vision
In a large project, people often work on something without
understanding how their work fits into the whole. In general
this reduces their identification with the product. It also
creates many opportunities for mistakes. If people do not have
a clear vision of where we are going, they cannot factor that
vision into their decisions.
Often an important change in the way we do business cannot
come about until everybody understands the new model and
accepts hir roles in it. Announcements and seminars can
create awareness and transfer information, but getting
people to be part of a new vision requires considerably
more time and one-on-one communication.
The senior technical staff has an obligation to understand
and communicate project, product, and corporate visions.
3.3.3 be a role model
The senior engineers are (like it or not) role models for the
entire technical staff. In this capacity, they have great
power to shape the technical organization of the future.
It is important that they recognize this responsibility,
and act accordingly.
If the senior engineers set (by their actions) high standards
for thorough and detailed work, junior engineers will absorb
those standards.
If the senior engineers set (by their actions) an example for
being open to new ideas, respectful of others, and generous
in helping people who need it, junior engineers will learn
to emulate this behavior.
If the senior engineers demonstrate (by their actions) an
appreciation of the importance of the less glamorous
aspects of a project (documentation, reviews, testing,
release engineering, change-review, training, support,
...) junior engineers will learn to value and support
these activities.
If the senior engineers demonstrate (by their actions) a
dedication to non-threatening, open and in-depth reviews,
junior engineers will come to approach reviews in that
fashion.
If the senior engineers are moderating influences in heated
situations, and show mature judgement, junior engineers will
learn these virtues.
If the senior engineers are excited about where we are going
and having fun with their work, junior engineers will acquire
the same attitude.
3.3.4 be an agent of change
Senior engineers should always be on the look-out for things
that are not working well. When major problems are identified
they should be looking for solutions. When solutions are
identified they are responsible for selling those solutions
to the appropriate people. When proposed solutions are
turned into initiatives, the senior engineers should oversee
the process to ensure that things are being done properly
so that the promised benefits will in fact be realized.
Being an agent of change is not merely an option for senior
engineers, it is a responsibility. If a senior engineer
notices that something important is broken and that no-one
else seems to be fixing it, they should take the responsibility
to fix the problem or bring it to the attention of someone
who will fix it. Often the problems we recognize cannot be
fixed without management, marketing or executive assistance.
In such cases a senior engineer is obligated to ensure that
those other people are given a good understanding of the
problem and a good set of options for dealing with it.
There is another side to being an agent of change, and that
is facilitating important changes that others have initiated.
This is easy when another engineer has come up with a
wonderful new concept. This responsibility also includes
facilitating the implementation of unpleasant changes that
may be imposed by external factors. In these situations
the senior engineers play a very important role ... finding
ways to solve problems under new constraints and to evolve
processes to work well in a changed organization.
3.3.5 be a corporate citizen
Junior engineers focus on making their code work. Senior
engineers are supposed to focus on making their project,
product and company successful. This is a much broader
problem and requires a much broader perspective.
Senior engineers need to be aware of the full range of
constraints that a project is under and make the "right
tradeoffs" to do the best possible job within those
constraints.
Senior engineers need to appreciate considerations outside
of the the development organization (customer needs, management
pressures, market requirements, processes, schedules, support
ramifications, risk, ...). They must be able to factor these
considerations into their decisions, and they must be able to
discuss these factors with other people.
Senior engineers need to understand the underlying assumptions
on which product directions and priorities have been predicated.
If some of those assumptions appear to be unreasonable, they
should be challenged.
In order to guide the company effectively, senior engineers
also need to develop communications and process skills.
A brilliant insight into how to solve a major problem may
be useless if the genius who had the realization is fired
for kicking open the president's door and shouting "You don't
have clue-one about what business we are in!" It may be
very important to deliver that message, but it is just as
important that the message be delivered in a form that
will ensure that it is understood in a way that is likely
to result in constructive action.
Lastly (and perhaps most difficult) a senior engineer must know
how to "disagree and commit". The role of the engineering
organization is to provide technical guidance and implement
technical plans. Executives may (because of overriding
business concerns) choose a course other than the one that
engineering has recommended. It may be appropriate to
"push back" on such decisions to make sure that they were
carefully made on the basis of good information ... but
ultimately the engineering organization has to line up and
deliver on those plans.
If the senior engineers fail to line up behind the new plans,
they are setting the product up for failure. The example
they are setting is one of bitter obstruction. This is bad
for the people, for the product, and for the company.
3.3.6 be a facilitator
Senior engineers are likely to know people in other groups,
to have a better appreciation for the plans and problems
that other groups are working with, and to have a bigger
picture of how various efforts can and should interact.
This puts them in a natural position to initiate and facilitate
cooperation between various groups. It also puts them in a
unique position to moderate and mediate inter-group conflicts.
3.3.7 represent the engineering organization
Senior engineers have the opportunity and responsibility to
represent the engineering organization in discussions with
marketing, sales, customers and technical committees. In
all of these roles, they act as a channel between their
engineering organizations and the outside world.
Sales and Marketing organizations need to understand where
our products are going, and the engineering organization
needs to understand where the market is going and how our
technologies are being received. Senior engineers are
often the people who are best able to describe what we
have, the feedback from the field, and the implications
of marketing requirements.
Senior engineers will often be called upon to make presentations
to customers about our technologies, to answer their questions
about our products and directions. Equally important, senior
engineers will often be asked to listen to customers and gain
an understanding of their needs and how our products can be
applied/adapted to those needs.
Senior engineers will often be expected to participate in
technical conferences or standards committees.
In all of these situations they are representatives of
their teams and organizations. When dealing with customers,
and technical groups they represent the entire company.
Senior engineers must recongize this responsibility and
act accordingly.
3.3.8 invest in the future
Senior engineers need to take a long-term view of the products
they work on and the organizations they work in. A feature that
takes three weeks now may save staff-years of support or maintenance
work in the future. Time spent helping (or challenging) a junior
engineer today may create a super-star three years from now. Time
spent defining clean interfaces, charters and relationships today
may result in a much smoother operation in the future.
Senior engineers have to look for ways to make long term
improvements, and they have to drive the investments that
will secure those improvements. This doesn't mean that
management will always support those improvements ... but
if the senior engineers don't dedicate themselves to making
these investments in the future, they can rest assured that
nobody else will do it for them.
Senior engineers need to take responsibility for the growth
(in quality) of the engineering organization. They need to
help ensure that the right engineers are hired, that they
grow, that we have the right tools, that we have sound and
efficient methodologies and processes, and in general that
our already strong engineering organization will be even
stronger in the future. For any organization, complacency
is death. This is especially true of a technical organization.
3.4 Responsibilities to yourself
Finally, and perhaps most importantly, senior engineers have
some obligations to themselves. Junior engineers have senior
engineers to mentor them in their professional development.
Who is there to mentor the senior engineers? To a large
extent, the senior engineers must guide their own growth.
3.4.1 Maintain your technical edge
As we assume more general responsibility and delegate increasingly
more technical tasks to more junior engineers, it becomes very
easy to "lose touch with the bits". This is a natural tendency.
We can often help the project more by providing analysis,
guidance and review than we can by writing code ourselves.
If we want to be senior engineers, we must remain technically
competent. It is difficult to help someone else if you don't
understand the problem they are trying to solve, or can no
longer use the tools of the trade. It is difficult to set
an example, if you are no longer able to do the work.
Sometimes it may seem that we have so much to do that
keeping our technical skills up to date is just not possible.
In many cases, however, we can get our "technical exercise"
at the same time we are fulfilling our other responsibilities,
and the synergistic gains can be very significant.
Part of this is a matter of maintaining engagement with the
work in progress. If you understand how the implementation
is proceeding you are more likely to be able to recognize
problems and solutions. In working directly with individual
developers you will have the opportunity to understand their
strengths and weaknesses, and to help them develop their
technical skills.
Another major component of maintaining technical competence
is to continue learning on the job. Senior engineers are often
called upon to investigate new technologies in order to evaluate
their relevance to our plans. Senior engineers are expected to
be aware of what is going on in related projects. These are
easy opportunities to further our education.
There are also many external opportunities for continued
technical growth and education. We can read technical
journals, attend seminars at Universities and attend
conferences in the areas we are interested in. We can
also look for courses or projects that will enhance our
skills or gain a more useful understanding a new concept.
3.4.2 Find new ways to grow and contribute
In large part, the growth of a junior engineer comes from
being assigned increasingly challenging tasks. When one
has become very good at design and implementation, it is
occasionally difficult to hand a juicy problem to more
junior people. Reviewing other peoples' work and helping
them through problems is important ... but it may not
seem as satisfying as doing the work personally.
A senior engineer's role, however, is not limited to review
and support. There are many other areas where senior
engineers can and should make valuable contributions (that
is what this whole paper is about). There is, however, an
important difference between the contributions that are
made by junior and senior engineers. Junior engineers
are assigned problems to work on. Senior engineers often
have to find problems to work on.
A senior engineer must be pro-active in finding problems
that require attention and opportunities to improve the
people, the product, or the organization. A senior engineer
should be on constant look-out for things that "aren't
going well", identifying the most pressing problems, and
trying to find ways to address them.
The problems might be very technical (we are spending 25%
of our cycles in this one function and we need to speed it
up) or very general (our testing and hand-off procedures
are completely broken). As engineers become more senior,
they can take responsibility for a broader range of problems.
Some may fear that their manager will be upset about the
fact that they are working on a problem that doesn't directly
contribute to this week's deliverables. Clearly our managers
have to approve of the way we are spending our time ... but
most managers recognize and prize pro-active responsible
senior people who run around finding and fixing important
problems.
3.4.3 Take responsibility for your own quality and growth
There are very few people who are competent to guide a
senior engineer's growth. Senior engineers are, more
likely than not, "the expert" on most subjects, and the
person to whom others come for advice. In such situations
the senior engineer may be the best (or even the only) person
who can assess the quality of hir work. A senior engineer
must, therefore, accept the responsibility for reviewing
hir own work.
When a junior engineer nears the completion of a task,
managers and senior engineers will be figuring out what
the next task should be. If it is not obvious to a junior
engineer that this job is done and it is time to move on,
a manager or senior engineer will bring this to their attention.
Senior engineers cannot depend on others to tell them what
they should do next, or when they have reached a point of
diminishing returns.
If a junior engineer needs to develop in some area, hir
manager or a senior engineer will probably be trying to
come up with tasks that will encourage that growth. If
a senior engineer needs to develop in some area, (s)he
will (more often than not) have to accept the responsibility
for recognizing and remedying the need on hir own.
A senior engineer is expected to do what is needed without
someone else having to tell them that they should do it.
3.4.4 Maintain a sense of perspective and have fun
If you are burned out, you won't be able to help anyone,
and your pessimism will spread to others. If you are
having fun, that will spread to the other people you
work with.
The stuff we are working on is inconceivably complex,
we continually face numerous problems, and it seems
miraculous that we can keep pulling this off. A sense
of humor (even a perverse one) is almost essential.