A Developer's Perspective: Working at a Software Development Agency vs a Digital Product Company

The path towards becoming a software developer can lead you in many directions. You study in university, join a bootcamp, or even learn on your own to get your first internship. Even at this milestone the path doesn’t become clear. You have multiple options waiting in the IT landscape.

Freelancing, joining a product or  software development company—they all have their pros and cons. Personally, after developing a product, I decided to shift towards being part of a software development company and I could not be happier about it. If you’re wondering what in this job makes me tick and whether it’d be suitable for you - read on. 

My career path in a nutshell 

Some more perspective: I’m a JavaScript developer with over four years experience in the IT industry. Previously, I worked mainly in small product companies as part of a team developing notification services for local communities in Poland. I was also working on a cloud-based mobile app and testing web-applications. 

I enjoyed this job but didn’t feel it was my terminal. I continued to search for the style and type of work that would be challenging, inspiring, and fulfilling. Eventually, I came across Monterail. Here, I use mostly Vue.js—one of the core languages for Monterail, an official Vue partner

After being here a year plus seven months, I can clearly see what I missed in my previous jobs and what benefits are connected to working in a software development company. I will lay out the benefits below.

Pros of working at a software company 

  • Work on various projects 

Working within a software development company allows you to engage in different projects that vary in terms of the client’s location, budget, and business model. They use different technologies, are in all stages of maturity, and come from any industries you can imagine. Each of them faces unique challenges. When you work for an enterprise, it’s crucial to stick to the budget and not cross deadlines. Working for a start-up might show you a little bit more flexibility in business decisions and usually huge excitement about the product and process itself. Meeting very different people from across the world is unquestionably a bonus.

Most projects start from scratch and I see a huge advantage here. It allows us, as a team, to suggest relevant methodologies to the client and follow good practices from the very beginning. Next to the good old Scrum, there’s also a mix of a lot of practices from other methodologies like kanban and waterfall. The way we join everything together depends on the specificity of each project — the goal here is always to create something useful. 

What’s more important, I feel and see the real impact on the outcome. From the first line of code to celebrating the launch of the MVP. Sometimes a few times a year. While in a single product company, you are provided with already built software. You can’t change technology in the middle of it, nor expect the final big release. It’s rather a continuous process. 

  • Flexibility 

Do all new upcoming projects seem interesting? Well, you don’t always have to choose between them—it’s possible to work on a few simultaneously. How? Let me explain. Developers at Monterail are able to choose the extent to which they want to be involved in a particular project. It could be hours, it could be days per week, depending on the team structure and timeline. Speaking from my own experience, when working on the web application for booking cycling tours, I was also simultaneously part of a team working on the Monterail homepage.

Some of our team members are involved in more than one or two projects at once while others prefer to stay devoted to a long-term project like Cooleaf - the client that we've maintained a 10-year technical partnership. Both options are fine. Some good organization skills and sensible planning will become handy anyway. It's good to focus on effective communication with the team and prioritizing regularly. Jira will be your best friend if it isn’t already.

Shifting your mind from one project to another can sometimes be challenging but on the other hand is quite helpful—when you need a break from one topic, you take up a task from a completely different area. You can have your cake and eat it too. 

When working at a product company, the company is the product, so it might become dull after some time and there’s little perspective on a radical change. 

What if you feel overwhelmed or the project is slightly different than you imagined? Well, no one is tied to a project forever. 

There’s a possibility to change it in the meantime after consulting it with your leader and unless it hinders the whole process and business goals. 

  • Well-established teams and processes

Work at a software development company is usually very well organized. Having many people on board and multiple projects going on, introducing some rules becomes a must sooner or later. Further, the whole process of creating software was shaped with the knowledge and know-how of experts accumulated over the course of years. There are workflows, guidelines and well-established processes. In product companies, the main aim is to introduce the product fast which leads to skipping many important details that add to the final result and high quality. 

Software companies usually have a rich talent pool including project managers, quality assurance specialists, designers. A well-knit team where everyone has clearly defined roles and responsibilities makes work organized, focused, and efficient. The teams are built taking into consideration people’s skills, availability and project’s timeline so there’s rarely a mismatch. 

Teams in product companies usually lack specialists in some areas which leads to spreading responsibility and sharing tasks among developers which is not satisfactory for the people, nor good for the project. 

  • New technologies, new skills, new methodologies 

