How We Make Decisions in App Development at IPGN Solutions

For our flagship Customer Relationship Management (CRM) System, ‘End 2 End,’ our app development process is guided by a commitment to creating a system that not only meets but anticipates our users’ needs. Our decision-making approach is practical, user-focused, and deeply rooted in our core objectives.

Here’s a closer look at how we make those critical decisions.

1. Setting Clear Goals and Objectives

Our primary objective is to develop a system that our customers don’t even realize they need. We aim to address not just basic requirements, but also the nuanced needs of three distinct user types: System Users, Management Users, and Owners/Senior Managers. Balancing these priorities is crucial in our development process.

2. Using the Right Tools for Flexibility

To effectively manage our development workflow, we transitioned from using DevOps by Azure and Jira to Linear. Linear offers the flexibility to shuffle tasks and tag them according to our priorities using the MoSCoW prioritization scale. This method allows us to categorize tasks as:

  • Must: Core requirements that are essential (MVP1).
  • Should: Important but not critical features.
  • Could: Nice-to-have features if time permits.
  • Won’t: Features that are not a priority at this time.

This prioritization helps us focus on delivering the Minimum Viable Product (MVP) efficiently while considering future enhancements. To keep things going smoothly and our creative juices spinning, we clear the mix of tickets, not just churning through the M’s, as they are more energy-consuming and time-consuming. This way, we can deliver a variety of features throughout the application.

3. Incorporating Customer Feedback

Customer feedback is a cornerstone of our development process. We gather insights from all levels of our user base to drive feature development. By leveraging our operational experience, we prioritize issues and features that impact daily usage. This approach ensures that our system remains responsive to user needs and operational challenges. We review and address items on a daily or weekly basis, depending on their urgency.

4. Maintaining a Dynamic and Configurable System

Our core principle is to provide a dynamic, customizable, and configurable system. While customers might not always recognize its immediate value, we understand its long-term benefits. For example, KPIs and their requirements can change, so our KPI view is designed to be modifiable. We first created basic cards that could be easily changed in the database (MVP1). Next, we enhanced the display (MVP2) to allow users to customize their view.

Another example is enabling businesses to change fields and labels. Every business has unique requirements, and standard fields like Title, Description, and Enquiry Type might not suffice. We provide the ability to create new fields or change labels at the configuration level, allowing businesses to tailor the system to their specific needs by themselves without our interference.

5. Balancing Immediate and Long-Term Needs

We constantly balance immediate operational needs with long-term strategic goals. Bugs and urgent issues are addressed promptly, ensuring smooth daily operations. Simultaneously, we monitor industry trends and future-proof our application by designing technical specifications that allow for flexibility and scalability.


Our development process at CRM End 2 End is a blend of strategic foresight, practical decision-making, and a deep commitment to our users. By setting clear objectives, using the right tools, incorporating customer feedback, and maintaining a dynamic system, we ensure that our app continues to evolve and meet the diverse needs of our users.

Stay tuned for our next blog post, in which we will explore how our technical specifications support long-term adaptability and innovation.

If you have any questions or want to learn more about our development process, feel free to reach out and contact us!

The Decision Process

sample data

sample data

sample data

sample data