Avoid stream of subconsciousness programming
Firstly a warning — some people have already defined "Stream of Consciousness Programming" to mean a sort of hypnotic state where, after you've been programming for a while, you start automatically putting stuff in the right place. That's absolutely not what I mean here. It's also an example of bad naming, and as a result I've had to improve the name to accurately get across what I'm talking about. So, what we're trying to avoid here is "Stream of Subconsciousness Programming".
Stream of Subconsciousness Programming is where the developer just pours out their thoughts into the code editor with no prior consideration of intent. The effect for other developers, when reading such code, is rather like being transported into someone else's dream. You will see clear problems and disconnects in thinking. Boundary conditions will not be handled well. There will be little thought as to failure modes. You will find yourself asking what their intent was. Then things get worse — since you can't figure out their intention, you start asking what was going through their mind. Then things get worse as you realise that there was very little going through their mind. Then things get worse as you realise the code is in production and doing something that does not have a strong definition. Any change to the code will make things worse. The only thing to do is to rewrite the code, if only you could figure out what it was intended to do in the first place.
A Stream of Subconsciousness Programmer is a "/ 10" programmer — i.e. they can easily keep a lot of good developers busy permanently.
Summary
- If you have a Stream of Subconsciousness Programmer on your team you are in deep trouble