These 3 Things Are Holding You Back From Success

A year can pass by so fast. If you reflect on the past 12 months, have you made the progress you were hoping you’d make? What’s different about your life now compared to a year ago? Some might…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




What makes a Successful Digital Product Company

You might often wonder what is the true difference between a Digital Product and Digital Service Company . More often , the most common answer you would get is — Digital product company creates product , Digital service company gives service.

This is the most wrong answer you will get. I have often seen service company trying to transform to product company by marketing its service based projects, done based on customer specific specs, as products. 99.9% that attempt will not fly too far.

Requirement of 1 customer, cannot become , requirement of all customers of the world, which is the principle of product design.

Coding done for 1 customer for 1 project, done as per 1 customer’s priorities, specification & timeline, cannot be flexible, scalable and generic enough, to cater to the diverse needs and requirements of all customers of the world.

This way of product development would also be slow , requiring too many re-developments, as the very next customer would change the specs and processes. Thus resulting in different code versions, in different customers, or requiring frequent upgrades to previous customers’ code, and too much time spent in testing the upgrades.

This would also require more time in new implementation, as acquiring any new customer would means, coding again , changing existing code of UI & APIs again, to meet the specs of the new customer, removing the hard coding, done for the previous customer. This results in code, platform, framework fragmentation, due to too many changes and re-developments.

Often companies would skip the most important parts, like the product scrum methodologies, to reduce the implementation time. Specs received form a new customer would be assumed as the next spec of the product. Without much thinking, if that would be acceptable as a product feature, by all customers all over the world.

Due to lack of time, that spec would often be implemented in a quick hard-coded way, without close reviews & quality checks, with compromises in logic, design and efficiency of code, code size becoming bigger due to amateur logic, and with little scope of the code to dynamically change or get reconfigured for another customer’s needs without coding again.

And then finally that code would get merged into the main product code , resulting in bloating of main product code size, slowing the entire product down, impacting the overall product and its performance.

Often companies would call these hurriedly developed code as custom implementations and keep them separate using micro services, so that it doesn’t affect the main product code. But UI is not microservice. Only APIs can be put in a separate microservice. UI can be put in a separate branch . But this approach would result in multiple UI branches, 1 per customer, which is not a good product development approach.

And if company keeps developing more % of custom code, for different customers, which are developed in a hurry, without proper review, with likely compromises in design, without getting merged into the main product code, due to its risk of affecting the overall product, then that company is actually doing more digital services on top of some common part of its product . It is not focusing on developing its own product.

A company can very well do that. But it should be done though a different digital services wing. It wont be a product wing. Outcome of that digital service will not go into the product code. Company can execute both type of developments. But if company wants to be product company, it need to focus more , invest more and keep team size more in the product wing. Product wing will focus in creating generic, re-usable, scalable components and engines which further can be assembled to build New screens and APIs, for New features of the Product , keeping global audience in mind, not just 1 customer.

Product Field Team

This assembly of reusable scalable generic components and engines ( released by product team ), can be done by a product extension team, called Product Field Team. Product Field Team is different than Digital Services Team.

Product Field Team assists in developing the Product Features by creating screens and APIs using the engines and reusable components released by the product team.

Eg: Product Team releases a Configurable Table Component and a Easy way to create Tabular pages with drill down, through few clicks.

Field Team will use that Tabular page building engine and component to build different feature screens like Purchase Order Tabular Screens, Sale Order Tabular Screen with drill down , etc. using the recommended approach trained by Product Team.

This work of Field Team will mostly involve Configuration , Assembly and Rules instead of coding. Be it configuration or coding, the work of the field team will be supervised , reviewed and monitored closely, by product team, to ensure it is done properly, because the outcome of the Field Team will be the Test and manifestation of the components developed by product team and will finally create product’s functional features and go into product code.

Creating regular screens and APIs by high profile **product team** will be a **overkill**. And that’s why the product field team is a necessity. Field team is formed and trained by product team themselves, so that they can properly use **engines & components** ( the rule engines, the workflow engines and re-usable UI components) correctly , which are built by the product team.

**Co-ordination** of this Field Team with the product team, with the functional team , with stake holders , with customers; managing excel files, managing their tasks, managing daily updates, follow-ups , resolving team issues, man-management, connecting with product team for training and reviews etc. is a **full time job**, and can be done by a mini-manager , who can be non-technical extrovert preferably, similar to a mini scrum master.

There should be fantastic synergy, collaboration , equation between the **product team** and **product field team**. In fact, product field team would be an extension to the product team itself. Thus the product development itself becomes more **modularized , scalable and extendable**.

My First Company was a Digital Services Company L*g**a , which used to develop web portals for customers like B*W and Be**z. But they didn’t have a product. Every web portal was unique to that specific customer. There was no Central Architect as such. There, a **project manager** was the **most important** person. He used to create a quick , low budget team , mostly with freshers, deliver a web project, come out and go to the next project.

If you ask any service based project manager, who has worked in this method, his entire life, he would say, this is the **best approach**, for obvious reason. But with this approach, one cannot develop product.

I have **17+ years** of work experience. Out of which, first few years, at Enteg, I spent in **product development**. Even before starting jobs, I used to do product development during graduation and in IIT-Mumbai. After that I spent around **8 years** in customer specific, **service based project** (onsite , offshore ) . And then again last **5 years**. I am back again to Product development . I have experience of **leading services team** at customer place and **product team** in-house.

In a way, I have experience of both the worlds. I know **pros and cons**, of every situation that can arise in product development or service based projects. I know what pitfalls, service projects / product projects can get into, and how to avoid them.

Both the worlds are different and should not be mixed. i.e. products should not be developed like service project and service project should not developed like a product.

>
Eg: If we spent 1x effort for 3 screens in service project. We would initially spent 3x effort for 1 screen
in product , trying create re-usable scalable components to build that screen. And later, we would spent 0.2x to 0.5x effort only for successive such screens with minimal coding. And that is called product development.

We follow **strict quality checks** of all developments that go into the main product. Checks involve code quality , code structure , code logic, code design, code performance, code security, user interface, user experience, and UI page load performance.

**Core product team**

We have a **core product team** which creates reusable components , engines, platforms. We have product field team, which is an extension of the product team, which creates functional screens , Apis and workflows using the components and engines released by product team , by using rules , configuration and assembly, mostly without coding. Thus resulting Rapid Application development with minimal coding.

In this way , the core **central product team** can focus more on coding re-usable components and engines, which in turn is used by **Field Team**, to create New screens through configurations m often than coding.

Add a comment

Related posts:

Lenders For Reverse Mortgages

Due to inflation and economic unpredictability, most people are concerned about having enough money to fund a comfortable retirement. You might be able to keep up the quality of living you’ve worked…

The Relaxing Effects Of Creativity

I love creating no matter how small. Creating lifts my spirits, takes my mind away from stressful thoughts and lets me do something I really enjoy. I don’t worry about being perfect or getting it…

Missing College

This time last year I was sipping beer in a tent in Gremany for Spring Fest, 4 years ago I was shaking with the exitement of college being around the corner, and now it is just about time for college…