What is it?
Unlike the dastardly feature creep, which everyone has learned to loathe by now, feature sneak is a really healthy thing for your project, or at least it has been for the projects I work on. Feature sneak(s) are the things you do when you realize that a constraint has been lifted from the project or the schedule. Perhaps there’s a really big feature that’s running behind, and that delay is going to slip the current release back two weeks. Bad news, right? But unless everyone on the team is working on that feature, you now have two weeks of developer time from each person who was working on something else. Usually, the developers/designers not working on the slipping feature spend the extra two weeks gold plating their features for the current release. Not a terrible use of time. And, don’t get me wrong, polish counts. But what if you could sneak a high-impact feature into the product over those two weeks?
This happens on a micro scale all the time. Developers finish their work early, or QA is swamped and it’s going to take an extra day or two to test a particular feature which leaves a developer with slack time. You probably have extra resources on your project right now. The hardest part is making sure that everyone is on the lookout for these opportunities.
Feature sneak in practice
Rock has been working on improving the Subversion import process for Kiln over the last few weeks. His work is moving along quite well, and he’s basically done with his features and sanity testing. He needs our awesome QA team to beat the crap out of the importer for a while so that they can find any deeper issues before our customers get a hold of it. The only problem is they’re in the middle of testing some beefy new FogBugz functionality and the whole team is busy at the moment. This is rare, but it is happening right now.
Rock is so awesome that he started working on some changes to the Kiln licensed installer that we need in the long run to make it easier for our customer to get Kiln set up on their own servers. Great! But, now I know that he is a free agent (at least until QA is freed up).
So, when I realized that the fact that we hadn’t yet shipped our updated client tools was causing serious customer strife, I suggested that we get Rock working on a way to push up the delivery schedule for that particular piece of Kiln. We planned to release it in just a few weeks, but why wait if we have the resources to get it out now, and stop our customers from dealing with this frustrating issue? There’s a bit more here than meets the eye, in terms of developer effort, since the new client was built against the new version of the Kiln web application. But ignoring some technical details, let’s just say that it appears possible to move things around with a day or two of Rock’s time.
The feature here isn’t even unplanned functionality, it is the ability to move up the ship date on a feature we’d already finished to help customers out of jam. That’s a pretty awesome use of slack time if you ask me.
… and communicate frequently about the status of ongoing development. It’s the only way that I’ve found to uncover these little pockets of time. There have been countless mini-features, UI cleanups, and bug fixes that made it into Kiln much earlier than we’d anticipated because we were so persistent about looking for openings like this.