As a prerequisite for the rest of this article, please consider the following guide:
[[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 =
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:.
=== Top-Level architecture ===