In this article, I describe important lessons I have learned from working in my first full-time job after graduating. My job was as an analyst programmer (essentially a software engineer with data analytics responsibilities).
The lessons I detail below stand out to me since the problems we face at work simply would not appear in school. I believe that knowing these lessons early can help students appear more mature and prepare to excel in the workplace.
1. Deadlines are loose and user-requirements are never well-defined
Jobs could be roughly divided into two categories, standardized jobs (e.g. in a manufacturing plant, front-line retail, etc.) and project-based jobs (e.g. consulting, software development, etc.), with the latter, of course, being more open-ended.
For me, being in the software development industry, a lot of my work is project-based. It stood out to me that deadlines for projects at work are often arbitrarily set and postponed. In addition, project requirements are often unclear at the start. This constrasts with coursework projects in school where the deadlines are strict and the grading scheme is oftend standardized.
This kind of ambiguity can cause stress, especially if it is unexpected. Of course, there are ways to handle it.
With these in mind, to become an effective employee, it is important firstly understand that deadlines are more useful as a tool to communicate progress between departments. It is then important to give reasonable estimates on the time it would take to complete tasks. It is also crucial to ask critical questions about the project goals and definitions at the start of the endeavour.
2. You need more than an end design, you need an action plan too
In coursework projects, you will often design or implement a solution, and that’s it. However, at work, you will often have to deal with legacy systems. New projects often have to work completely with all the other relevant systems in the business. This means that the end design has to be backwards compatible with these other systems, and larger projects often cannot be released overnight.
As such, part of the project is to break it down into smaller launchable modules, and also to detail how these modules can be incrementally relase. This is an additional layer of thought that never has to be done in school projects. This kind of thinking can only be developed over time by understanding both the legacy systems and objectives.
3. Be effective even when dealing with ineffective managers
There are some managers that are often not clear when describing project requirements, and sometimes even the root objectives. This then leads to task requests that appear random.
In these cases, it is up to the employees to ask critical questions and ensure that the project is driving business value, and that the assigned tasks would not be a waste of tiem and resources.
In the end, it is important to understand that employees and managers have to work as a team to become a valuable business unit, rather than just managers assigning tasks to employees, and employees following what the manager says.
4. You will never have all the skills needed
There are different levels of proficiency in skills (e.g. programming languages).
- The lowest of which is never having used such skill.
- The next is having used it before, but needing to read up on it to use it further.
- The highest is having used it enough to not need to reference external documents.
In any project, it is almost impossible that an individual will have enough proficiency in all the skills to design the end product without doing additional research, or collaborating with experts in other departments.
This is the reason why communication and teamwork are important in businesses.
That being said, in order to do projects more quickly, individuals or individual units need to reduce interdepartmental dependencies since this type of communication can take forever.
Individually then, in comparison to learning hard skills (e.g. a programming language or framework) the more valuable skill is to be able to quickly learn new systems, such as by reading documentation. It is also important to accumulate knowledge from other departments to make decisions quicker.
A thirst for knowledge and flexibility to adapt and learn about new systems is a critical attitude to be successful in project-based roles.
5. On the social side, your circle of friends will shrink to the team you work with
As you become occupied by work, all your friends will also be busy with work, and it will get more difficult to arrange time with groups of friends.
As humans, we are social beings, so maintaining good relationships outside of work is critical to our mental health, and by extension critical to our effectiveness in the workplace.
Ways to tackle this issue is to get involved with activities in other departments or for other interests outside of work. In addition, meeting up with friends individually will be easier than with groups of friends.
There are numerous challenges in the workplace that is simply not meant to appear in school. The lessons I have highlighted in this article are mostly soft-skills related (e.g. dealing with ambiguity, managers, relationships), but also have implications on the hard-skills that you focus on. In general, these problems can be addressed with the right mindset and patience, but it is also valuable to be prepared to face these challenges down the road.