Home » Author Archives: Jim Bird (page 9)

Author Archives: Jim Bird

Jim Bird
Jim is an experienced CTO, software development manager and project manager, who has worked on high-performance, high-reliability mission-critical systems for many years, as well as building software development tools. His current interests include scaling Lean and Agile software development methodologies, software security and software assurance.

Why Scrum Won

scrumalliance-logo

In the 1990s and early 2000s a number of different lightweight ‘agile’ development methods sprung up. Today a few shops use Extreme Programming, including most notably ThoughtWorks and Industrial Logic. But if you ask around, especially in enterprise shops, almost everybody who is “doing Agile” today is following Scrum or something based on Scrum. What happened? Why did Scrum win ...

Read More »

Predictability – Making Promises you can Keep

agile-logo

Speed – being first to market, rapid innovation and conducting fast cheap experiments – is critically important to startups and many high tech firms. This is where Lean Startup ideas and Continuous Deployment come in. And this is why many companies are following Agile development, to design and deliver software quickly and flexibly, incorporating feedback and responding to change. But ...

Read More »

Health Checks, Run-time Asserts and Monkey Armies

devops-logo

After going live, we started building health checks into the system – run-time checks on operational dependencies and status to ensure that the system is setup and running correctly. Over time we have continued to add more run-time checks and tests as we have run into problems, to help make sure that these problems don’t happen again. This is more ...

Read More »

You can’t Refactor your way out of every Problem

software-development-2-logo

Refactoring is a disciplined way to clarify, retain or restore the design of a system as you make changes, and to help cleanup and correct the mistakes and mess that we all make as we work, to clear away the evidence of false starts and changes in direction and back tracking and to help fill in gaps and misunderstandings. As ...

Read More »

Should you care about Conway’s Law?

software-development-2-logo

Conway’s Law says that “organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.” [emphasis mine] This was an assertion made in the 1960s based on a small study which has now become a truism in software development (it’s fascinating how much of what we ...

Read More »

Bad Things Happen to Good Code

software-development-2-logo

We need to understand what happens to code over time and why, and what a healthy, long-lived code base looks like. What architectural decisions have the most lasting impact, and what decisions made early will make the most difference over the life of a system. Forces of Compromise Most of the discussion around technical debt assumes that code degrades over ...

Read More »

Technical Debt – when do you have to pay it off?

software-development-2-logo

There are 2 times to think about technical debt: When you are building a system and making trade-off decisions between what can be done now and what will need to be done “sometime in the future”. “Sometime in the future”, when have to deal with those decisions, when you need to pay off that debt. What happens when “sometime in ...

Read More »

Can you get by without estimating? Should you try?

software-development-2-logo

Estimating remains one of the hardest problems in software development. So hard in fact that more people lately are advocating that we shouldn’t bother estimating at all. David Anderson, the man behind Kanban, says that we should stop estimating, and that estimates are a waste of time. In his case study about introducing Kanban ideas at Microsoft, one of the ...

Read More »

How to Cheat at Application Security

software-development-2-logo

Developers need to know a lot in order to build secure applications. Some of this is good software engineering and defensive design and programming – using (safe) APIs properly, carefully checking for errors and exceptions, adding diagnostics and logging, and never trusting anything from outside of your code (including data and other people’s code). But there are also lots of ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close