1. 1. Functional Requirements
Rushing into implementation without fully understanding a project's requirements sets you up for disaster. It can force you to rebuild things. This list of questions provides you with a starting point to help you understand the project size, major implementation tasks, and possible bottlenecks. Augment these questions with more specific questions of your own that dig into the details of the project.
One of the main things to grasp is the motivation behind the project and the decisions that led the client to choose a website for the project. If you understand this, you can define the primary focus areas and concerns. This allows you to allocate more resources to the most important areas.
- What are the project goals?
- What is the target audience?
- What does the client need to track to define success of the project (e.g. key performance indicators like increased traffic, sales, etc.)?
- Is the web site new, a redesign, or a migration?
- What type of a project is it (e.g. marketing, e-commerce, corporate, intranet, application, etc.)?
- Is this a stand alone project or is it part of a larger initiative? How does it fit within a larger initiative?
- Is the web site mostly static or dynamic?
- Is content context sensitive (e.g. personalization)?
A number of factors influence your design decisions. For example, government projects require strict accessibility guidelines to be followed. Other projects may require a heavy focus on mobile and/or new technologies. These questions help you find the constraints that drive the decisions in your design process.
- Which web standards and accessibility requirements does the project need to support (e.g. HTML5, Section 508)?
- Are there any particular requirements around the final HTML code that you need to consider?
- Does the site use a responsive design (recommended) or a separate mobile only site?
- What optimizations do mobile devices require?
- Are there existing wireframes or templates that need to be considered?
- Are there any requirements for or against third party frameworks (e.g. bootstrap, jQuery)?
- Are there any specific browsers or browser versions that need to be supported (e.g. older browsers like IE 7)?
Content and Assets
The content and business processes of the project requires are another key focus of this phase. You need to gather as many details as possible about the different types and amounts of content in the project. You also need to understand the details of the processes for adding, editing, and removing content from the site.
- What different types of structured content are planned (e.g. news, blogs, events)?
- What relationships do different content items have (e.g. News items have one or more authors or are related to other news based on content editor
- Do you need categorization and/or tagging of content? How does it need to work?
- What is the expected sitemap?
- How many pages does the web site have?
- What is the expected content growth for each type of content (month, year, decade)?
Content workflow / life-cycle
- What is the mix of new and imported/migrated content?
- Is there any approval processes for publishing content?
- Does any content have publishing timeframe requirements (e.g. an expiration date)?
- Does the project archive or remove any content items automatically (e.g. news articles older than 1 year should be archived and not visible on live site)?
- How often do you expect content to be updated?
- How long can content be cached for better performance?
- Where do you manage/create content?
- Does content need to be deployed through multiple environments (e.g. staging to production)?
Digital assets (files)
- How many digital assets does the project require?
- What types and sizes are these digital assets?
- Do digital assets require categorization/tagging?
- Do you need to secure access to any of the digital assets?
- Do you require any approval processes for your digital assets?
- Are some of the media assets shared in multiple locations?
- Does the project require a CDN for delivery of digital assets?
Multilingual websites require more considerations than sites with one language and adding multilingual functionality after the fact can be difficult. As such, you need to understand the current and future needs for the project as they relate to multiple cultures and regions.
- Does the project require multiple cultures?
- What is the strategy for creating and displaying culture specific content?
- Does the project require localization of the administration interface?
- How are page URLs different for different cultures?
- Will content be shared by multiple cultures?
- Does content need to fall back to another culture if it isn't available in another?
Integration with other systems
Many projects requires integration with third party components, systems, or technologies. Explore these integrations right from the start because the type and complexity of the integration influences project effort and timeline significantly.
- What do you need to integrate?
- Do you need to synchronize data? What kind of data?
- Is synchronization one way or two?
- Which system is the system of record, or source of truth, for the data?
- What happens if one system is unavailable? What happens when it becomes available after an outage?
- What is the maximum time both systems can be out of sync?
- What is the data throughput or bandwidth limitations of the external system?
These questions deal with some larger features and functionality that are native to Kentico and can be implemented any number of ways.
- What is the flow of the shopping cart checkout process?
- What are the order payment and shipping requirements?
- What is the size of your product catalog? What is the expected growth?
- What types of products (e.g. donations, memberships, downloadable products) and product options are there (e.g. phone accessories, different t-shirt sizes and colors)?
- What are the pricing requirements (e.g. price lists, discounts, etc.)?
- Is the organization PCI compliant? What are the expectations for the new site?
- Are there any requirements to integrate with an ERP or PIM?
- Are there any special business logic or transaction processes to consider?
- Are there any special tax related requirements?
- Are you selling in multiple region with special requirements (e.g. payment, shipping, taxation, etc.)?
- What is the data retention plan for online marketing data (e.g. visitors and their activities)?
- What are the email throughput requirements (e.g. how quickly do you need an email campaign with 50K subscribers to be sent)?
- When running an email campaign are there strict requirements for delay in email delivery?
- Do you expect high traffic events like targeted campaigns driving significantly more users to the site than normal?
- What kinds of personalization are needed?
- Do you need A/B Testing and/or multi-variant testing?
- How much flexibility do business users need to manage things like personalization without needing a technical resource?
- What types of authentication do you need (e.g. Forms, AD, Claim-based, Single-Sign-On)?
- How many registered users and content editors do you expect?
- What types of user roles and what kinds of permissions do you need?
- Are any web site sections restricted?
- Is SSL required?
- What content and digital assets are searchable?
- Do you need to search external sources?
- How do you need to present search results (ordered, categorized, filtered etc.)?
- Are there any special search functions you need (e.g. autocomplete, faceted search, etc.)?
Here are some example scenarios to demonstrate how knowing or not knowing the answers to these questions can help or hurt your project.
Based on the questions, we knew that online marketing functionality will be used for this project. One of the on-line marketing features is content personalization which will need to be applied on landing pages for campaigns. The client wants to perform the changes by themselves.
This information leads you to decide (in the planning phase) that you should use MVC widgets rather than writing personalization conditions in code so that editors can personalize content in the future without needing to get developers involved. Failing to ask this question and take the answer into consideration could lead to significant redesign work, project delay or present hurdles for editors in the future.
When asking about how many pages the client is planning to have on the web site, it is discovered that they plan to have millions of news articles.
This requirement is a red flag, as the normal way to store this data has limitations that can affect performance on the front-end and cause issues with updating it in the back-end. In order to best prepare for the planning phase, we should ask follow up questions regarding topics such as security and workflow requirements to help decide between the other options for data storage.
As part of the project, the client requested an integration with an existing 3rd party ERP system. Upon subsequent discussion, it turned out that the system was used exclusively as product data repository and there was no other software connected to it apart from the existing web site.
Since the client did not have any other use for the system once Kentico's E-commerce was set up, it was decided to replace the existing system with Kentico. This simplified integration from having to implement a two way synchronization, to simple single-run migration tool. Failing to realize the necessary scope of the integration would have led to development of costly and ultimately useless two way integration.