Aligning Business and Technology When Starting SaaS Projects

Thursday, June 8, 2017 by Rainer Stropek

Introduction

Whenever we start new SaaS projects, we try not to start with a too technical focus. We believe that the technical implementation has to reflect the business goals. Just focusing on technological aspects raises the danger of a project failure because of over-engineering or over-simplification. In this blog post we share important business-related questions that we use to prepare software architecture workshops for SaaS projects.

Note that this blog post is just a snapshot. An updated version including a script to convert the checklist in a nicely formated PDF can be found on GitHub.

General Questions

Vision

Add a summary of the vision for the new SaaS solution (i.e. what is the solution all about and what could it become).

Don't go in too much detail. If available, add a reference to a more detailed vision and scope document.

Project Scope

Describe the project scope in relation to the vision (i.e. what portion of the long-term vision should be addressed in the current project).

Consider describing the scope of the current project as well as a rough sketch of the scopes of downstream projects.

Innovation

External Perspective

Describe the key points of innovation of the new SaaS solution from a customer's perspective.

Don't include a description of all functional and non-functional requirements.

Do focus on those points that differentiate the new SaaS solution from existing internal or external products.

Consider limiting yourself to the five most important innovations.

Consider using the Blue Ocean Strategy while working on these question.

Internal Perspective

Describe how the new SaaS solution will fundamentally change internal aspects of your company.

Don't include existing processes and structures that remain more-or-less unchanged.

Do describe fundamental changes to

  • business processes,
  • organizational structures and
  • financing.

Consider describing fundamental changes to your company's value chain.

Consider limiting yourself to the five most important changes.

Consider using the Business Model Canvas while working on these question.

Target Environment

Public Cloud vs. Private Cloud

Specify the extent to which the new SaaS solution focuses on Cloud Computing.

Do mention a potential focus on a specific public cloud platform (e.g. Microsoft Azure, Amazon AWS, Google Cloud Platform). If there is a specific focus, consider describing the reasoning behind it.

Do explicitly state whether the entire software solution must be installable on-premise in customers' or partners' data centers. If this is necessary, consider describing the maturity of customers' private clouds that can be assumed.

Do mention potential bring-your-own-subscription scenarios (e.g. install SaaS solution in a public cloud environment owned and controlled by a partner).

Don't go into technical details regarding used cloud services, cloud architecture patterns, etc. This will be part of downstream architecture workshops.

Limitations

Mention limitations regarding public cloud services used in the new SaaS solution.

Consider describing the reasoning behind it (e.g. specific legal requirements, avoid lock-in effects, etc.).

Consider potential regional limits (e.g. data centers must be inside the EU).

Consider certification requirements (e.g. ISO 27018; see e.g. compliance offerings in Azure Trust Center for examples).

Consider specific requirements for used cloud services considering availability and performance SLAs (Service Level Agreements; see e.g. Azure SLAs for examples).

Consider required support for specific standards (e.g. communication standards like AMQP, authentication standards like OpenID Connect, etc.).

Consider adding a statement in which cases lock-in effects to vendor-specific cloud services are acceptable (e.g. value short time-to-market higher than risks because of lock-in effects, avoid lock-in effects by using open standards and platforms, etc.).

Customers

Customer Characteristics

Describe the characteristics of typical customers who are ideal, potential users for the new SaaS solution.

Do describe whether it will be a B2B or B2C solution.

Do include quantitative data (e.g. typical size of a customer in number of users, number of transactions, duration of use of the solution in hours/month, etc.).

Do include information about customers' locations (e.g. countries, languages, etc.).

Consider specific technical limitations of you customers concerning internet access (e.g. particularly slow or unstable internet access).

Consider mentioning expected changes in customer characteristics of the SaaS solution's target group (e.g. first we focus on..., later we extend our target group to...).

Consider mentioning real-world examples of customers (e.g. existing customers, well-known companies, examples from focus groups, etc.).

Number of Customers

Describe the anticipated number of customers short-term, mid-term, and long-term.

Do specify the planned number of customers and the planned number of users.

Consider describing multiple scenarios (e.g. optimistic, pessimistic).

Do estimate the numbers per pricing model (see also separate question below), if you plan to offer different pricing models. This is especially important if there will be a high-volume free or freemium plan.

Consider adding expected churn and conversion rates.

Usage Characteristics

Describe the anticipated usage scenarios and patterns for typical customers.

