Development Principles

The principles used in the making of FLOW3 are here for a reason other than showing them off. Hours of discussions, years of experience and much consideration were needed to outline how the framework the new CMS should be based on would be developed.

The journey is what matters

We develop FLOW3 adhering to the principles of Agile Software Development. That means we work in small, iterative steps which continuously result in usable software. We abandon roadmaps with a final goal in favor of a direction with markers for the journey. We utilize experience from the process instead of making big plans based on assumptions.

Focus on the essential

The intuitive principles of Domain-Driven Design help developers tackling the complexity of their software. While FLOW3 doesn't require the adoption of DDD by its user, it offers first-class support for it. Our code should be as readable as a good book.

Test, Develop, Test

Unit Tests are written before new features and bugfixes are implemented. Our tests document the assumptions we have about the code we produce. Changes are committed early (usually every day) to minimize integration surprises. All submitted code is tested and checked automatically to comply with our coding standards.

Encapsulated to be open

We encourage the development of well encapsulated, reusable code and share it in a common package repository. But we're pragmatic, too - code which won't be reused doesn't need to be reusable. And if we change our mind later, we trust on Refactoring.