I keep having very flat / underdeveloped plus grainy negatives despite the fact that I think I have everything under control. Something must be wrong with my development process and I'd like to discover what it is because I'm getting pretty frustrated. I will appreciate very much the help of experienced people.

Films used: mostly Ilford HP5, FP4, PAN 100, Delta 400
Developers: ID 11 1:1, or Microphen 1:1, or Perceptol 1:0
Fixer: Ilford Rapid Fixer
Temperature: 20 (if 1-2 degrees more or less I adjust the development time according to Ilford's conversion table)
Thermometer: 2 to crosscheck :-)
Water: tap water (I haven't tried distilled water yet to test the result)
Agitation: 4x at the beginning, then 1x every 30 seconds

Camera exposure: I guess it's correct because if I do slides (which I don't develop myself) they are correctly exposed. So I assume that my negatives are exposed correctly and then ruined during the development process.

If you find anything wrong with the above procedure or if you have any ideas what else it can be, please let me know. Many thanks!