I haven’t been doing much programming in the past month and the idea came to me that there was a program I needed to write for myself. I did this because, like the rest of you, I didn’t already have enough to do. 😉 Even my little task wasn’t safe from scope creep.
Most of you have heard the old project manager’s joke that the scope creep is that creep that keeps changing the scope (of the project).
In any case, I felt a bit smug about keeping my programming skills fresh. I got into my Visual Studio, started my C# program, and finished my little program in a short period of time. Since the program was for a specific and extremely limited task, it wasn’t very big.
But then something happened to me and you’ll recognize it – scope creep. Yes, once I got the program doing what it NEEDED to do, I started thinking about what it COULD do. And this is where most of us get into trouble.
The Winding Road to Despair
Once I finished my program, it occurred to me that someone else might have the same need for this program. I was thinking that, if I ran across anyone that needed this kind of program that I would just give it to them. After all, it’s a very small program. It wouldn’t be worth charging them anything for it and I’m the kind of person that’s willing to share. I was feeling especially good about sharing my program because I’m just that kind of person.
Of course, if I give this program to someone else, all the titles and prompts have to be improved. Also, they might want to use it in slightly different ways than I have, so I should provide various options I didn’t personally need. And so on and etcetera! I kept coming up with more and more changes I should make.
AND THEN…(no, I wasn’t yet done being a big creep!) I started wondering whether the person I gave it to might be someone that would want to make their own programming changes (that would be most of you, right?! 😉 ). As such, I started poring over the program agonizing over whether I should change my subroutines (methods) around, change my variable names, change my comments, and more.
You can see where this went – right down the garden path!
Finally, I gave myself a mental slap and stopped before I spent too much time on this. I realized I just didn’t have time for this and didn’t have EVEN ONE potential person to give my program to, in the first place. I was thinking about spending lots of time on something that I didn’t even know anyone needed and doing it “just in case.”
So, I’m not going to share my program and if it makes me a bad person, so be it. No-one will ever see my code to insult it, either! Although, there’s probably not even anyone out there that even WANTS to do that. 😉
In any case, keep this in-mind the next time you start thinking about what you COULD do. If there’s no requirement for it, it’s not needed. If it’s needed, in the future, a requirement will be issued.
And that’s the bottom line to this. If it’s needed, someone will request it and pay for it.