Have you heard of The Joel Test? It's simple list of 12 yes or no questions. No, wait!Don't follow that link! It's almost 20 years old and bears almost no relevance to modern software development. Who does daily builds in the world of CI/CD? Instead of spec and schedule you have backlogs and sprints. I have sometimes thought about writing new version of Joel Test for agile world.
I've been thinking about this because a bit over month ago I started working with a small team and their tools and practices remind me of people developing web sites in early 2000s starting with the fact that they use Java and PHP. I'm left to wonder are they unprofessional or am I setting my standards too high?
One of the problems is that web created a lot of developers that have never used an IDE or a debugger. How many people using Vim have configured it to get code navigation to work instead of just using grep from command line? Do people even know how to use debugger? Did you know that there actually is debugger for PHP? And you can use it from Vim?
I think you either develop software in a project that works on a specification towards a release or you implement items from product backlog using sprints or Kanban. Anything else is just too unplanned to be professional. I think too many developers think project plan or product backlog is just bookkeeping for managers and not a way to organise day-to-day work. This has two consequences. Firstly, it disconnects the plan or the backlog from the actual work turning them
into a piece of fiction that gives only illusion of control. Secondly, developers have to use some other way to organise their work. Most likely they don't organise it at all and the result is "it's ready when it's ready".
Charity MajorsIf you're scared of pushing to production on Fridays, I recommend reassigning all your developer cycles off of feature development and onto your CI/CD process and observability tooling for as long as it takes to ✨fix that✨.18:34 PM - 15 Apr 2019
What if you don't have CI/CD process or observability tooling? What if your test automation hasn't been run in ages and therefore they all fail? I've been venting about things that bother me. What do you consider as a minimal level of software engineering?