Suggestions
Adam Tornhill
Founder & CTO at CodeScene, author Your Code as a Crime Scene
Adam Tornhill is a well-known programmer and the founder and CTO of CodeScene, a cutting-edge code analysis tool designed to enhance software development outcomes for businesses. With a unique background holding degrees in engineering and psychology, Adam brings a distinctive perspective to the tech industry. He is a prolific author, having written popular technical books such as Your Code as a Crime Scene, and is recognized as an international keynote speaker and software researcher.
Highlights
How many developers can leave before your codebase becomes unmaintainable? If you're involved in software development, you've likely heard of the "bus factor" -- but have you truly considered its impact on your codebase? This existential threat is often overlooked, despite the significant risk it poses.
New data reveals that proprietary software is just as susceptible to this risk as open-source projects. My new article for Forbes Technology Council presents the research findings together with strategies for measuring and mitigating the bus factor. Check it out.
"Can we make code so clear that even a 9-year-old with no programming experience can understand it?"
Last week, I decided to test this theory with my youngest son. I showed him the piece of code to the left in the image below and asked, "What do you think this does?" His response: absolutely no idea. I could sympathize with that -- it is hard to see the overall intent, even with my three decades of programming experience. Nested if-statements, magic numbers, complex boolean expressions -- you name the code smell: they are all there.
Next, I ran the code through CodeScene ACE, the automated refactoring tool. As soon as I showed my son the refactored code, he immediately said: "It's Minecraft!" 👍
That's the power of proper abstractions. The true advantage of modularizing a piece of code isn't that we get shorter functions. Rather, it's about transforming the context so that we can reason more effectively about the problem we're trying to solve. Extracting well-named, cohesive functions makes code easier to understand, maintain, and evolve. So, how clear is your codebase?
