My Journey to Becoming a Better Software Designer and What I Learned Along The Way
Software Engineer. Data Science and AI enthusiast. I love technology, art, travel, and politics.
In October 2017, I started a two-year doctorate-level engineering program at the Eindhoven University of Technology (TU/e) that leads to a Professional Doctorate in Engineering (PDEng). During the program, the trainees focus on systems architecting and designing software for software-intensive systems through courses and projects for real-world clients.
In this article, I want to highlight some of the experiences I have gathered and some of the lessons I have learned during my time as a PDEng trainee at TU/e. The lessons I will present here personal and mainly non-technical, but I hope that they are relevant to any software or Data Science project.
In the summer of 2017, I had received my master’s degree in software engineering and been looking for a job for months. I wasn’t quite sure what kind of a career I wanted.
Then, I accidentally stumbled upon the PDEng Software Technology (ST)
program at the TU/e website. The ST program courses, training projects with industrial partners, and a ten-month long final project in a company.
All to prepare the trainee with the technical and soft skills necessary to design software for software-intensive systems. The emphasis on the soft skills is what really sold me on the program, since this is something that bachelor and master programs don’t typically consider very important.
Additionally, I was fascinated by the program’s focus on high-tech systems and cooperation with big companies such as Philips and ASML. At the time, I was interested medical technology, since one of my life goals was to give people better tools so that they could live longer.
Since the start of the program, I have been a part of three in-house training projects with my fellow PDEng colleagues and an individual final graduation project at Océ, a Canon company. I have learned both about myself as a designer but also about the environments I have to operate in.
We were a new team with diverse background and experiences. We didn’t really know each other yet; there wasn’t that much trust yet. Without taking this into account, I tried to force people to work according to a methodology that really didn’t fit the context.
Additionally, I made several managerial mistakes, such as taking too much work on myself and not taking into account the technical details of the work. I ended up creating tasks that had too many dependencies between each other, thus hindering the progress of the whole team.
Yet, through all of that, I believe that the atmosphere in the team was generally good. I may be giving myself too much credit, but I think me being honest and transparent about the problems we were facing but also optimistic about the end goal we could reach helped the atmosphere.
During the project, I was responsible for both the architecture and some of the engineering tasks. On one hand, I had to keep a bird’s-eye view of the whole solution, but I also had to write code that worked. I experienced that accountability brings forth responsibility to be knowledgeable in the subject matter.
In other words, I saw that leaders who understand domain make better decisions. Though this conclusion seems like a very simple statement, it touches upon a quality that has always challenged me. Good leaders and designers are able to effortlessly move between different levels of abstractions, they are able to tailor the presentation of their ideas and findings regardless of their audience, they can break down the problems into smaller units of work regardless of the nature of the problem, be it a technical or organizational.
I have always been a good communicator in professional settings and presenting ideas across a wide variety of audiences is something that excites me a lot. On the other hand, it’s the need to make decisions across different levels of abstraction that has been difficult for me.
It is particularly difficult for me to make decisions on the technical level. I feel as if there has to be a right decision and this feeling forces me to run in circles researching the alternatives until I am comfortable enough making the decision. This has proven to be a learning point for me both in the second project and also in my final project.
I have learned to rely on people more experienced than me and time-box the research periods so that I could revisit the decisions at a later date to see whether they still make sense. Most importantly though, I am starting to understand that not all the problems have a “correct” way of solving them. Sometimes, you have to pick a design option and re-evaluate it as project progresses.
The third in-house project was for a printing hardware and software company called Océ. It was a Data Science project which was a new experience for the whole team. We were given a week to follow some online courses and familiarize ourselves with the most-used software libraries of data science.
This was valuable from the perspective of reducing some of the uncertainties related to not having enough technical skills with respect to Machine Learning. Though, looking back at the project now, this also supports one of the bigger learning points that I have identified recently. It is that investing time into learning the fundamentals of a particular field is crucial in the long-term, particularly when it comes to creativity.
I have always thought of myself as not a particularly creative person, even though my interests vary from technology to politics and art, and I can effortlessly cross the borders of these fields. I have understood that sometimes applied creativity requires you to understand the details of the field.
This process requires time and patience. I believe that the most creative outcomes result from me navigating the breadth of my knowledge but also being able to momentarily dive deep into the particularities of the field.
The final graduation project at Océ reinforced many of the learnings I have already mentioned. I picked the project at Océ because it was technically the most interesting one for me. The project involves data science and natural language processing.
Though I had already had a little bit of experience in data science, language processing was a completely foreign topic for me. But culture, arts, and music have always fascinated me, so a combination of these fields and technology is something that comes naturally for me.
I came to this program thinking that my future is in medical technology because extending human life was something that had been driving me for years.
Over the last year, I have realized that I am more fascinated with giving people tools so that they could have more control over their lives. Part of it is still connected with healthcare, if a person can adequately see and measure their food intake, they will have more tools at their disposal to control their weight and also the food waste they generate.
But my new-found passion has bigger implications across a wide variety of fields. In media and politics, combating misinformation and connecting people to decision-making are acute challenges. Keeping people aware of their background and cultural heritage can help them better cope with the uncertainties of the fast-changing world.
Though there are endless possibilities on how I can start realizing my vision, I am more enthusiastic about my professional future than I have been in a long time.
My enthusiasm for the future is connected to how I have developed during the PDEng program. We have been given the tools to become more self-aware about our qualities and pitfalls and to question the assumptions we have about our technical and soft skills.
The projects we have been through have given us opportunities to try out different things, such as web development, embedded software, and data science, and reflect on how we performed in these new circumstances. That’s how personal growth happens.
I have always been fascinated by the differences between generalists and specialists. I have always identified myself more on the generalist side, but I have never been quite comfortable with the term because it implies that a generalist would not be able to solve problems in situations that require a deep understanding of a specific field.
During the first PDEng project our client, Alan Watkins, told about a third option called a comb (some people also call it the unicorn). When you are a comb, you have knowledge in a broad range of topics, but the teeth also represent that you can specialize in many fields. Your skill to specialize, learn quickly and efficiently, and transfer your knowledge from one field to another become your greatest asset.
These concepts are wonderfully explained here
. I feel that the PDEng program is trying to shape us into unicorns, designers, who are able to identify what they enjoy in the field of technology, try out new while making use of everything they have learned, and reflect on their results, and just keep on doing this for as long as we want.
In reality, nobody can be perfect in everything and we will all be combs with teeth of varying lengths, but the fun is in the process.
These are the lessons I learned from my time as a PDEng trainee:
Do not underestimate the influence human relationships and the context of the team have on the outcomes of the project.
Understand the technical foundation of the problems you are facing.
Lead through optimism but don’t be naïve about the challenges ahead.
Go wide and go deep in your knowledge, that’s how creativity emerges.
Don’t be afraid of taking the first step. Even a wrong step forward is better than standing still because you get feedback.
I have learned these five lessons thanks to the practical experiences of the PDEng program. Yet, there is another piece of advice that I will remember from the past two years.
A friend of mine has told me this so many times that I have started telling it to other people: “Whatever you decide to do next, it’s okay if you make mistakes, you are still young.” I have always been an impatient person but the last two years have made me appreciate the process of learning more.
Subscribe to get your daily round-up of top tech stories!