I care about writing good code and help others doing it. Good code
does the job and is also easy to understand, test and maintain; it’s
also easy to delete, eventually. I care about writing focused,
meaningful tests. Good tests expose problems where they occur. They
give us the confidence in our code, and they’re fast, too. I care
about finding good abstractions, using appropriate means from the
object-oriented and functional toolboxes. I care about SOLID, YAGNI,
DRY and clean code, I’m careful to avoid yak shaving and am aware of
code and testing smells. I care about good naming.
I’m pragmatic and want to get things done. I know that perfect is the
enemy of the good. I know that it’s often best not to write custom
code. In the same vein, too much testing can do more harm than good. I
care about the business domain, because code needs a purpose. I
believe that programming is an activity by humans for humans.
I care about feedback and shortening feedback cycles. This means that
tests and deployments need to be fast, that monitoring needs to be
immediate. This means that features need to be small but meaningful
and the customer or internal stakeholder needs to be closely
involved. I believe in the usefulness of pairing. I believe that
pairing works for testers, designers and business analysts, too.
I believe that taking responsibility is not about accepting blame but
actively learning from your mistakes. I believe that people work best
in a safe environment focused on self-improvement and learning.