Do mention predictable usage spikes (e.g. end of month, certain events, etc.).

Do mention time ranges with predictable below-average usage (e.g. night, weekend, etc.).

Do describe the most important business transaction types and their expected volume per timeframe. Consider limiting yourself to the five most important ones.

Consider mentioning at least boundaries if exact numbers have not been worked out yet (e.g. at least x transactions per month per user..., not more than y transactions per second..., etc.).

Consider describing usage scenarios from a customer's perspective (e.g. uses smartphone for certain scenarios while traveling). Consider limiting yourself to the five most important ones.

Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.

Data Characteristics

Describe the anticipated data volume and structure of a typical customer.

Do focus on the outstanding aspects (e.g. entities with the by far largest number of instances).

Don't include detailed technical data models. They will be worked out during the implementation project. Focus on the business view instead.

Consider describing especially complex data structures from a business point of view (e.g. graph data structures, data structures with complex time reference, etc.).

Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.

Product

Client Technology

Describe specific requirements of customers regarding client technology (e.g. important client devices, browser support, etc.).

Don't include detailed UI specification here.

Don't go into too much technical detail. Focus on the user's perspective instead.

Do focus on differentiators (e.g. best user experience on iPhone, available on any device, etc.) instead of describing usually assumed client and UI features.

Do mention specific business requirements for certain client technologies (e.g. must support a specific browser version, must run on a specific Android version, must support certain screen sizes, etc.). Consider describing the reasoning behind it.

Avoid being vague and subjective (e.g. easy to use, self-describing).

Consider describing the need for supporting temporary offline work. Describe the business scenarios from a customer's point of view that should be enabled by offline capabilities.

API

Describe the role of APIs for the new SaaS solution.

Don't go into technical details. Focus on the business scenarios and the reasoning behind the APIs instead.

Do describe the target group for APIs (e.g. partners building plugins, integration scenarios built by power users). Consider describing their typical background (business and technology).

Do describe the most important business scenarios enabled by adding a public API to the SaaS solution. Consider limiting yourself to the five most important ones.

Extensibility

Describe necessary feature for customer-specific extensions and customizations.

Don't go into technical detail.

Do describe the most important business scenarios enabled by the required extensibility mechanisms. Consider limiting yourself to the five most important ones.

Business Model

Calculation

Describe the revenue and cost calculation for the new SaaS solution.

Do describe the planned pricing model (e.g. price plans, volume scaling, freemium offerings, free pricing tier, etc.).

Do describe the budget and its structure for building and running the SaaS solution (TCO, not just server costs).

Consider mentioning at least boundaries if exact numbers have not been worked out yet (e.g. must not be more expensive than..., we will charge at least..., etc.).

Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.

Consider adding a rough customer lifetime value calculation for a typical target customer.

Supporting Service

Describe the planned supporting services for the new SaaS solution (e.g. self-service administration portal, web-based support portal, automated rating and billing, etc.).

Do add quantitative data if available (e.g. number of anticipated support requests per user per year).

Do add any specific requirements regarding standards or certifications (e.g. documentation for ISO certification, applicable legal requirements for invoices, etc.).

Time Frame

Describe important dates for milestones relevant for the SaaS project (e.g. important trade shows, presentation for venture capitalists, etc.).

Do describe the features that are absolutely necessary for each milestone.

Consider the concept of the Minimum Viable Product.

Existing Artifacts

Describe existing components that have to be used in the SaaS development process (e.g. existing code base, third-party components that must be used, interfaces to existing systems, etc.).

Don't go into the technical details.

Do focus on existing components that have to be reused because of certain business requirements (e.g. algorithm which is part of a standard, existing contracts, presence on a certain digital market place, etc.). Consider describing the reasoning behind it.

Consider adding a system context diagram to describe the necessary interactions with existing, external systems.

Consider adding references to documentation and/or persons that could be useful during a more detailed, technical analysis.

