About a year and a half ago I joined Tekton Labs, a company whose core business is software development. As a non-technical person, who loves technology I thought that becoming an IT project manager would be a great but challenging opportunity, and sure enough, it was one!
During my first week I barely understood certain technical terms. The basic knowledge I had about software architecture, methodologies and processes from courses I took at university helped me to understand how general things work, but I was not familiar with day-to-day terms or detailed specs used to develop software at all. So I had to do a lot of research about that.
When looking up a definition, I had to look up another word to understand the original definition I was reading. At that moment I thought "This will be harder than expected...'', but at the same time it was a great opportunity to learn about new web and mobile technologies, frameworks, databases, server types and agile methodologies.The journey began!
Soon I got familiar with the common terms. I got my first project and had to write user stories, as well as talk to the client and work with a team. Of course I didn't know all what was needed but my team always helped (and of course, Internet too!).
I had never written user stories before, but I was familiar with the structure they follow. I wrote some and they seemed pretty clear to me. During the first sprints the development team came up with lots of questions about them, then I realized that reviewing one by one with them and thinking about different scenarios together was probably the best idea. Things like these are learned when you are involved in a project, which is good because it’s the right moment to put in practice all what you have learned.
During a project lifecycle you will experience different situations where you may not know what to do or what to say, but again it is a good opportunity to learn how to act and where to find the right solution. For example, sometimes there are technical questions from the clients. In many cases you will know the answer but there will also be some that you won't, as it happened to me. Do not panic, just confirm what you think with the development team before giving a wrong answer or suggesting something you are not sure of entirely. It is better to make sure you get it right than creating false expectations for the client.
Communication is key!
From my first projects, I learned that communication is one of the main keys of success and you don't need to be too technical to get this right. Just by sharing the same information and being clear on the requirements helps to make sure all the work is going towards the right direction.
It is always better to ask as many times as needed than staying unsure about how something works or how should it work, like with the following:
- Ask the clients what they are trying to solve with the web/app they want to develop.
- Ask them why do they want something to work in a certain way, you can probably help them find a better solution if you know the main reason. It will save time, effort and cost to define it since the beginning than after you have it developed.
- Ask the development team about the different approaches they can take and review the main pros and cons so you can choose the right one together.
- Ask them what they are doing to make the web/app work as intended. Of course, you will not understand what they have written in code (although some languages are not so hard to understand) but the main point is not to understand the code but the logic, so you can make sure it is following the business rules and requirements. Sometimes even without knowing code you can help them find a solution just by thinking about some possibilities together or reinforcing how the flow should work on different scenarios, remember you are the one who has a deeper understanding of how the business works.
Do I regret my decision?
I do not at all. If you are unsure about joining a software company due to your professional background, I would definitely suggest you to give it a try. I think it is a worth experience to live and a great opportunity to learn, especially if this is not your field. The learning process never ends. I keep learning all the time and on every project because each one is unique and with different needs; and subsequently, different learning outcomes.
You’ll also learn to see software from a different perspective. Next time you need to work on a project related to a software implementation, you will know how it actually works and you will have a better point of view to discuss and understand what is needed to make it succeed.
If I can give some suggestions based on my experience, these will be the main ones:
- Work along and stay close to the team. Understand what they do and why they do it.
- Be proactive and always do some research. You will have a better baseline to discuss and it will be easier for you to understand what is needed.
- Don't be afraid to ask. Do it as many times you need. As I mentioned already, it is always better to make sure you really understand what it is being done or why something needs to be done in a certain way, than just blindly accepting and doing it. It can save lots of time and effort.
- Take a basic IT course before you start. Although you don’t need to be technical it is important to have a general idea of how the flows and architectures work in order to have a better understanding.
- Draw some graphics. Having things visually laid out will help you to have a better understanding of the relations and implications of each decision.
- Use analogies and real examples. This is always a good idea. It makes complicated things look easier and in a common language for everybody.
- Learn as much as you can and have fun! You will see there's a whole new world and variety of parrots to discover.
Project Manager at Tekton Labs