Cogentos Core Principles

The basic idea behind the principles are as Einstein is reputed to have said:

“Make everything as simple as possible, but not simpler.”

This is a variation of Occams Razor which states:

“The simplest explanation that covers all the facts is usually the best.”

Either way we are seeking to work as economically as possible whilst at the same time been effectives in meeting requirements, so with that said the following are the core principles that drive the usage of the Cogentos Web Application Design Method:

Some documentation is essential, but not too much. Produce enough documentation to make the application easy to understand but don’t produce lots as its just not maintained.

Use an iterative approach, otherwise known as timeboxing. Break down the design and development into manageable chunks. Keep it simple. Don’t try to cover everything at once. Settle on a few important requirements for each release and then produce more releases. People learn as they go along. The users udually don’t know exactly what they want to start with but soon learn whats possible and what makes sense.

Don’t make unnecessary distinctions between business and system requirements. If you are developing a web application then you are developing a web application. Don’t spend time producing system independant business requirements. Instead produce requirements for your web application.

Involve the programmers early. Don’t produce a design and then give it to the programmers. They deserve better. Most programmers are excellent designers. In fact they are are usually the best designers.

Use whatever tools are appropriate for the job and use the ones you like. For example if you like Visio then use it. If you don’t like Visio then use something else. Another example is this. Say your database is going to be MySQL. If so then use the MYSQL Workbench to design your database. Don’t use an Entity Relationship Diagrammer. Use a database diagrammer. It’s quicker and does not introduce an artificial seperation between business entities or business objects and database tables. If you are going to cretae database tables then take about tables. Don’t talk about Enterprise Business Objects or other rubbish like that. A spade is a spade is a spade!