Someone recently asked me, “How much will it take to build a dating app?” — as if he were ordering it off Amazon. Many tools have made it easy for business owners (read: entrepreneurs, general managers, product managers, marketers and business development folks) to have their websites and social media presence built quickly.
Business Owners Beware
Most business owners don’t actually know how to talk to developers. This can cost money when trying to build a new app or site, or maintaining existing high tech-powered properties. Where does the cost come from? Re-work, delay and disputes, as scope creep becomes a source of conflict.
What Engineers Think about When Scoping a Web or App Development Project
STEP 1. What is your business goal?
Are you trying to sell something, expand/scale your business, cut costs, increase productivity of your employees? The big picture motivates anybody, including engineers.
STEP 2. What are the critical “objects” in your business model?
These are usually the drivers for business metrics. For example:
- In an e-commerce website, you care about orders.
- If you are creating a dating app, the individual accounts are the main objects.
- In a subscription management software, subscriptions are the key objects.
Explain to the engineers how these objects are related to the other objects in your business model. For instance, a customer has subscriptions. Each subscription contains service products, which have features, and are provided by some vendors.
And so on, until you have exhausted (or nearly exhausted) all the critical objects and their relative connection to one another. Engineers use this information to create your data model in the database and the business logic (commonly known as “the backend”).
STEP 3. Describe the critical actions that can be done upon those business objects.
In general, you can create, view, modify, and delete an object. Old-timers call these basic transactions CRUD (create, retrieve, update and delete).
You need to decide who, what roles and what systems have the authorities to perform those transactions, and when the transactions happen, such as:
- Business Rules: A customer can create a subscription, after the customer logs in. “After the customer logs in” is a business rule. Inventory these rules as you write down what you want done in your business system.
- Workflow: If humans are performing those actions, then list and describe the user interfaces (UIs) or screens that facilitate those actions. Many times the screens need to follow a certain logic.
- Site Map or Application Map: Organize these UIs in some kind of hierarchy. If you have money to spend, hire a user experience designer to do it. If not, whip out your inner logical artist, and sketch out how you want the screens to look like.
- APIs: If other systems will be performing those actions (against your business objects), list and describe the Application Programming Interfaces (APIs) that your app or website will have, so other systems can talk to it. Vice versa, does your system need to talk to third-party systems, maybe a credit card payment gateway? Then list what kind of API calls need to be made from your app or system.
STEP 4. What kinds of reports and analytics do you want to see?
This is where you will find defining the critical business objects from Step 1 very useful. If you already know what your business drivers are, it’s easy to define what information or data elements you want to collect, and how to report them.
STEP 5. What are the deployment and operational requirements?
This includes where you are going to host the website, or what app store you want to release the app to (iOS, Google Play). If you are dealing with consumer and payment data, then you have to specify privacy policies and deal with credit card associations’ compliance rules.
Doing the Homework = Smoother Product Management Process
You may be thinking, “Man, this sounds like a lot of work! I thought it was just an app! It’s the interweb, right? It should be easy…”
As I mentioned, new tools are popping up every day to help make the developers’ job easy. They can put together a collection of modules and pieces from open source and licensed software and frameworks to help you run your business. But, it’s still a manual process.
Do your homework — especially if the complexity is high, you can help the engineers (and yourself) a lot by understanding the way they think. This is just to get you started! Thoughts, comments, questions?