I’ve spoken before about how a quick time out to grab a coffee can help you get to the bottom of a problem, but sometimes you need longer. You need time to switch off and think. I feel guilty about just sitting and thinking, despite trying mindfulness techniques, so for me, my best thinking comes … More Give yourself time to think
If you want a strong team of developers, give them autonomy. But what if they don’t want to take it? The ones in, or from, the big corporations who just won’t take the initiative? The ones who just want to be told what to do? I’ve said before that those are the waterfall people. The … More Naughtonomy
There’s been a popular stereotype about good programmers being productively lazy. Automating tasks to avoid work. It’s an easy thing to share but I don’t think it’s quite true. It’s about reducing inefficiency. It’s not that developers don’t want to work, we want to do interesting work. Not repetitive work, not work that gets binned, … More ! Not the lazy programmer
Once you start getting experience, you’ll find other developers asking for your help. I started tutoring at university so that I could help, and reflect and improve my own knowledge. Mentoring isn’t about answers. It’s about learning how to find the answer. The most interesting problems we deal with are the ones that no-one knows … More How to mentor
When I was a tutor at university, there were three main types of students I saw in the lab: the Googlers who would search for an answer or three (in those days Experts Exchange, today Stack Overflow), mangle something together then either figure it out and simplify or give up ; the ones who cared … More Is software your vocation or just a job?
Reducing waste is one of the key concerns of agile development, and is a defining character for Kanban, where blockages are ruthlessly identified and resolved. Timeboxing provides a low-cost means of identifying waste and a framework for tackling it, but doesn’t provide many solutions on its own. For tasks that continually cause blockages, such as … More Reducing waste by automation
I’ve created teams from scratch and been brought in or promoted to lead existing teams. I’ve made a few mistakes, especially when starting, and I hope sharing them with you will help you to help your team faster. Responsibility When I started out, I often started a new team with a quick speech. And in … More Bootstrapping into a team
One of the challenges that Technical Leads face that isn’t always easy to resolve is making sure the whole team is involved in decisions. There is a large overlap between people who can think in code and people who are shy around other people. For some, the enthusiasm of the former can overcome the latter, … More Everyone has a voice
Following the Usable APIs guided conversation at CodeCraftConf, I wanted to capture some of the thoughts that came out. Starting an API (as a user or a developer) Does the API documentation include examples of usage (i.e. have they thought about the client) How mature is the API? How well maintained is it? How long … More Usable APIs follow-up
@joe_jag a developer who practices continuous improvement, with our without the support of am agile team. — craignicol (@craignicol) September 29, 2015 A developer who practices continuous improvement, with or without the support of an agile team. You care about being better. You consider code to be craft. You’re only happy when you deliver value, … More What is an agile developer?