Eric Lee has been blogging about his experiences writing a game engine called GenesisEngine using agile techniques and philosophies. The entire series is a great read but the most recent really resonates with me especially put in the context of the last couple projects I have been involved with. It always seem that deadlines push us to work faster and cut corners, while the entire time we slow down gradually over time fixing all the little things we didn’t take the time to fully explore the first time around. We quite literally shot ourselves in the foot and work four times as hard to meet the same deadline.
This particular quote, sounds like hard earned wisdom:
The code that I need to make more complex with threading and async logic is exactly the code that’s already overly-complex and obtuse and isn’t fully covered by tests. Ah, ok, now we see the downside of technical debt. You get a quick spike of progress and then a long, slow, painful slide into hell.
If you are curious about what SRP is, it stands for Single Responsibility principal and is the S in the acronym SOLID as coined by Robert Martin some time back around 1995. You can read the original white papers here.
Oh and did I mention that Eric is our next speaker at the South Sound .NET Users Group meeting? Oh and he will be presenting an introduction to Agile. If any of this piques your curiosity, come check it out. It will be worth your while.