Difference between revisions of "HowTo:Design a Customizing"
Line 8: | Line 8: | ||
As a prerequisite for the rest of this article, please consider the following guide: | As a prerequisite for the rest of this article, please consider the following guide: | ||
[[HowTo:Organize_UBIK_Development]] | [[HowTo:Organize_UBIK_Development]] | ||
+ | |||
+ | The above article describes how to manage your project organizationally, but only implicitly covers how to deliver a solution to your problem. | ||
+ | Assuming you have set up issue tracking, source code management and documentation, the following steps are recommended. | ||
+ | |||
+ | === For the start of a project === | ||
+ | # Collect the requirements from the customer | ||
+ | # Negotiate a functional specification with the customer, to define the scope of the project | ||
+ | # Design the top-level architecture | ||
+ | # Use the top-down approach to create a Project Structure Plan consisting of Epics, Features and User Stories | ||
+ | # Make an effort estimation based on the Project Structure Plan to negotiate a budget with the customer | ||
+ | |||
+ | === For a topic throughout the project === | ||
+ | # Collect the requirements for that topic from the customer or project leader | ||
+ | # Create a functional design | ||
+ | # Create a technical design | ||
+ | ## For the choice of appropriate {{UBIK}} tools and features, search the Wiki as described in the respective section | ||
+ | ## Plan the architecture of your solution | ||
+ | ## Design a data model | ||
+ | ## Design the algorithm | ||
+ | # Perform the implementation | ||
+ | # Perform the QA including manual testing, automatic testing and reviews | ||
+ | # Update documentation | ||
+ | |||
+ | Make sure to maintain the Project Structure Plan for non-trivial tasks. In the rest of this article, best practices for the individual steps are described. | ||
= Architecture = | = Architecture = | ||
Line 14: | Line 38: | ||
On task level, architecture means defining which modules are taking care of what responsibility, and how they play together. | On task level, architecture means defining which modules are taking care of what responsibility, and how they play together. | ||
− | We recommend the architecture to satisfy the following restrictions | + | We recommend the architecture to satisfy the following restrictions. |
=== Top-Level architecture === | === Top-Level architecture === |
Revision as of 07:36, 14 August 2023
Customizing UBIK® is a complex endeavor. In this article, we aim to provide a guide and best practices making this task as straight-forward as possible.