Is Your Verification Manager
Obsolete?
Tom West, Tempe AZ.
This was a hot topic about a
year ago when I wrote this but felt it was to political at the time to publish.
Now that a year has passed, and my previous Verification Manager is off in
India contributing to the exportation of jobs out of the USA, my conscience is
telling me it is now acceptable.
Obviously I expect a
rebuttal.
Over the past dozen or so
years the typical approach to functional verification was to set up separate
compartmentalized verification teams to tackle overwhelming verification tasks.
Because this is/was such a cumbersome task, the balance of power within
development organizations shifted heavily towards the functional verification
efforts. Vendors rushed in to deliver point solutions to solve verification
tasks, often filling the needs of verification engineers at the expense of the
rest of the product development team.
The question is whether a
separate team focused solely on design verification still best serves the goals
and interests of the product development team as a whole, or should this
function be integrated into the product development flow to be accomplished by
team members reporting to the architecture managers, design managers, and
software managers? My answer to this is clearly the later and here is why.
I have seen it to often that
Verification Managers do not always focus on the end goals of the business
unit. The goal of a business unit is typically "Product Development"
as efficiently and accurately as it can be done. This larger business unit goal
often conflicts with the goals of a compartmentalized verification team.
Architecture design, software design, hardware design, and marketing all must
be tightly integrated. Every decision maker needs not only to decide how to
accomplish the task at hand, but how that decision affects other aspects of the
product development team. Is this true for typical verification teams? I think
not and here are some supporting reasons.
Verification Managers often
select point tools that are the best tools to accomplish the specific
verification task, while the overall product development team suffers. My
biggest examples are proprietary verification languages. These languages are
often foreign to other product development team members, and languages with
limited licenses might not be accessible to other team members. How many
software developers do you know that have a good knowledge of Specman or Vera?
What about reuse? Who is
looking out for reuse of models among design, software, and architecture teams?
Is this the verification manager’s function? These decisions clearly should be
made at the Engineering Director level. Is the verification manager interested
in how the needs of the business are served by sharing the environment with
other business units within the organization, or with customers? Often the
answer is no, yet the choices are made by verification managers both in
methodology and proprietary tools, and these choices can result in a major
disservice to the greater good of the organization.
Verification managers and
the compartmentalized verification teams under them often form walls between
themselves and the rest of the product development groups. Often the
justification is that this sheltered group will think independently and provide
a unbiased interpretation of the design specification. But wouldn't you agree
that the associated reduced communication with the rest of the product team formed
by these compartmentalized "walls" is often to blame for missed bugs
Clearly since the focus and goals between the compartmentalized verification
team is slightly skewed from the rest of the product development team,
communication gaps will always exist.
Compartmentalized
verification engineers often do not know intricate details about weak areas of
the design under verification. Only the designers know these troublesome areas
that need detailed attention. Often the designer working closely with the verification
environment will be the only way to attack the problem. The only way to achieve
this is if the designer is intimately familiar with the verification
environment, without walls, and communication barriers.
Often an issue gets kicked
back and forth between a verification environment problem and design problem.
We have all seen this happen and it can waste days on each issue. More often
than not, this is a result of a designer who does not understand the
verification environment because the environment was developed with
verification specific proprietary tools by a compartmentalized verification
group. It’s normally not the designer’s job to understand the verification
environment. Typically the environment is built to serve the specific interests
of the verification group and it might be too hard to understand outside this
group. This scenario does not serve the best interests of the overall product
development team.
Segregated verification
teams often develop an adversarial relationship with designers. It’s the
verification engineer’s job to identify faults with the designer’s work. Could
this be one of the causes to the breakdown in communication? I think so. On the
other hand, designers may tend to avoid double-checking their work because they
expect the verification engineer to catch errors. Clearly this is an unhealthy
scenario.
On the positive side, we
have never had solution to this problem like we have today. In today’s product
development environment, integration of the verification tasks is imperative
and it is now easier than ever to do this. While we still need verification
engineers focusing on building verification environments, a larger focus can
now be and must now be placed on full product verification and more
importantly, the superset development effort. Successful development teams will
have director level management making decisions on methodologies and
non-proprietary tools that affect the greater good of the entire organization
well into the future. Successful development teams will see that verification
is far more than “logic verification” – it is architecture verification,
software verification, and design verification. Verification is “product
verification.” This cannot be accomplished with a compartmentalized team and certainly
cannot be accomplished with many of the verification point tools and
methodologies chosen by these teams. Verification needs to be an integrated
approach with decisions made at the highest of levels. Hopefully the decision
maker will see beyond the verification point tool products that most vendors
are peddling. Every tool decision needs to be made with a positive answer to
the question, “How will this help integrate my entire team and get my product
out faster?” Its an approach in which open common languages, common models, and
a methodology that supports reuse across teams, over time, across the
development cycle, across business units and customers prevails. There is no
room for proprietary point tool languages. My message to business unit managers
is short. Take control of the situation, Every team member is responsible for
verification. Focus heavily on choosing the best tools and methodologies that
support reuse and communication across your entire team.
Tom West Tempe AZ
Visit my odd outdated fun
pages at www.openverificationfoundation.org