We are currently getting our kitchen remodeled. We’ve used the contractor before because we know he does quality work and gets it done when he says it will be done. Plus, when he gives us a bid, we know that he’s already calculated into the bid stuff that we don’t even know about yet. There’s not really much difference with doing software consulting.
Most times when clients come to us they have only a vague idea of what they want and need. Usually we can count the number of paragraphs of specifications on one hand. So when we start our estimating process we just add stuff in ‘just because’ we know that a typical desktop or web app will require certain types of things.
For example, we know that nearly all applications are database driven. Thus, we include ActiveRecord unless there is a good reason not to use it. ActiveRecord gives us some other advantages like speed of development time, fewer bugs, and in an update to ARGen (coming soon) the ability to create initial List and Edit forms (for both web and desktop) with controls already laid out. It’s far from perfect but using ActiveRecord and ARGen saves us a lot of time.
Many business applications require reporting. BKeeney Shorts has been around a number of years and has allowed us to create code driven reports. Now, with the integrated report designer we can give users the ability to create their own reports. It’s still a young product, and there are things it can’t do yet, but for a vast majority of business reports it works great. Now, instead of taking a couple of hours to code a report it now takes minutes to design the report and see it right in the designer.
We’ve used the same preference class for many years because it works natively on Mac OS X, Windows and is good enough in Linux. We’ve developed our Window Menu class that works well too. For web apps we have our own paging control as well as a customized sorting listbox. These are all things that we assume we’re going to use in most projects.
Do we factor these things into our estimates? Of course, we do. We spent time and effort to develop them in the first place. These tools are part of our standard toolkit and using them saves us, and the client, money. To put it in terms that our kitchen remodeler might use, he knew going in that he would use a tile saw. He could go rent one just for our project but he’s purchased one years ago because he knows that he typically has to use one. Renting makes no sense for him when he uses it for practically every project.
I’m not saying that you need Shorts and ARGen to get your projects out the door (not that I wouldn’t mind the sales), but if you struggle with the tedium of database programming, or you dread doing reports because the built-in tool isn’t what you need, then these tools might be good solutions for you.
Regardless, if you use our tools, or something elses, you need to establish your toolset. Having a variety of tools to get your projects done is crucial for a consultant. Whether you use plugins or third party code these have the possibility of saving you hundreds of hours of coding time. At the end of the day, time equals money.