Project management

First, you need to know where you are going

In my opinion, a successful project requires a clear and PoC-tested target state, which is the goal of the project. In projects, the steps to reach that target state are defined and monitored. These steps can be defined, for example, in Jira as epics, which in turn consist of tasks. The order of execution of different epics and tasks is largely determined by the dependencies and prioritization between them.

In short, it could be said that without proper knowledge and definition of business processes and an architectural picture built on top of these, it is difficult to manage a project in a structured way. The so-called "move fast, break things" model can often lead to challenges that are difficult to fix if the starting points are wrong and a lot of code has already been created on top of an incorrect initial understanding.

Here too, naturally, there is no single right way to do things. If the goal is unclear and it is an acceptable state, then starting the implementation quickly without a clear goal using the "move fast, break things" model can be a good solution. It is essential to understand the consequences of different choices right from the start.

In smaller projects, where less code is created, the impact of the consequences is smaller and it is easier to modify the implemented code later according to the increased understanding. As the amount of code increases, this becomes more difficult and slower to do. In addition to these, the complexity of the implementation and changes in the implementation team have a big impact. In order to avoid the risks resulting from this, documentation and comprehensive JUnit tests play a significant role.

In real life, project management is usually somewhere between a "well-defined" and a "move fast, break things" models.