TDD, BDD, DDD, Agile, SAFe, Scrum, Kanban, XP… there’s a lot of ways to skin a cat write code in a professional environment. I take pride in being a person who is a non-ideologue when it comes to my code. There are many good ways of working, and they are all context-dependent. You can’t apply the same things that worked when you were a two-person startup operating out of the proverbial garage and expect them to work once your hypothetical unicorn has reached a thousand-plus developers. ...| My place to put things
Anyone writing code professionally in December 2021 will remember the “fun”oftheLog4Jvulnerability. For those that weren’t - this was a critical security error that allowed attackers to run any code they wanted on your servers. The root cause was a logging library, Log4J, that is used by most projects that are writting in Java. It’s usually used to write code something like: log.info("Process completed successfully"); which will then appear in your logs, allowing you to track your app...| Posts on My place to put things
Agile tells us that the most critical thing for getting software right is not up front design, but getting something out there and used, and then incorporating feedback. By getting feedback early, you are able to respond faster, changing your (initially incorrect) design in small steps towards a better solution. This works better in practice than designing everything at the start very carefully, which feels rigid and inflexible in the face of new information over the course of a project.| Posts on My place to put things
It is upsettingly easy to work hard without being productive. The Lean Startup includes a quote I really liked: “[People] feel that a good day is one in which they did their job well all day.” The point being that this doesn’t account for whether you are doing the right work. This is a really common trap to fall in to. I know I have often worked really hard on something and produced code I’m very happy with, only to talk to my boss or the client and find that nobody else seems to be n...| Posts on My place to put things
A theme of the last few books I’ve read has been user testing. Specifically, that it is completely unreasonable to suggest that you could produce a system that will work smoothly in production without first getting several actual human users unfamiliar with your system, from your clients or in a related industry, to road-test the system. I think anyone can see that this is a good idea. It’s far too easy to make assumptions about the users’ requirements or use cases. Without user testing...| Posts on My place to put things