Back To The Home Page

Agile Let Us Down

Remember when Scrum (or XP or Kanban or Rational Unified Process) was going to change the world? Your self-directed team was going to ship product every month (or week!) by writing clean tested code that actually did what the customer wanted. Your boss was behind it, and your bosses boss was behind it. Deadlines, Crunch Mode and shipping terrible crap would be a thing of the past. You could even enjoy your job!

It hasn't worked out that way.

Sure highly paid Agile Consultants can preach writing clean code, but they don't have a deadline every month. They can show you examples in "prime factors" or a currency converter but they don't have to integrate a WinForms app with a legacy Access Database. Kent Beck might be a smart guy but did he ever have to tell his boss it was gonna take two weeks to test one line of code?

"Clean Code" is pretty meaningless when your boss is yelling ship RIGHT NOW!

The real world doesn't have nice simple examples that let you easily apply best practices. Sure you want to do the right thing, but with all new process that Agile has created, who has time for that? Well I have good news for you.

Clean Code doesn't have to take forever!

Each time you commit code you can make it a little bit easier to read. Instead of adding a couple more hacks on the method from hell you can clean the method up, add a few more tests, and even deliver to QA with time for for them to test. You can, slowly but surely, turn that JQuery spaghetti into clean/structured code that's fun to work with.

When you're delivering clean, bug-free code your boss won't care how you do it!

Those talks where you have to convince management to do the right thing are a thing of the past. Crunch mode? When you're delivering bug free code on time it's a thing of the past.

Each time you come upon a new pile of spaghetti you can make incremental changes to improve it. You can add one test to that thousand line method. You can isolate that legacy Access Database. You can replace a pile of crap with a codebase that's a joy to work with.

Clean, structured, fast and working!

Best of all adding new features will actually get FASTER over time. Can you imagine - getting stories done faster and better than you did six months ago? The dreaded Agile Estimation meetings even begin to take less time as you have a clarity on stories you never had before. Eventually you become your group's version of the Agile Consultant, giving advice and solutions that are specific to your current situation.

You can enjoy your work.

If you want to enjoy your work, to get along with your boss, to get out of the awful cycle of putting hacks on top of hacks you need to know how to write clean code that works, and you need to write it quickly. With my Guide to Real World TDD you'll learn:

  • How to get started writing clean code today.
  • Simple Refactorings you can use right now.
  • How to add tests without losing hours or days to testing tasks.
  • You'll see how to avoid the bottlenecks that give clean code a bad name.

The guide uses real examples, not toys, to demonstrate clean code and ugly code so you can tell the difference. You'll have a step by step process so you can check in code that's better each and every time WITHOUT slowing down delivering features.

You'll get code examples from the real world!

Code with UIs, databases and web technologies. Finally you'll learn the steps for dealing with legacy code so that you can apply the teachings to your real life project.

If you've even explained to your boss that you're all done "except for the tests" or seen a product you worked on outsourced so consultants can rewrite it, then you know just how difficult it is to write clean code that works every time.

You don't need to keep trading quality for time.

The Guide To Real World TDD can bridge the gap between theory and practice so you can succeed every day at your job.

Want to learn to write clean, working code fast?

Sign up to my newsletter to get early access to the Guide to Real World TDD and tips and tricks for making TDD effective in your codebase, regardless of language or platform.