Have you ever worked on a project where people insisted that the team follow arbitrary rules?
There’s often a reason for the original ‘rule’ but like any Cargo Cult the reason has been long forgotten and lost over time leaving little behind but a blind adherance to a practice in the belief that it somehow magically bestows benefits on a project.
The best example of it for me that I see all the time on teams is the insistence on using fibonacci numbers when estimating.
I came across a commit recently that perfectly demonstrates the huge gulf that can exist between knowing there is a way to do something and truly understanding the reasons behind it.
Anyone who has tried their hand at web development has probably gone through the stages of learning about HTML and how the different elements are rendered on the page and then discovers CSS and how they can be styled to look like the beautiful sites we all know and love … or not. Usually not by a long way, especially when you’re starting out.
At this stage we’re normally producing a convoluted mess of unmaintainable styles applied to every element as needed. If we want a
<div> to have a red border then we add
style="border: 1px solid #ff0000" to it. Eventually we stumble across a blog post or tutorial that explains that this is a bad thing and that we should really be using CSS classes instead to apply styling.
Or “how to survive in a role where you are supposed to have technical skills when you don’t really have any”.
If you’ve spent any amount of time working in software development then sooner or later you will get to work on a team where there are one or more ‘less than productive’ developers. If you’re particularly unfortunate then you get to work with someone who is a complete negative net asset - they consume more time and effort than it would take to create the work they ‘produce’ and no one seems to notice that they never really contribute to getting project features completed and instead spend their days interrupting others and creating problems.
But they survive and seem to even thrive, probably being paid more than many other people on the team who are actually getting the work done. How do they do it? Well, these are their techniques intended to help you to spot them early, not to become one of them!