<html>
<head>
</head>
<body>
<p><img src="/media/4e691c69-2cfa-47c4-b739-f16581a76336/80uJJg/time_cockpit/blog/2017/06/business-tie.png" />
</p>
<h2>Introduction
</h2>
<p>Whenever we start new SaaS projects, we try not to start with a too technical focus. We believe that the technical implementation has to reflect the business goals. Just focusing on technological aspects raises the danger of a project failure because of over-engineering or over-simplification. In this blog post we share important business-related questions that we use to prepare software architecture workshops for SaaS projects.
</p>
<h2>General Questions <br />
</h2>
<h3><a id="user-content-vision" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#vision"></a>Vision
</h3>
<p class="showcase">Add a summary of the vision for the new SaaS solution (i.e. what is the solution all about and what could it become).
</p>
<p>Don't go in too much detail. If available, add a reference to a more detailed <a href="https://en.wikipedia.org/wiki/Vision_document">vision and scope document</a>.
</p>
<h2><a id="user-content-project-scope" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#project-scope"></a>Project Scope
</h2>
<p>Describe the project scope in relation to the vision (i.e. what portion of the long-term vision should be addressed in the current project).
</p>
<p>Consider describing the scope of the current project as well as a rough sketch of the scopes of downstream projects.
</p>
<h1><a id="user-content-innovation" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#innovation"></a>Innovation
</h1>
<h2><a id="user-content-external-perspective" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#external-perspective"></a>External Perspective
</h2>
<p>Describe the key points of innovation of the new SaaS solution from a customer's perspective.
</p>
<p>Don't include a description of all functional and non-functional requirements.
</p>
<p>Do focus on those points that differentiate the new SaaS solution from existing internal or external products.
</p>
<p>Consider limiting yourself to the five most important innovations.
</p>
<p>Consider using the <a href="https://en.wikipedia.org/wiki/Blue_Ocean_Strategy#Concept">Blue Ocean Strategy</a> while working on these question.
</p>
<h2><a id="user-content-internal-perspective" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#internal-perspective"></a>Internal Perspective
</h2>
<p>Describe how the new SaaS solution will fundamentally change internal aspects of your company.
</p>
<p>Don't include existing processes and structures that remain more-or-less unchanged.
</p>
<p>Do describe fundamental changes to
</p>
<ul>
<li>business processes,
</li>
<li>organizational structures and
</li>
<li>financing.
</li>
</ul>
<p>Consider describing fundamental changes to your company's <a href="https://en.wikipedia.org/wiki/Value_chain">value chain</a>.
</p>
<p>Consider limiting yourself to the five most important changes.
</p>
<p>Consider using the <a href="https://en.wikipedia.org/wiki/Business_Model_Canvas">Business Model Canvas</a> while working on these question.
</p>
<h1><a id="user-content-target-environment" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#target-environment"></a>Target Environment
</h1>
<h2><a id="user-content-public-cloud-vs-private-cloud" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#public-cloud-vs-private-cloud"></a>Public Cloud vs. Private Cloud
</h2>
<p>Specify the extent to which the new SaaS solution focuses on Cloud Computing.
</p>
<p>Do mention a potential focus on a specific public cloud platform (e.g. <em>Microsoft Azure</em>, <em>Amazon AWS</em>, <em>Google Cloud Platform</em>). If there is a specific focus, consider describing the reasoning behind it.
</p>
<p>Do explicitly state whether the entire software solution must be installable on-premise in customers' or partners' data centers. If this is necessary, consider describing the maturity of customers' private clouds that can be assumed.
</p>
<p>Do mention potential bring-your-own-subscription scenarios (e.g. install SaaS solution in a public cloud environment owned and controlled by a partner).
</p>
<p>Don't go into technical details regarding used cloud services, cloud architecture patterns, etc. This will be part of downstream architecture workshops.
</p>
<h2><a id="user-content-limitations" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#limitations"></a>Limitations
</h2>
<p>Mention limitations regarding public cloud services used in the new SaaS solution. Consider describing the reasoning behind it (e.g. specific legal requirements, avoid lock-in effects, etc.).
</p>
<p>Consider potential regional limits (e.g. data centers must be inside the EU).
</p>
<p>Consider certification requirements (e.g. ISO 27018; see e.g. <a href="https://www.microsoft.com/en-us/trustcenter/compliance/complianceofferings">compliance offerings in Azure Trust Center</a> for examples).
</p>
<p>Consider specific requirements for used cloud services considering availability and performance SLAs (<em>Service Level Agreements</em>; see e.g. <a href="https://azure.microsoft.com/en-us/support/legal/sla/">Azure SLAs</a> for examples).
</p>
<p>Consider required support for specific standards (e.g. communication standards like <em>AMQP</em>, authentication standards like <em>OpenID Connect</em>, etc.).
</p>
<p>Consider adding a statement in which cases lock-in effects to vendor-specific cloud services are acceptable (e.g. value short time-to-market higher than risks because of lock-in effects, avoid lock-in effects by using open standards and platforms, etc.).
</p>
<h1><a id="user-content-customers" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#customers"></a>Customers
</h1>
<h2><a id="user-content-customer-characteristics" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#customer-characteristics"></a>Customer Characteristics
</h2>
<p>Describe the characteristics of typical customers who are ideal, potential users for the new SaaS solution.
</p>
<p>Do describe whether it will be a B2B or B2C solution.
</p>
<p>Do include quantitative data (e.g. typical size of a customer in number of users, number of transactions, duration of use of the solution in hours/month, etc.).
</p>
<p>Do include information about customers' locations (e.g. countries, languages, etc.).
</p>
<p>Consider specific technical limitations of you customers concerning internet access (e.g. particularly slow or unstable internet access).
</p>
<p>Consider mentioning expected changes in customer characteristics of the SaaS solution's target group (e.g. first we focus on..., later we extend our target group to...).
</p>
<p>Consider mentioning real-world examples of customers (e.g. existing customers, well-known companies, examples from focus groups, etc.).
</p>
<h2><a id="user-content-number-of-customers" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#number-of-customers"></a>Number of Customers
</h2>
<p>Describe the anticipated number of customers short-term, mid-term, and long-term.
</p>
<p>Do specify the planned number of customers and the planned number of users.
</p>
<p>Consider describing multiple scenarios (e.g. optimistic, pessimistic).
</p>
<p>Do estimate the numbers per pricing model (see also separate question below), if you plan to offer different pricing models. This is especially important if there will be a high-volume free or <a href="https://en.wikipedia.org/wiki/Freemium">freemium</a> plan.
</p>
<p>Consider adding expected churn and conversion rates.
</p>
<h2><a id="user-content-usage-characteristics" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#usage-characteristics"></a>Usage Characteristics
</h2>
<p>Describe the anticipated usage scenarios and patterns for typical customers.
</p>
<p>Do mention predictable usage spikes (e.g. end of month, certain events, etc.).
</p>
<p>Do mention time ranges with predictable below-average usage (e.g. night, weekend, etc.).
</p>
<p>Do describe the most important business transaction types and their expected volume per timeframe. Consider limiting yourself to the five most important ones.
</p>
<p>Consider mentioning at least boundaries if exact numbers have not been worked out yet (e.g. at least x transactions per month per user..., not more than y transactions per second..., etc.).
</p>
<p>Consider describing usage scenarios from a customer's perspective (e.g. uses smartphone for certain scenarios while traveling). Consider limiting yourself to the five most important ones.
</p>
<p>Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.
</p>
<h2><a id="user-content-data-characteristics" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#data-characteristics"></a>Data Characteristics
</h2>
<p>Describe the anticipated data volume and structure of a typical customer.
</p>
<p>Do focus on the outstanding aspects (e.g. entities with the by far largest number of instances).
</p>
<p>Don't include detailed technical data models. They will be worked out during the implementation project. Focus on the business view instead.
</p>
<p>Consider describing especially complex data structures from a business point of view (e.g. graph data structures, data structures with complex time reference, etc.).
</p>
<p>Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.
</p>
<h1><a id="user-content-product" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#product"></a>Product
</h1>
<h2><a id="user-content-client-technology" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#client-technology"></a>Client Technology
</h2>
<p>Describe specific requirements of customers regarding client technology (e.g. important client devices, browser support, etc.).
</p>
<p>Don't include detailed UI specification here.
</p>
<p>Don't go into too much technical detail. Focus on the user's perspective instead.
</p>
<p>Do focus on differentiators (e.g. best user experience on iPhone, available on any device, etc.) instead of describing usually assumed client and UI features.
</p>
<p>Do mention specific business requirements for certain client technologies (e.g. must support a specific browser version, must run on a specific Android version, must support certain screen sizes, etc.). Consider describing the reasoning behind it.
</p>
<p>Avoid being vague and subjective (e.g. easy to use, self-describing).
</p>
<p>Consider describing the need for supporting temporary offline work. Describe the business scenarios from a customer's point of view that should be enabled by offline capabilities.
</p>
<h2><a id="user-content-api" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#api"></a>API
</h2>
<p>Describe the role of APIs for the new SaaS solution.
</p>
<p>Don't go into technical details. Focus on the business scenarios and the reasoning behind the APIs instead.
</p>
<p>Do describe the target group for APIs (e.g. partners building plugins, integration scenarios built by power users). Consider describing their typical background (business and technology).
</p>
<p>Do describe the most important business scenarios enabled by adding a public API to the SaaS solution. Consider limiting yourself to the five most important ones.
</p>
<h2><a id="user-content-extensibility" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#extensibility"></a>Extensibility
</h2>
<p>Describe necessary feature for customer-specific extensions and customizations.
</p>
<p>Don't go into technical detail.
</p>
<p>Do describe the most important business scenarios enabled by the required extensibility mechanisms. Consider limiting yourself to the five most important ones.
</p>
<h1><a id="user-content-business-model" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#business-model"></a>Business Model
</h1>
<h2><a id="user-content-calculation" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#calculation"></a>Calculation
</h2>
<p>Describe the revenue and cost calculation for the new SaaS solution.
</p>
<p>Do describe the planned pricing model (e.g. price plans, volume scaling, freemium offerings, free pricing tier, etc.).
</p>
<p>Do describe the budget and its structure for building and running the SaaS solution (<a href="https://en.wikipedia.org/wiki/Total_cost_of_ownership">TCO</a>, not just server costs).
</p>
<p>Consider mentioning at least boundaries if exact numbers have not been worked out yet (e.g. must not be more expensive than..., we will charge at least..., etc.).
</p>
<p>Don't go into too much details. Rough estimations that demonstrate the fundamental concepts are enough.
</p>
<p>Consider adding a rough <a href="https://en.wikipedia.org/wiki/Customer_lifetime_value">customer lifetime value</a> calculation for a typical target customer.
</p>
<h2><a id="user-content-supporting-service" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#supporting-service"></a>Supporting Service
</h2>
<p>Describe the planned supporting services for the new SaaS solution (e.g. self-service administration portal, web-based support portal, automated rating and billing, etc.).
</p>
<p>Do add quantitative data if available (e.g. number of anticipated support requests per user per year).
</p>
<p>Do add any specific requirements regarding standards or certifications (e.g. documentation for ISO certification, applicable legal requirements for invoices, etc.).
</p>
<h1><a id="user-content-time-frame" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#time-frame"></a>Time Frame
</h1>
<p>Describe important dates for milestones relevant for the SaaS project (e.g. important trade shows, presentation for venture capitalists, etc.).
</p>
<p>Do describe the features that are absolutely necessary for each milestone.
</p>
<p>Consider the concept of the <a href="https://en.wikipedia.org/wiki/Minimum_viable_product">Minimum Viable Product</a>.
</p>
<h1><a id="user-content-existing-artifacts" class="anchor" href="https://github.com/rstropek/Samples/blob/master/SaaSArchitecture/SaaS-Project-Business-Questions.md#existing-artifacts"></a>Existing Artifacts
</h1>
<p>Describe existing components that have to be used in the SaaS development process (e.g. existing code base, third-party components that must be used, interfaces to existing systems, etc.).
</p>
<p>Don't go into the technical details.
</p>
<p>Do focus on existing components that have to be reused because of certain business requirements (e.g. algorithm which is part of a standard, existing contracts, presence on a certain digital market place, etc.). Consider describing the reasoning behind it.
</p>
<p>Consider adding a <a href="https://en.wikipedia.org/wiki/System_context_diagram">system context diagram</a> to describe the necessary interactions with existing, external systems.
</p>
<p>Consider adding references to documentation and/or persons that could be useful during a more detailed, technical analysis.
</p>
</body>
</html>
comments powered by Disqus

Rainer Stropek

Rainer Stropek

Co-founder, architect, developer

Bio

I am co-founder and CEO of the company software architects and have been serving this role since 2008. At software architects my team and I are developing the award-winning SaaS solution time cockpit. Previously, I founded and led IT consulting firms that worked in the area of developing software solutions based on the Microsoft technology stack.

In my work I focus on .NET development and software architecture. I have written some books and articles on C#, database development, Windows Azure, Windows 8 development, WPF, and Silverlight. Regularly I speak at conferences, do workshops and conduct trainings in Europe and the US. Since 2010 I have been MVP for Windows Azure.

I graduated the Higher Technical School Leonding (AT) for MIS with honors and hold a BSc (Hons) Computer Studies of the University of Derby (UK).

Contact

Twitter: @rstropek
Facebook
Google+
Xing
LinkedIn

Authors