194 lines
5.9 KiB
Plaintext
194 lines
5.9 KiB
Plaintext
It's called software for a reason -- unlike hardware, we can CHANGE
|
|
it easily.
|
|
%
|
|
Why do you want to make it HARDER to change SOFT ware?
|
|
%
|
|
The only test that matters is if your code did what it was supposed to,
|
|
when it counts most, in production.
|
|
%
|
|
Stupid and simple beats fancy, delicate, and fast.
|
|
%
|
|
Let your environment be your test driver.
|
|
%
|
|
If you can't run your code easily, you can't easily test it.
|
|
%
|
|
Never write what you can steal.
|
|
%
|
|
If you have to explain how it works, even you won't understand
|
|
it tomorrow.
|
|
%
|
|
A name, while vital, can be changed.
|
|
%
|
|
Get something out the door now. Improve it later.
|
|
%
|
|
Running the same deterministic test driver on the same code 1000
|
|
times gives you no more confidence in its correctness than you got
|
|
in the first 10 times.
|
|
%
|
|
Have someone else write your test drivers.
|
|
%
|
|
Let your consumer write your test drivers by using your code --
|
|
observe and record what they do; that is the functionality that
|
|
MUST work, who cares about what you THINK must work.
|
|
%
|
|
A class does not try to do anything and a function is not trying
|
|
to be anything.
|
|
|
|
Classes try to be things and function try to do things.
|
|
%
|
|
If you are too worried about the style and format of code, then
|
|
you don't know how to program -- if you can't read well written
|
|
code in any format, you don't know what good code is.
|
|
%
|
|
If your assessment of code's quality is based upon its usage of
|
|
whitespace, you're reading the wrong programming language.
|
|
|
|
(Editor's Note: There is a language called "whitespace", where every
|
|
non-whitespace character is meaningless -- the mixing of newlines,
|
|
tabs, and spaces gives the meaning.)
|
|
%
|
|
In git:
|
|
|
|
Rebasing is a lie.
|
|
|
|
Cherry-picking is a fib.
|
|
|
|
Amending is cheating a little on your taxes, it's fine as long as
|
|
you don't get caught.
|
|
%
|
|
If you can't think in code, you're not thinking about code.
|
|
%
|
|
If you only think in code, you're not programming.
|
|
%
|
|
Use the compiler, not the CPU. (Use types, not raw memory.)
|
|
%
|
|
If you feel compelled to ban it, then you don't understand it.
|
|
|
|
We only fear that which we don't understand.
|
|
%
|
|
Debugging is easy; it's testing that's hard.
|
|
|
|
When debugging you just have to figure out what went wrong when
|
|
your program was used in a way that it must be used.
|
|
|
|
In testing, you have to figure out all the ways it might be used
|
|
and all of the ways it shouldn't be used.
|
|
%
|
|
Don't trust your inputs; trust your input types!
|
|
%
|
|
A strongly formatted string is not as good as a type system.
|
|
%
|
|
Learn to metaprogram -- why write code to do what you want, when
|
|
you can write the code that writes that code for everybody?
|
|
%
|
|
If you can't explain the difference between what I'm doing and what
|
|
you want, maybe it doesn't exist -- do you know what you want?
|
|
%
|
|
Are you getting paid by the line?
|
|
%
|
|
Be an environmentalist -- improve your environment every few months.
|
|
Take some time to add useful bells, whistles, and gadgets to your
|
|
personal programming tools.
|
|
%
|
|
Learn and use the 3 notebooks.
|
|
%
|
|
If you bring a laptop to a meeting, you aren't meeting.
|
|
%
|
|
If you called a meeting, I assume it's worth my time -- don't let
|
|
me down.
|
|
%
|
|
If your solution to the problem of "we're not getting things done
|
|
fast enough" is to do more things we don't need to do, I don't
|
|
think you correctly understand the problem.
|
|
%
|
|
Nobody ever made a ship faster with more dress-inspections.
|
|
%
|
|
Fear may motivate, but fun inspires.
|
|
%
|
|
Don't try to catch up to where I am-- I'm still moving forward.
|
|
Are you focused on getting to where I am, or are you focused
|
|
on moving?
|
|
%
|
|
The only constant in the universe is change -- your code will change,
|
|
either you or someone else will do it. Accept that.
|
|
%
|
|
If you have too many rules to program by, you have too little
|
|
understanding of how to actually program.
|
|
%
|
|
If you insist on deep code review of all code, how much do you
|
|
trust your developers?
|
|
%
|
|
If you don't trust your developers, why do you still trust your
|
|
HR department?
|
|
%
|
|
If you don't trust your developers to write good code, how can you
|
|
ever trust them to recognize good code when they review it?
|
|
%
|
|
If you don't trust your developers... what's your business plan?
|
|
%
|
|
Code is not an asset, it's a liability -- it's the only financial
|
|
way that "Technical Debt" makes sense. One does not make interest
|
|
or principal payments on assets.
|
|
%
|
|
I will fire you, as a co-worker or boss, if you don't measure up.
|
|
%
|
|
Feel free to quit, as my boss, if you think our working relationship
|
|
is bad.
|
|
%
|
|
Don't lie to me -- I'll act on those lies as if they're truth.
|
|
Now you've got more insanity on your plate.
|
|
%
|
|
If I'm complaining, I'm invested in our success.
|
|
%
|
|
If I'm demanding, I'm dedicated to our success.
|
|
%
|
|
If weekly status meetings were good and our new daily "standup"
|
|
status meetings are better, why aren't we having hourly status
|
|
meetings?
|
|
%
|
|
SCRUM: Another management philosophy that solves problems by having
|
|
more meetings. But, hey! At least it sounds cool!
|
|
%
|
|
SCRUM for dummies:
|
|
|
|
Have a problem? Have a meeting! Rinse and repeat.
|
|
%
|
|
SCRUM for dummies:
|
|
|
|
Mo' meetings, mo' problems
|
|
%
|
|
The SCRUM Hip Hop song:
|
|
|
|
"I got 99 meetings, but commits I got none!"
|
|
%
|
|
Advice for working with me:
|
|
|
|
If I am having a lot of fun, you should either be very confident
|
|
in your business, or you should be very scared for it.
|
|
%
|
|
If my intention was to write and commit the perfect code once and
|
|
never change it, I would be writing in binary.
|
|
%
|
|
When in doubt, program by successive approximation.
|
|
%
|
|
If you can explain it, you can code it. If you can't code it,
|
|
you can't explain it.
|
|
%
|
|
The most elegant piece of code is the empty line. How much elegant
|
|
code did you write today?
|
|
%
|
|
Programming is hard enough, even without having to remember your
|
|
extra arbitrary rules. Why do you want to make it harder?
|
|
%
|
|
If I have to beg your git server to make new branches, you're pining
|
|
for CVS.
|
|
%
|
|
Doing Agile - v, The art of trying to slow down the pace of
|
|
software development, in the pursuit of a faster pace of
|
|
software development.
|
|
%
|
|
Do you understand why I crack jokes at your standup meetings?
|
|
%
|
|
Don't bikeshed, plow ahead!
|
|
%
|