I can’t believe I…

 Let’s call this an early Thanksgiving post.

I can’t believe I…

  • Ever attempted to use mock objects before the AAA style
  • Used strict mocks
  • Did web development without Firebug
  • Wrote JavaScript before jQuery existed
  • Used Visual Studio without ReSharper (the horror!) 
  • Deployed COM objects to production with manually scripted instructions
  • Did those stupid all weekend long production pushes with ZERO automation
  • Fixed bugs during those stupid weekends that didn’t turn up until the production push and kept it a complete secret to avoid being crucified by the formal QA team
  • Forgot to check in said last minute bug fix before leaving the company
  • Wrote a system that used VB COM components inside the freaking browser — and no, we didn’t have a magic way to automatically deploy changes
  • Coded against the live production database — yee ha!
  • Crashed a production server because I was trying to log in with PC Anywhere to a 3.51 server during the busiest part of the day to do something not even remotely important
  • Embedded database connection information directly into the client web page to write CRUD pages with RDS (betcha I’m not the only one)
  • Had anything to do with COM or COM+ at all
  • Tried to seriously do OOP with VB6 (you end up doing a stupid amount of delegation)
  • Vociferously argued that my centralized architect team should build our own ORM infrastructure when .Net 1.0 was brand spanking new
  • Was a non-coding architect for a very long year
  • Wrote a mission critical data exchange that depended upon getting sql insert & update strings being published to MQ Series from an upstream system — and it all happened off of after insert / after update triggers.  Pile o’crap is probably still in production.
  • Delivered a system written in six different languages and 3 different platforms.
  • Worked on a system that embedded database connection strings directly into the code.  In many, many places.  Guess what happened?
  • Compiled source code on my developer workstation, checked those build products into source control, then had those compiled build products deployed to production (When I was leaving that company I told them that I was going to an XP shop and my bosses told me that was just undisciplined cowboy coding;)
  • Tried to do TDD without TestDriven.Net (didn’t last very long)
  • Wrote a stored procedure that did an HTTP post to an ASP page that posted to an ASP page on another server that used a WIN32 library to connect to MQSeries — and it was polled with Oracle’s built in scheduler!!!!
  • Configured an IoC tool with only Xml — and lots of it
  • Believed the Java guys were just a bunch of weak willed weenies because they didn’t write all their sql by hand
  • Built a system that required configuration in 67 different tables
  • Ever, ever did serious development against a shared database.  Why don’t you just jab your eyes out with a spoon, might hurt less.
  • Developed without source control.  For a system that some people depended upon heavily.  On a shadow IT project hosted on my own box. Which threw a head through the hard drive and basically melted the only copy of the code.  “That’s okay Jeremy, we’ll get you some server space and you can just grab the code from source control and… Wait, you do know about source control right?”

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    Only if you know better;-) At the time, I had zero adult supervision, just a mandate to “Git R Done”

  • Jeff

    Great post. I nearly choked on my own saliva after reading ‘coded against production database’. At those points in time, you really feel like you’re in the wild-west of software development.

  • huey


    Thanks for the reply. This is definitely a road I want to head down and right now academic is the most attainable. I recently (<1 year) moved from a job as an engineer to writing custom software at small/medium aerospace company, and it is only in these past few months I’ve had my eyes opened to XP/Agile/TDD/SOLID/etc. My outlook of what is important has completely changed and I feel for the better. Continually striving for self improvement seems like a good trait to have.

    Of course I say this as I bug fix a custom ORM/DAL layer written in .NET 1.1 with no tests and all dependencies hidden internally by the guy who had my job 3 people ago… practice is practice I guess :)

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    I had a fair academic knowledge of XP, which effectively == nothing useful when the rubber hit the road. The first project hurt the same way it does to go to the gym after a long drought, but it’s been worth it.

  • huey

    “When I was leaving that company I told them that I was going to an XP shop…”

    How familiar were you with XP at the time? I am interested in XP and have been reading some literature and blogs, but my development is pretty novice right now.

  • labilbe

    Euh I am using StrictMocks… what do you use instead ?

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    That one obviously wasn’t thought out. My original architecture would have been fairly elegant, but the DBA’s wouldn’t let me make the necessary change to pull it off — and no, I will not explain that any further other than to say I was a total noob who should not have been designing mission critical supply chain software.

  • yassir

    “Wrote a stored procedure that did an HTTP post to an ASP page that posted to an ASP page on another server that used a WIN32 library to connect to MQSeries — and it was polled with Oracle’s built in scheduler!!!!”

    Oh my !! how could you even think about this ?

  • Chris

    Hey, I happen to like strict mocks!

    In limited situations, they’re pretty helpful, and when they don’t make the tests horribly opaque and unreadable, they give me an added sense of security.

  • AndrewLV

    Need it, got it, got it, need it, got it, got it…

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    “MTS, even if you don’t need it, it is just a great environment for your COM objects.”

    Oh hell no, you’re giving me flashbacks here. Let’s just take an already bad technology (COM) and make it harder by changing the rules about deployment and garbage collection.

  • http://creative-loafing.blogspot.com Chuck

    Jeremy – I feel that I am in a second life with coding, having come from a similar background and having just come off of 1.5 years in developer management (never, ever again).

    Ah…RDS. I had forgotten that. Also, I see you did not mention MTS (shudder). I remember that around the time of Microsoft DNA. I remember reading “MTS, even if you don’t need it, it is just a great environment for your COM objects.”

  • http://www.jennifersmith.co.uk Jen

    I think I could claim a fair portion of the items on this list – and double it with many more of my own (deleting an entire user account table by running an autogenerated SQL server change script that went wrong)

  • http://soerenlarsen.dk Søren Larsen

    Very nice/funny list. I will add this to my weekly reading list. Just to be reminded of all the stupid mistakes not to make. (Can identify some of my own lessons learned in this list)

  • Darren Kopp

    I can’t believe you did that either. You’re fired. Have your desk cleaned out by 5pm. Good Lord. And don’t let the investers find out about this either.

  • Jim Greco

    Its good to see posts like this. Blogs are written from an expert viewpoint so you can get the impression that a person has always held these core beliefs or have always worked in the ideal environment. It’s an evolving process for all of us.