Unveiling the Dev Journey: Experiences in Product vs. Outsourcing Development

author avatar

Teodora Grubor

December 11, 2023

5 min read

In the dynamic landscape of the Serbian IT community, our team finds itself at the intersection of two compelling narratives: outsourcing and product development. Beyond being an outsourcing hub, Serbia is home to numerous companies that have crafted their successful products, adding a unique vibrancy to the IT community. 

Right now, some of our team handles services for clients in the Netherlands and Austria. At the same time, another group is focused on developing our products. Currently, the main focus is on Skenit. This dual point of view is our secret weapon, helping us tackle each project with a well-rounded approach.

In this blog, we’re diving into the details of our journey, giving you the inside scoop on both sides of the story: product development and outsourcing. I had a casual chat with my team to get their thoughts on working with products and dealing with services. So, take a cup of tea, get comfy with your favorite blanket, and enjoy the read!

How do companies choose between Outsourcing and Product Development?

Striking the right balance between product development and services is a nuanced decision, not just for our team but across the broader IT landscape. Many companies face the same dilemma in Serbia, which is renowned for its thriving IT sector and outsourcing prowess. They actively serve global clients, contributing greatly to Serbia’s reputation as an outsourcing hub. At the same time, the growing success of startups and companies with a product focus emphasizes the attractiveness of developing unique solutions.

The landscape is ever-evolving, with a considerable number of IT professionals being part of both worlds.

Perception and Impressions

Service work demands adaptability and patience, often subject to external factors beyond our control. The dynamic interplay with clients requires effective communication, emphasizing the equal importance of technical and communication skills. While technical prowess is crucial, developing effective communication skills becomes imperative as we engage with diverse roles within the client ecosystem.

On the other side, diving into product development unlocks a area for our creativity and innovation to flourish. The freedom to experiment, however, comes with its set of challenges, involving risks and significant investments. Unlike when collaborating with clients, where certain key roles guide various aspects, our focus on our product demands a comprehensive approach. In this situation, our company comes up with the whole strategy on our own. That means we have the freedom to shape and innovate without depending on external factors.

We seamlessly blend different experiences rather than just juggling them. This means handling the technical challenges of meeting client needs, navigating the creative aspects of product work, and always learning from user feedback.

This approach reflects our collective understanding that both fields significantly contribute to our technical expertise. It’s not about picking one over the other but recognizing the relationship between product development and service delivery while embracing the distinct challenges and triumphs each of them offers.

Tech Story

The technical differences between product and service work become apparent when it comes to adapting to change. While product development provide room for experimentation, it might involve dealing with legacy code, so any changes need to be approached with careful consideration. Harnessing new technologies and architectures improves the quality of the application, but it also poses the challenge of explaining how these changes benefit end users.

In the technical landscape, our daily routines are different in product and service work. Product development involves discussions with end users, marketing, sales, and customer support, with occasional strategic planning sessions. The focus is on architectural planning for implementing new functionalities and improving the existing ones. Surrounded by these activities, we are constantly trying new strategies, measuring success, and adjusting them accordingly.

Service work, on the other side, involves more frequent meetings, such as daily check-ins and refinement sessions, to discuss upcoming tasks and features. Communication primarily occurs with stakeholders, product owners, and the wider team.

When we talk about product development, we have one standout example – Egg Smash. Here, we didn’t just rely on our instincts to shape its functionalities; we also embraced the challenge of marketing. The result? A cracking success! We attracted a sizable user base, and in this journey, it’s not just about creating a product. We meticulously crafted its identity and earned well-deserved credit for our efforts.

Collaborating with clients introduces a different set of dynamics. We often dive into existing codebases, which means we need to be flexible and adapt to various principles and structures. This process is not just about writing new code; it’s about navigating through an existing maze, understanding its complexity, and aligning with different ways of development. It demands a balance between respecting the existing code and introducing improvements that align with the client’s vision.

Measuring Success 

Navigating product development and service delivery, our team employs distinct metrics to measure success. In service projects, client satisfaction is crucial, accompanied by achieving project goals and cultivating long-lasting relationships. When we’re working on creating our products, success depends on things like the number of users, how engaged they are, and the feedback we get. It’s like a combination of these factors that helps us figure out how well the product is connecting with the market.

Individual growth is linked to the setting and achievement of measurable goals. Recognizing personal accomplishments serves as a compass for continuous improvement, with external validation and feedback from colleagues.
The importance of helpful feedback becomes clear as it not only brings about positive changes but also aligns personal success with the larger goals of the business.

“Success isn’t a fixed destination. It’s a dynamic blend of different elements, representing the varied nature of our work and our constant pursuit of excellence in everything we do.”


In the vibrant world of product development and service delivery, our team at Crystal Pigeon finds its rhythm, dancing between the creative autonomy of crafting our products and the collaborative intricacies of servicing clients globally. 

From technical challenges to personal fulfillment, we’ve discovered that success takes on diverse forms. Whether measuring client satisfaction in services or tracking user engagement in product development, our collective experiences reinforce the synergy between these two realms. As we navigate this dynamic landscape, we find joy in the code and the shared laughter that comes with building something extraordinary together.

We look forward to the exciting possibilities that the future holds and hope to continue the journey with our current team, coworkers, and colleagues by our side!

Care to share?

5 Years of Crystal Pigeon: A Journey of Friendship, Challenges, and Success


5 Years of Crystal Pigeon: A Journey of Friendship, Challenges, and Success

Time flies, doesn’t it? You’ve probably heard this phrase quite often, especially in the business world. It’s a sentiment we’ve been expressing a lot in the past month as we celebrated the fifth birthday of Crystal Pigeon. We won’t talk too much on this topic, but we feel the need to express our gratitude and […]

Kotlin Multiplatform: Evaluating Advantages and Drawbacks for Cross-Platform Development



Kotlin Multiplatform: Evaluating Advantages and Drawbacks for Cross-Platform Development

Kotlin multiplatform (KMP) is a technology that allows developers to write code in the Kotlin programming language that can be shared and used across multiple platforms, such as Android, iOS, web and desktop. This means that developers can write a single codebase in Kotlin and use it to build applications for different platforms, without the […]