I've been putting some bits and bobs into the C Sharp Wiki that we have going at Hull.
This is my take on Creatve Laziness:
This is lazy in a good way. It means that rather than solve a problem I'll tend to build a machine to solve it, and then use the machine. It is this kind of thought process that got us to invent lawn mowers rather than spend all our time hacking at the grass with big knives.
As an example, if you wanted to get from a user an age value between 5 years and 100 years you could write some C# to do that. However, it would be more sensible to write something which would read a value and ensure that it is within a particular range. Then, when you need to read in a speed value between 0 and 70 you can use the same code to do it.
This is called generalising, where you make a more general solution than the specific problem requires, on the basis that you may be called to handle similar cases later. Of course you have to make sure that you don't use too much effort performing the generalisation, rather than repeating the task
This approach pays off in other ways as well. If you only write the code in one place; should you find a bug in the code or need a change in behaviour you only have to update it once.
So, form the habit of stepping back from what you are trying to do, and consider what you are really trying to do. Solve the slightly bigger problem. And never have to solve anything like it again.