Ever since I have become the verification team lead, I noticed that young engineers often find goal defining process a big challenge.
This is understandable. Strictly speaking, no one ever taught us how to do so, even though proper goal definition may as well be one of the most important steps in the whole personal development process.
This is just another thing we all have to learn along the way in our lives, since it is not taught in schools (at least not in those I attended). As a small background, I myself had to read a few books on the topic and do an extensive online research, in order to get the better understanding of the goal setting procedure.
I am far from an expert in this area and I have much more to learn, but I still wanted to write this article to kind of serves as an “entry” point into a thinking about and defining goals, which you want to pursue. My hopes are that this article will give new perspective to (young) readers about the goals they set before themselves and how to properly approach them.
By the widespread definition, goal setting involves the development of an action plan designed to motivate and guide a person or group toward a goal. Defining a goal is just the first step however. Between that and your final destination, there are many steps and a lot of hard work.
When you set the goal, it needs to motivate you, because motivation is the key to achieving it.It is however not my intention to go deep into the theory behind the goal setting itself – there are many resources about that online, but I do want to say that personally, for a long time I didn’t really understand the importance of the goals and how you define them and for many years I was only partially dedicated to this process.Here I want to provide a few examples about goal setting.
They will mostly be from the perspective of a verification engineer, but the reasoning can be applied for wider range of jobs. I will be using the word “improper” to express my opinion about the specific way of setting a goal, but strictly speaking, goal setting cannot be “right” or “wrong” per se, it depends on multiple factors, starting with yourself, how motivated you are or how much emphasis you put on personal development.
1) Goal: learn a new scripting language
Complementary skill for a verification engineer is knowing one or more scripting languages.
While these may be learned on the fly and when the specific requirement arises, it is best if you dedicate specific part of your time for learning it.
Here are the two ways of defining this goal:Improper way of setting this goal: “I want to learn Perl scripting.”Proper way of setting this goal: “Write 10 Perl scripts over the course of next six months.”
The second option is much more likely to get you to work on it.Next, spend some time with clear mind thinking what are the steps to achieve this goal. These may be:
- Read and write summary about 2-3 books on the topic.
- Spend 10-15 hours in an online research about the topic. This can be done in chunks of 1 hour per day.
- Enroll in an online course on the topic (free or paid, there is no price tag on personal development). Course will also make you do some practical stuff along the way.
- Win & profit with your newly aquired skill.
2) Goal: become the script language master
This goal can be a long term variant of the first example. Below are the two of many possibilities to define this goal.
Improper way of setting this ghoal: “I want to learn to use different script languages in my everyday work.”
Proper way of setting this goal: “Write 20 scripts in each of Perl, Bash and Python over the course of next 12 months.”
Remember that setting a specific goal will motivate you more, compared to setting a generic one. As a consequence, you are more likely to pursue it and work on it.Specific steps and stages are similar as in the first example. You know what you want, you know how to measure it – get to it today!
3) Goal: learn different verification language
This one is quite common among the verificaiton engineers who know either e/Specman or System Verilog verification languages.
While many engineers wait for years for the right project to come, in order to be given the chance to learn both of these languages, this goal can actually be achieved without depending on the external circumstances.
I will give example from personal point of view – I have been working almost exclusively in e/Specman for years.Improper way of setting this ghoal: “I want to learn System Verilog.”Proper way of setting this goal: “Write 3 UVCs using UVM.”
Potential steps in achieving this goal are:
- Read the System Verilog language manual, to get the high level picture of the language.
- Aquire documentation related to UVM methodology. This can be either in the form of documents or online videos.
- Enroll in a UVM course. I personally love courses because they motivate me more, compared to when I just read online. Especially if they are paid, let’s be honest.
- Start coding – start small. Focus on small parts of code and gradually increase it. Along the way make sure you understand all what’s happening “behind the scenes”, because you learn specific programming paradigms the best in that way. Build components one by one and connect them slowly, while building up a working environment.
- Eventually produce one verification component.
- Produce three UVCs over the course of one year.
Once System Verilog project eventually comes, which you wanted so badly, you will be prepared and be able to build up on the knowledge and expertise, you aquired yourself beforehand.
Goal of the whole team is to deliver the results to a client. Working together and creating a good synergy within the team is a requirement for being successful in this work, and without a proper comunication, this will be a significant challenge.
4) Goal: become the team lead in your company
Before actually setting this goal, make sure to ask yourself whether this is something you want in the first place.
Many people don’t really understand what this role is all about. Being team leader means that aside from your primary work and deliveries towards the client, you will also become responsible for other peoples career development.
Some people are very attracted to this, but some find it intimidating and not their cup of tea. It’s all good, as long as you’re aligned with yourself.Some potential steps in achieving this goal are:
- Read 3-5 books on the topic of human relations, management, communication and career development.
- Look for the opportunities within your current role to work on this. For example, whenever junior engineer joins the project, ask your current team lead or company management, to assign them to you, so you can start mentoring.
- Produce some material which may serve as a training resource in your company. For example, if you have extraordinary productivity skills, compile them into s presentation and share with others.
- Work on creating and giving a value to people you work with.
- Reevaluate this goal periodically to make sure you’re on the right track.
5) Goal: become the technical in expert in your industry
There is no single definition what a “technical expert” means, but for the sake of this discussion, let’s assume it means being very skilled in both SystemVerilog and e/Specman (soon we will be adding Python to the list), as well as knowing at least two diffetent script languages (e.g. Python and bash) and being proficient with an advanced tools (e.g. Indago).
Improper way of setting this ghoal: “I want to become techical expert.”Proper way of setting this goal: “My goal is to work on X SystemVerilog and Y Specman projects over the course of next 6 years and during that time to activelly use script languages and latest tools in the industry.”This kind of goal is a long term one and it is important to establish what resources you have and which ones you will need from others, in order to achieve it.Potential steps to achieve this goal are:
- Clearly comunicate your long term plans with your managers, so they can also plan for it and work towards helping you
- Make sure to be proactive and as soon as you feel that you are not learning, raise a flag towards your manager
- Collect books and other materials on the topic and read them regularly
- Enroll in specific courses which will broaden your knowledge
- Subscripte to magazine or podcast which is related to the latest news from the industry. In this way you will be up to date with the most recent cutting edge technologies.
- Reevaluate this goal periodically to make sure you’re on the right track.
Goals change over time, and in the case of a very long one like this, it is important to check with yourself whether it’s something you want to pursue. You may achieve it earlier, or you may realize it’s not something you want. However, having clarity about it, is what will lead you to success.
Conclusion
My goal in this article was to ilustrate how goal setting process may look like, through these five examples. They are by no means the only possible way and the only right way to do it. I encourage you to further explore the topic in order to develop your personal strategies for growing your career and personal life, but more importantly, I encourage you to approach goal setting for yourself and your organization with more attention and awareness the next time you get to it and I assure you, the results will come long way.