2.1. Mapping Requirements
When analyzing the functional requirements, we recommend the following approach for mapping requirements to features and functionality in Kentico. Doing this up front will give you the benefit of having a better idea of the time and resources necessary. Proper research and planning lays the groundwork for realistic goals so that you avoid the panic and delays that come from setting un-achievable goals.
Get familiar with built-in functionality
Selecting the right Kentico functionality for any given requirement requires you to be familiar with what Kentico offers. As with anything, you will become more familiar with Kentico functionality and how to use it over time, but where should you start? Thankfully, there are many resources available to you. We recommend starting with the below:
- Attend Kentico training (both e-learning and instructor-led are available)
- Read the Kentico documentation
- Search Kentico devnet or Kentico stackoverflow
- Watch videos on the Kentico YouTube channel
- Contact Kentico support (for general questions or problems regarding the core platform)
- Work with Kentico consulting (for questions or problems regarding customization)
Evaluate built-in functionality
Once you narrow it down to a feature you think is suitable for your purpose, it is a good idea to evaluate it more thoroughly through a proof of concept. Doing a proof of concept validates whether or not all the functional requirements can be achieved.
If you find that the selected feature meets most but not all of your functional requirements, consider whether you can extend the feature to meet all requirements.
Extend built-in functionality
If you find that you need to extend Kentico to meet some functional requirement, you need to do three things:
- Make sure that you've checked the resources mentioned at the beginning of this section for other features that might accomplish what you need to do. This avoids creating a solution to an already solved problem.
- Research the available extensibility options of built-in functionality, being conscious of customization best practices in Kentico documentation.
- Compare extending Kentico functionality versus building something completely custom. When doing the comparison, consider the viability of one versus the other with regard to the effort (in time and cost), the ease of use from a business or other end user's perspective, and the technical complexity.
Build custom functionality
If you find that there is no suitable Kentico feature that meets your needs, or you determine that extending Kentico is not a viable option, do the following:
- Architect the solution with low maintenance in mind by using as much built-in functionality as possible.
- Design the solution to be extensible and scale-able for the future.
- Investigate how other built-in functionality influences the solution (e.g., content staging, web farm, workflow).