After returning from a 16 day road trip, I found myself immersed very quickly in “issues” at a client’s site, much to my dismay. Fortunately, the issues that greeted me upon my arrival were not those of the custom programs being run by this client, but rather network and server issues. Certainly this was another indication to me of just how inter-related the software that I develop is to the network and server environment that it runs within. I understand that many developers do not need to deal with any of these sorts of issues. However, since I’m dealing with small businesses, there are those times that I do have to be involved with their server and network issues.
I was also reminded that one of the components of software application quality is that it runs consistently and reliably. In spite of the issues they have been dealing with, it was encouraging to see that “my” application has continued to perform as designed and desired. The situation has also served to remind me that producing a quality software application requires significant advance planning. The process takes time. Given the tools that I work with, I find that I spend much more time with the design considerations and testing, than I do with the actual coding of an application. While I’ve never measured, I suspect my design/testing time probably accounts for three quarters of the time I spend on a new application.
I find that software maintenance and updates seem to take about the same amount of time. I believe that one must carefully consider what it really takes to get what you want from a custom application prior to starting on a project. It has been my experience that too often there is not enough consideration paid to the fact that it will take time to get the application to where it achieves maximum efficiency. Certainly this plays a big part in choosing to create rather than buy.