This is the story of the time I learned about scope creep.
The company was a collection of autonomous portals in different states. Each portal had a billing system, reporting to corporate at month's end in roughly similar fashions.
Corporate wanted better visibility into day to day financials of each of the portals.
No one, but Corporate, wanted the new billing system.
We were doomed from the start.
Among my duties, I was tasked with designing and implementing a testing framework. It would handle unit testing, release testing, integration testing, load testing. It was my first major greenfield project
After lots of contemplation, I came up with the most awesome design proposal I could muster. I didn't know the word, but I wanted to build a testing DSL
I proposed to create a higher level language, in XML (this was 2004, after all), that would activate certain functions to produce tests. Probably be really easy.
My manager loved it, but wanted to know how would we handle
Wait a minute!!
I can just write simple functions that take my XML structures and reflect them out to java objects and methods
I can just write Java in XML and use my parser to generate the Java.
Oh YEAH!!! Now I'm thinking like a real programmer. I explained my plan to my manager.
There's something about explaining to others that helps you hear it anew.
I can write Java format it in XML and use a parser [which I'll have to write] to generate Java ... Wait. Why am I not just writing Java?
I was planning to go through a lot of crazy effort to create a custom version of Java that
The thing I learned that sticks with me to this day? I constantly ask myself. "Are you building the smallest, least complex thing that solves your problem?" That lesson made the entire doomed affair worth it.