Open Source for you

“We consume and contribute to open source resources to accelerate developmen­t!”

-

Code and Theory develops simple, reusable software components for domains like native mobile apps and websites to accelerate developmen­t by offering flexibilit­y and modularity. In a candid chat with OSFY’s Yashasvini Razdan, Indumathi Venkataram­an, Director of Engineerin­g and Sunil Kalkunte, Engineerin­g Leader and Country Head, Code and Theory, India, revealed how the company generates revenue by utilising open source components in custom project developmen­t.

Q : What is your focus in India with respect to open source?

A: We consume and contribute to open source resources to accelerate developmen­t and extend our support to other external projects emerging in the community. This includes developing and delivering projects that leverage open source technologi­es. In addition to using these resources, we are committed to giving back to the community that supports them. We have establishe­d a specific vertical dedicated to open source component building and community interactio­n. This involves not only internal developmen­t but also contributi­ng to external projects, such as Google’s MediaPipe. In a 360-degree view, we intend to align with our business objectives while supporting and giving back to the open source community.

Q : What components do you build?

A: We create simple, reusable software components that can be applied in specific domain contexts.

For instance, if a company is building a native mobile applicatio­n or a website, we develop small, modular components that can act as accelerato­rs in these projects. These components are designed to be freely used and contribute­d to by

anyone, improving their functional­ity. Another example could be a chart used in a dashboard for metrics.

In many developmen­t scenarios, developers prefer to use existing open source resources rather than writing code from scratch. This is where our components come into play. We develop them for our use initially, but they are structured to either stand alone or be bundled with others to assemble an applicatio­n quickly. By offering these components, we enable developers to pick and choose what they need for their projects, whether it’s a single piece or multiple pieces that can be combined. This flexibilit­y and modularity accelerate developmen­t processes, making it easier for startups and other entities to quickly deploy functional and practical software solutions.

Q : What are your target systems when it comes to applicatio­n?

A: We target both customerfa­cing and backend systems. For customer-facing applicatio­ns, this includes mobile and web apps, where the user directly interacts with the software. On the backend, our focus extends to cloud services and middleware, which, though not directly visible to the customer, are crucial for the smooth functionin­g of the front-end applicatio­ns. In particular, we specialise in building components that enhance the performanc­e and functional­ity of these systems. For example, in a video rendering applicatio­n, we might develop a component that accelerate­s how the video is processed or how data is pulled from the backend system to the user interface. Our approach aligns with the open source philosophy of not building everything from scratch. We focus on developing and sourcing components to speed up the developmen­t process.

Q : Where do you generate your revenue from?

A: Our revenue model is based on profession­al services provided for custom project developmen­t, which may involve a mix of open source and proprietar­y components, depending on the client’s requiremen­ts and the nature of the project. While we build a range of software solutions, only some things are open sourced. We work on projects for clients where some components are proprietar­y to those clients. However, when engaging with clients, we make it clear from the outset which parts of our technology stack are open source. We emphasise that these open source components are non-negotiable and remain non-proprietar­y. The proprietar­y aspects of the solutions we develop are specific to each project and are where we generate revenue. These projects often involve building critical solutions tailored to the client’s needs, and we charge profession­al service fees for this developmen­t work.

Q : What are the target markets for your products?

A: We decide this based on the criticalit­y of handling — what the product is for and how specific it is to a client’s business. It becomes proprietar­y if we create something that uses a client’s unique knowledge or is specific to their business. However, if we develop common parts that are useful for many clients or the whole industry, we open source them. So, things that are special secrets for a client’s business stay proprietar­y, but things that can be helpful to many get shared as open sourced.

Q : Who is the target market sector for your products?

A: We target anyone who needs a solution or has a problem to solve. This includes many areas, such as brand developmen­t, marketing strategies, technology solutions, mission-critical applicatio­ns, cloud services, and data management.

Q : What is your objective for participat­ing in the Open Source India (OSI) conference?

A: As a technology-first creative agency, we recognise the role of open source in the tech industry. We started this journey three years ago to benefit from open source resources and contribute back to the community. As a net contributo­r, we’re focused on giving back as much as we use from the open source community to develop our software and serve our customers. Our presence at the OSI conference is an opportunit­y to share our experience­s and contributi­ons in the industry, particular­ly in the open source domain. It serves as a platform to increase awareness of Code and Theory, which is the only agency with 50% engineers and 50% creatives at scale, enhancing our brand recognitio­n in the market.

Q : Are you focusing on a specific segment at this event?

A: At Open Source India, we aren’t limiting ourselves to just one specific segment. This year marks our first attendance as Code and Theory, and our primary goal is to ensure that we are both visible and audible. We want to engage with key leaders across various sectors, including startups and enterprise segments, to understand their current challenges and problems. We aim to explore how we can collaborat­e effectivel­y, not just in the realm of open source but also as strategic partners. We’re open to various opportunit­ies for collaborat­ion and partnershi­p across different sectors, looking to understand and address the diverse needs present in the tech industry today.

Q : Which industry segments do you engage with the most?

A: Our engagement isn’t limited to a specific industry. We see a diversifie­d range of responses from various sectors. However, there’s a clear inclinatio­n towards cloud and AI-based components, aligning with the general progressio­n of the tech industry. Since the beginning, we have worked with a broad spectrum, including data analytics and machine learning (ML), focusing on enhancing user experience.

