I'm not sure if that's a good thing, or a bad thing - but it's certainly a thing.
Anyway - here's that list - slightly updated for 2018... it you've seen my talk on Unit Testing recently, you might recognise a few entries.
(opinions are my own, yada yada yada)
Anyway - here's that list - slightly updated for 2018... it you've seen my talk on Unit Testing recently, you might recognise a few entries.
(opinions are my own, yada yada yada)
- It's easier to re-build a system from its tests than to re-build the tests from their system.
- You can measure code complexity, adherence to standards and test coverage; you can't measure quality of design.
- Formal and flexible are not mutually exclusive.
- The tests should pass, first time, every time (unless you're changing them or the code).
- Test code is production code and it deserves the same level of care.
- Prototypes should always be thrown away.
- Documentation is good, self documenting code is better, code that doesn't need documentation is best.
- If you're getting bogged down in the process then the process is wrong.
- Agility without structure is just hacking.
- Pair programming allows good practices to spread.
- Pair programming allows bad practices to spread.
- Team leaders should be inside the team, not outside it.
- Project Managers are there to facilitate the practice of developing software, not to control it.
- Your customers are not idiots; they always know their business far better than you ever will.
- A long list of referrals for a piece of software does not increase the chances of it being right for you, and shouldn't be considered when evaluating it.
- You can't solve a problem until you know what the problem is. You can't answer a question until the question's been asked.
- Software development is not complex by accident, it's complex by essence.
- Always is never right, and never is always wrong.
- Interesting is not the same as useful.
- Clever is not the same as right.
- The simplest thing that will work is not always the same as the easiest thing that will work.
- It's easier to make readable code correct than it is to make clever code readable.
- If you can't read your tests, then you can't read your documentation.
- There's no better specification document than the customer's voice.
- You can't make your brain bigger, so make your code simpler.
- Sometimes multiple exit points are OK. The same is not true of multiple entry points.
- Collective responsibility means that everyone involved is individually responsible for everything.
- Sometimes it's complex because it needs to be; but you should never be afraid to double check.
- If every time you step forward you get shot down you're fighting for the wrong army.
- If you're always learning you're never bored.
- There are no such things as "Best Practices". Every practice can be improved upon.
- Nothing is exempt from testing. Not even database upgrades or declarative tools.
- It's not enough to collect data, you need to analyse, understand and act upon that data once you have it.
- A long code freeze means a broken process.
- A test hasn't passed until it has failed.
- A test that can't fail isn't a test.
- If you give someone a job, you can't guarantee they'll do it well; If you give someone two jobs you can guarantee they'll do both badly
- Every meeting should start with a statement on its purpose and context, even if everyone in the meeting already knows.