I created new section and category, software development philosophy, I  get an idea to name it like this from wikipedia's article, List of software development philosophies

Since in that list there is no refinement, I would like to mention it.

According to wikipedia, program refinement is the verifiable transformation of an abstract (high-level) formal specification into a concrete (low-level) executable program.

So, what that exactly mean?

In Delphi it look something like this:

procedure SortFile (filename:string);
begin
// Read file into memory
// Sort the lines
// Write file out of memory
end;

Later you develop your code.

I started to use this approach few months ago, and it is very usefull, when I start coding like this, usually my code look much better.

I took the code, and idea of writing all this from here.