6 Development Questions to Ask Before Building Your Software

May 26, 2020

Software development is a difficult process, so you should make sure all your questions are covered before embarking on a project with your team.

It’s never fun to be in the middle of a software development process and run into a budget-breaking roadblock. 

While there will always be some obstacles on the way to a product launch, you can avoid some big ones by asking the right questions before you develop.

The developers over at Devetry have been helping organizations strategize software products for years. These six questions are the most often overlooked, yet we’ve found that they affect our client’s software the most.

So, the next time you’re planning a software product, ask these development and business questions to your stakeholders. 

6 Development Questions to Ask Before Building Your Software

  1. What data do I need to store?
  2. What regulations do I need to adhere to?
  3. What are the best practices for my application?
  4. Is this app for us, or should we consider selling it?
  5. How many people might use this?
  6. How will my users use this?

1. What Data Do I Need to Store?

Before you begin development, you need to select a database. And before you select a database, you need to understand the type of data your application will store — both now and in the future.

To give you an idea of how complex this seemingly simple answer can be, here some types of data that you might need to consider:

  • Qualitative vs. quantitative
  • Unstructured vs. structured data
  • Integers vs. characters
  • Big data
  • Real-time data
  • Time-stamped data

Depending on the types of data, you may need a very specific database. If you hastily select an improper system, it could cost you time and resources.

In a similar vein, consider your data requirements in a few year’s time. What does your long-term product look like? Your future business goals will have a strong case for selecting a database.

2. What Regulations Do I Need to Adhere to?

Depending on your industry, location, or users, there will likely be certain regulations you need to consider. Failing to strategize around these regulations may result in online penalties, user drop-off, or multi-million-dollar lawsuits. Here are the big ones you need to consider.

  • GDPR: The General Data Protection Regulation is a law in the European Union that requires companies to disclose the collection, processing, and storage of personal user data. It also requires that companies take “appropriate technical and organizational measures” to protect user data and privacy. Failure to adhere to the GDPR can result in a fine of up to 20 million Euros.
  • CCPA: The California Consumer Privacy Act is California’s version of the GDPR. Similar to the European regulation, it grants California residents access and power over their personal data. 
  • HIPPA: The Health Insurance Portability and Accountability Act grants certain levels of protection over medical data. If you’re in health tech, you need to be acutely aware of HIPPA’s rules and compliance.
  • FERPA: The Family Educational Rights and Privacy Act applies to any publicly funded educational institution. It is designed to protect a student’s personal data. Any third party or vendor that works with an educational institute also needs to abide by FERPA.
  • ADA Accessibility: Accessibility is a complex issue in the world of development, and there might not be a black and white answer for you. However, you should ask your team whether you need it, and what portions of your application does it make the most sense?

Your software must adhere to the necessary regulations.

3. What Are Best Practices for My Application?

Depending on your application and how you’re going to use it, there will be a handful of best practices you should abide by. The most common best practices that can be applied to most applications are:

  1. SSL: Are you sending data between networks? You will need to encrypt your data with a secure sockets layer or SSL (pictured below).SSL
  2. Encrypting data at rest: Where SSL encrypts your data in transport, encrypting your data at rest is also important. 
  3. Longevity plan: What end of life technology is on the horizon (Windows 7, for example)? For these technologies, have a plan for security patches and updates.
  4. Browser support: Which browsers are you supporting? If you're in a corporate environment, you might need to support old browsers.

There are likely other best practices depending on your specific industry, users, and business requirements so consult with a senior engineer before your project. 

4. Is This Application For Us, or Do We Want to Sell It?

Many software applications start as internal technology. Your team has a software idea that will make your day-to-day functions more productive. It works so well that, all of a sudden, your software is its own product.

However, there are challenges in transforming software meant for one set of users (single-tenant) into software available to many sets of users (multi-tenant). In single-tenancy architecture, each tenant has its own database and software instance.

single tenant vs multi tenant

In multi-tenancy architecture, there is one large database that’s segmented for different instances or user groups.

These two architectures are completely different, and migrating your database from single to multi after years of data collection can become a huge project.

This “now we want to sell it” scenario occurs frequently. So be sure to consider the possibility of selling your software, even if it’s not an immediate business requirement.

5. How Many People Might Use This?

If you tell your development team that tens of thousands will use your application, they will select languages and frameworks that are best suited for a large user base. If your actual user base ends up being 200, you’ve wasted resources and created an unoptimized piece of software and server architecture. 

So before you begin to develop your software, be realistic with the number of users and growth of your userbase. Sure, we all want our software to attract millions of users, but for most of us, that’s not going to happen.

Your actual number of users will affect how you build your application and what features are prioritized.

6. How Will My Users Use This?

The last important question to ask your team requires you to think about your users.

Will your users exclusively use your application on a mobile phone? Your app needs an exceptional mobile experience.

Will your users access your app in a low bandwidth area? Your app should minimize data transfer size.

Understanding your user’s preferences and online habits will help you select optimal tools and prioritize features. This understanding will improve the odds of adoption and high engagement, and help translate your idea into a useful software application!

Put These Questions in Action

To recap, here are the six questions we just walked through:

  1. What data do I need to store?
  2. What regulations do I need to adhere to?
  3. What are the best practices for my application?
  4. Is this app for us or should we consider selling it?
  5. How many people might use this?
  6. How will my users use this?

Depending on your industry or userbase, there are other questions and considerations you should ask yourself. That’s why we always recommend having a senior engineer (or better yet, a CTO) in your initial strategy meetings.

At a minimum, these six questions will help you create a clear strategy and plan for execution. These steps will prevent roadblocks as you develop, ensure an on-time launch, and result in a better software product.