Database Dev for SaaS MVP

A custom CRM designed, developed, and deployed to support and integrate with the Services Oriented Architecture behind an SaaS MVP

Overview

As this relatively new startup readied themselves to launch an MVP, they needed an efficient way to track their sales and marketing funnels. Initially, I was approached by both founders to explore a product management role, but once they found out I had ample experience building relational databases we quickly determined a pain point that I could rapidly provide a solution for.

The Problem

Being able to collect and retrieve data from multiple sources, including a landing page, direct response marketing, and requisite funnels.

The Goal

To designed and deploy a lightweight relational database-driven CRM for a small group of sales people and marketers to use as a tool in support of a soon-to-be launched MVP.

The Process

Having built several hundred relational databases over the better part of a decade, I've got a very tried and true method for overdelivering while underpromising and eradicating the opportunity for scope creep as much as possible. By working in conjunction with a co-founder that was their CDO, the below methodology was used:

Discovery

By replacing paper-based processes and flat-file systems (i.e., spreadsheets), the discovery part of a project is one of the most enjoyable. It's when I get a chance to really learn about a company, their current workflows and procedures, the dynamics of the team, and what they truly want to accomplish.

Through several Zoom meetings, interviews with key stakeholders, and collecting of documents and files, I'm able to build a roadmap for the project that begins with an ERD:

A simple, but very effective initial piece to the puzzle.  The ERD.
A simple, but very effective initial piece to the puzzle. The ERD.

In database development, an ERD is an Entity Relationship Diagram. While not a table schema, it will allow me to express the workflow, as I'm going to design it, to stakeholders. As you can see from this ERD, by employing Occam's Razor, we can keep the process as simple and straightforward as possible.

Backend

It's imperative to being on paper long before a computer keyboard is touched. Even when not using an integrated development environment, the backend of database represents the core foundation by which everything else will be built. The overall quality of the finished structure is 100% dependent on this part of the process being completed with a high degree of attention to detail.

The backend of the CRM (table schema)
The backend of the CRM (table schema)

As you can see, for this relational database, I've used what is called the Anchor-Buoy Method for the relationships connecting the tables. The only reason to use this is for clarity: it helps developers navigate complex relationships with little fuss. Each TO (table occurrence) has a purpose and this method will allow a seasoned developer to understand that purpose in context within a few seconds of opening the relationship graph. Needless to say, it's great for maintaining an application as it scales.

Frontend

The goal of any CRM is to maintain customer relationships. By studying how a business acquires customers, it will allow us to determine the proper frontend design.

The Customer Acquisition Framework
The Customer Acquisition Framework

For an MVP, a large amount of energy will be spent by the marketing team focused on content strategy, the customer lifecycle, and the sales funnel. As a developer, it is imperative to reference this framework and keep in mind those that will interact with the database.

The CRM's Dashboard
The CRM's Dashboard

The Dashboard of the CRM must be clean and intuitive. This is ultimately a tool to drive frontend growth, so it has to be simple, clear, and user-centered in its design. Continuity and user flow is more valuable than needless bells & whistles. As such, I designed the frontend layouts to enable the user to focus on the tasks they needed to accomplish:

Accounts
Accounts
Contacts
Contacts

As you can see, the Accounts and Contacts layouts are very similar and can be navigated with ease. This intentional design feature is 100% user-centered and is created in such a way that provides a seamless user experience.

Deployment and Beta Testing

A large part of deployment is onboarding and training beta testers. In this project, we settled on 5 beta testers and deployed to a bare metal server (kubernetes was also considered). Bare metal was chosen specifically for the high performance and security features.

Making the beta testers comfortable with the environment and navigation was essential to getting their initial buy-in. I've also found it a best practice not to assume that any users have any pre-existing knowledge when it comes to testing an application.

CRM Navigation Clip

Outcome

Being able to have a custom-made CRM prior to launching an MVP is a luxury that most startups don't get the opportunity to experience. All in all, it was a good project that met their expectations and was delivered on time. It's difficult to ask for a better outcome than that.

What I learned

  • Even though every business has it's own set of pain points and possible solutions, they all depend on a number of factors to have a successfully completed project:
    1. Communication - this is the cornerstone
    2. Consideration - not every stakeholder is of the same opinion
    3. Commitment - to see the project through to completion
  • Because I was not an SME with the MVP this company was launching, it benefited me to gain exposure to a viewpoint that was not mine and to broaden my perspective.
  • Trust your gut - I'm fairly seasoned at running projects as a primary stakeholder or in a leadership role. Wisdom is knowledge filtered through experience. This project gave me a lot of wisdom.
  • There is almost no better feeling than helping others by making their job that much easier or more engaging with a tool that you've built. It is an awesome experience!