Tekkie post – I’ll make it brief.
When I used to work commercially, the last phase of any project was creating an installer for whatever we happened to be writing, and I always used to underestimate just how long it would take. You’d be clapping each other on the back because you’d finished the application, but there was still one significant hurdle left to jump. In the early days I mainly worked on web stuff – it’d not only be installing the files to the required folder, but stuff like creating web sites, virtual directories etc. plus capturing and sorting the account credentials to make sure it had the necessary permissions. All of which I did by setup program, just because it was 100% repeatable if there was a problem – I wasn’t reliant on some operations guy typing the wrong thing in.
In later years it was mainly desktop applications. I designed a lot of stuff (tek alert!) late bound if I could so there were always config files which needed updating. Late bound is: an application would need to use such-and-such a technology, but rather than just lump the technology in with the application, you’d keep the two parts separate. This allowed you to move from Technology A to Technology B, say, without impacting the application itself. At run-time, the application just used to look inside a configuration file to find out which approach it had to use. There were also things like database usernames and passwords – I never knew these for the “live” systems, so the Operations guy would type them in during install. And I wrote simple credentials-checking things to check that the operator himself hadn’t mistyped things. Over the years I learned to leave as liyyle as possible to chance But again, it took time and effort.
But I have just had a wonderful experience with Microsoft’s Setup program creator tool. I’d budgeted a month to do the setup program for my app, but it has only taken me a day! In fact, most of it was already done for me, I mainly just entered product-specific stuff. ‘Course, it helps that this installer doesn’t do anything complicated (one of my goals here was to avoid complication), but still, I’m pleasantly surprised. So, task number next!