Roles and Responsabilities for Senior Technical Staff

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.