Working with all kinds of projects often forces us to switch between different technologies, so there’s a chance to constantly expand our knowledge. In one project I learned React.js - a JavaScript library that surpassed jQuery as the most commonly used framework for building Web applications.

I also learned Typescript, a strongly typed programming language that builds on JavaScript. And I loved it, similarly to 72,73% of devs using it on a daily basis. At the beginning of my work at Monterail, I had an opportunity to work with a cloud-based CRM called Hubspot and see how our marketing and sales team operate. 

  • Diversity is a fact 

The bigger the company, the higher chance of working with people on various seniority levels. You’ll probably meet juniors with less than a year of experience as well as principal engineers with 15+ years of building software. At Monterail, we all work together. It’s not an accident that one of our core values is Diversity & Inclusion. We’re diverse and we embrace it. 

However, a software development company is not only about the developers. They definitely play a major role in delivering projects but we shouldn’t underestimate the importance of business analysts, designers, QA, marketing, sales, and HR. You’ll be surprised how many people working in IT actually have a degree in humanities. There’s huge value in different backgrounds, mindsets, and skill sets. 

  • Multiple possibilities to grow 

Even being around a diverse community and observing its work is beneficial but what’s even better, you can actually be in someone else’s shoes. Example?  

At Monterail, we have squads—groups of specialists with expertise in a specific area of collaboration with external teams, where developer expertise is necessary. Our most active squads include the sales squad and recruitment squad. They offer squad members a unique opportunity to learn more about business, and to have a glimpse of other teams’ work. But stretching your domain is not limited to squads. I had a possibility to work as a support QA in one project for the whole month and it taught me more than any theoretical course.  

Another way to develop personally and professionally is becoming a tech lead in the project, involving in a mentorship for less experienced colleagues or running an initiative. 

Last but not least, at a software development company, you work directly with clients so you have a chance to polish your soft skills such as communication, team work, leadership, and creativity which are of great importance in any work. 

  • Self-development

Growing with the help and support of others is one thing but self-development time seems equally important. Some software development companies offer their employees a certain amount of time dedicated to learning, co-finance conferences and courses, organize language classes, and stock a company library. At least, that’s what they should do. At Monterail, you can count on even 5 hours of self-development time a month all for yourself. Access to MonteLibrary and Udemy included (how cool is that?)

Ever thought of growing as a writer of something else than code? Well, you’re more than welcome to contribute to a company blog which software agencies usually run.

  • No boredom 

Boredom is not a word I truly know the meaning of on a daily basis. Although I do have some schedule or try to stick to a routine for my own sake, every day is slightly different. A team daily meeting in the morning is a sure thing but the results of it might take you by surprise. An unexpected bug, more features added to the scope, or a subtle change of functionalities? Anything is possible.

Although it’s hard to lay out specific time frames, projects usually change every 3-4 months. Sometimes you’re involved even for a year, and sometimes it’s just a few-weeks job. It all depends on the scope of the project, whether we start from scratch or work on improving a functionality. As mentioned before, you switch technologies, get familiar with different industries and change teams. It’s hard to call it boring. 

Is working at a software development company for you? 

After going through all abovemented points, you might still question yourself whether taking this path is right for you. I’m the last person to tell you that working for a single product is a bad choice and choosing a software company is always the best option. It depends on different factors and most of all,  mindset. Who might not be suitable for working at a software company? It’s quite tough to point anyone specifically but I would say that if you get attached quickly and are not keen on making changes, you might not enjoy it to the fullest. 

But let me prompt you on the ideal candidate profile. If you:

  • Are not afraid of change, adapt quickly, and are open to new ideas and revelations. If flexibility is in your blood.  
  • Start your journey with IT (but not limited to it, continuous growth as developer is more than possible). It’s a tremendous opportunity to learn a lot in a short time, to  meet many different people with even more diverse experience—and you’re ready to grasp it.
  • Want to polish your social and soft skills. Teamwork and daily communication with clients is an expressway to becoming an expert in conveying your thoughts. 
  • Desire to know the ins and outs of miscellaneous products from all business sectors. There’s not a better place to do it. 

New call-to-action

 

Why Building MVP is Important and What Are The Next Steps - featured image Why Building MVP is Important and What Are The Next Steps
1stweek What Should You Know About Your First Days At Monterail?—The Onboarding Process
What Are the Benefits of Application Integration?