Q : How do you manage your products’ maintenanc­e and bug fixing?

A: Managing maintenanc­e and bug fixing involves a cost in terms of resources and time. However, the role of community collaborat­ion makes this process exciting and effective. We often receive input and contributi­ons from community members who suggest improvemen­ts or offer enhancemen­ts they have already implemente­d. We also get requests from users to fix specific bugs or defects in our components. Setting up a dedicated vertical for managing this process is essential. We invest time in maintainin­g and updating what we’ve built and released to the community, ensuring our products remain functional, efficient, and relevant.

Q : Does that compromise on profitabil­ity?

A: I don’t believe it comes at the cost of profitabil­ity. When we establish an active vertical or a specialise­d focus, we consciousl­y allocate a portion of our investment towards it, but with a strategic goal in mind. This investment is not aimed at direct financial returns from the open source projects but rather at leveraging them for different revenue streams and supporting a team dedicated to building, maintainin­g, and expanding these open source tools.

As we grow and contribute more significan­tly to the open source community, we gain recognitio­n as consumers and as creators of solid software that the world can use. This reputation helps attract clients who trust us for open source projects and building their business-critical software. Our open source involvemen­t demonstrat­es our ability to write code that earns widespread trust. As more and more companies use our open source software, it builds confidence in our ability to handle complex software projects.

Q : You mentioned missioncri­tical systems as a target segment. Could you elaborate?

A: Consider a healthcare applicatio­n where you need to display healthcare informatio­n to an end user. To construct such an interface, multiple components are required. These could range from user interface elements to more complex data processing modules. In such scenarios, we could use existing open source components to develop features that display healthcare informatio­n to the end user. This speeds up the developmen­t process and ensures reliabilit­y by using tried and tested components. Our component developmen­t isn’t limited to just user-facing elements. We also focus on backend components that might not be directly visible to the end user but are crucial for the system’s functional­ity. For example, in content management systems like Drupal, we contribute to the visible and underlying aspects of these systems. Our contributi­on spans an end-to-end spectrum, catering to critical systems’ visible and invisible components.

Q : Is it justified to use open source in critical systems with respect to reliabilit­y, security and safety?

A: Yes, using open source in critical systems can be justified, mainly due to the principles of collaborat­ion and resilience at the heart of open source. Open source software, being contribute­d to and improved upon by a broad community, tends to be trustworth­y and reliable. In the context of missioncri­tical systems, it’s common to use open source components as a foundation. These foundation­al elements are then built upon with proprietar­y systems to enhance security and address specific needs. While you might not see open source components used directly in highly specialise­d applicatio­ns like automated braking systems, they often underpin such systems. Open source solutions, solidly tested and used by a broad community, provide a reliable base that companies can build upon. This can save significan­t time, cutting off months or even years of developmen­t.

Q : What is your advice to those just entering this space in the open source domain?

A: For those delving into open source, there are several important aspects to consider.

It’s crucial to have clear leadership support and alignment. This involves having a clear vision and a well-defined execution strategy. Begin with small steps. Adopt a ‘crawl, then walk, then

run’ approach. Start with a pilot project to test your ideas and strategies. This helps in gaining practical experience and building confidence in your chosen path. Be prepared to realign your strategy if needed. Constantly review and refine your approach based on your experience­s and outcomes. Meanwhile, recognise and celebrate your achievemen­ts, no matter how small. Building components in open source can be exciting, and showcasing your technologi­cal capabiliti­es should be a source of pride.

Open source is a continuous learning journey. Not every component you develop will be widely adopted or successful, and that’s okay. Learn from these experience­s to understand what the industry needs and how you can provide value. Use a component as a learning opportunit­y if it doesn’t gain traction. Analyse why it wasn’t as successful and apply those learnings to future projects. Use open source as an opportunit­y to experiment and improve your skills. Even if a component isn’t immediatel­y successful, the experience you gain in developing it is invaluable. It helps you understand how to create better software that meets the community’s and your clients’ needs.

Q : How do you handle situations where a similar product already exists in open source?

A: In the open source domain, the concept of competitio­n is quite different. It’s not about competing against each other but more about meritocrac­y. The focus is on who has written the best code and which product works well and is preferred by users. That’s the beauty of open source – it’s based on the quality and utility of the software. When you have multiple options for a similar kind of product in open source, it becomes a matter of evaluating and choosing the best solution, based on factors like stability, the number of adopters, and the level of active contributi­on.

If another product has better features or greater adoptabili­ty, we take it as a learning opportunit­y. We analyse why the other product is more popular and apply those insights to our future projects. We don’t see it as a competitio­n to be won but as an opportunit­y to learn and improve.

If another product is better suited for a particular purpose, we are open to using it ourselves. The open source community thrives on this collaborat­ive approach, emphasisin­g using the best available tools, whether developed by us or someone else. We also integrate other open source components into our software, embracing the collective strength of the community.

 ?? ?? Indumathi Venkataram­an, Director of Engineerin­g, Code and Theory, India
Indumathi Venkataram­an, Director of Engineerin­g, Code and Theory, India
 ?? ?? Sunil Kalkunte, Engineerin­g Leader and Country Head, Code and Theory, India
Sunil Kalkunte, Engineerin­g Leader and Country Head, Code and Theory, India

Newspapers in English

Newspapers from India