Custom Application Development: December, 2008 archives

Custom Application Development:

December, 2008

Dec 31 2008   10:45AM GMT

Goodbye to 2008



Posted by: Joe Coley
Custom software development, work-life balance, Single person business, Independent software developer

I don’t know about you, but this year has simply flown by for me!  It has been a year of challenges personally as well as professionally, I guess that means I’m “normal” after all :-)

At the close of each year I truly like to take a look back at where I was at the start of the year, and where I am as the year closes.  At the close  of last year I posted A Developers New Year Resolutions  never thinking at the time that it would be useful a year later to look back at it, but it has been.  The year started off with a bang, and I was genuinely embracing each of the resolutions and taking them on with enthusiasm.

In May, however, my personal “life” had to take front and center as the result of a family medical issue.  The resulting detour was immense, taking its toll physically as well as emotionally.  Some residual effects linger as the year closes, although they have nowhere near the impact as that period from May through October had. 

As an independent developer and basically single person business such an event has significant consequences.  There is a hugh impact in ones ability to service customers well — an absolute priority to me.  I certainly wasn’t ready for the energy drain it would take on me.

As for my resolutions — for most I grade myself at a C or C+ for the year.  Not by nature being a planner, I grade myself as a “D” however.  My resolution list said “I Will Plan” — testing — my work.  Shortcuts were taken with my testing on agreement of my major client who themselves picked up on testing more thoroughly than usual, knowing that I was shortcutting.  That was a situation that we made work.

Goodbye 2008!  Thanks for the memories!  I’m looking ahead to 2009 embracing those same resolutions I posted a year ago!

Dec 31 2008   2:36AM GMT

The “Paperless” Office — Myth or Real Possibility?



Posted by: Joe Coley
Green IT, paperless office, Custom software development, IT Management

Let’s face it — paper is not going away!  The “Paperless” office is a myth!  However, what is a real possibility is the office with “less paper” — and there are many indications that it is happening.  I just can’t imagine a time when managers that I’ve worked with will not want their “hard copy” of a report — “just in case…” — of what?  Who knows? …but “just in case…”! 

We who manage IT have a responsibility to conserve resources wherever we can - it is both good business as well as good for the environment.  One need not do much more than watch most offices in operation for a couple of hours to identify wasteful and unnecessary paper usage.  There is much that we can contribute to improve office procedures to use “less paper”.

From the software design standpoint, a critical review of reports which get run regularly might indicate that certain data is never used, and by eliminating the data paper volume may be reduced as much as 60% — that’s a serious savings over time, and probably well worth the investment to change the report.  Also with regard to reports — has the capability to print to disk, pdf or maybe fax been made available for the report?  How many times I’ve seen reports first printed to the laser printer, then brought to the fax machine to be sent!  (Then the report put into the waste paper basket!).  Another IT suggestion may be the investment required to provide duplexing printers — using half the paper per print job!  What a concept!  Yet another possible contribution to “less paper” can be incorporating a document imaging system or scanning into an application.

I suspect there are many opportunites that you can identify in your organization where a little bit of creative IT (Intuitive Thinking) can result in the “less paper” office — but paperless?  Forget it!.


Dec 30 2008   10:39PM GMT

Observations from my 2009 Crystal Ball



Posted by: Joe Coley
IT Business, IT Management, Custom software development, IT Skills

I figure I might as well join the ranks of the forecasters for the upcoming year – heck, what good is a New Year if not to look ahead at what might be?  My 2009 crystal ball is multi-colored and multi-dimensional, pointing to the need for IT talent with a wide range of skills.  Given the current (and projected) economic climate, it seems only natural that an individual with broad experience will find their opportunities less limited than the narrowly focused and experienced individual.  Just because the economic climate is poor doesn’t really eliminate many real needs that companies have and are looking for from their IT departments.  Multi-talented individuals can help the department do more with less if that individual is used to potential.

In 2009 I see more attention being paid to training existing IT staff in new areas rather than looking to hire from the outside.  There is no argument that budgets will be tight to non-existent.  Management will certainly  be looking to chop costs anywhere they can without risking failure of the operations.  I suspect that IT departments who to this point have been reluctant to join the virtualization bandwagon will be forced to train staff and begin implementing virtualized systems.  There have been many case stories showing that huge savings can be achieved - not only with hardware savings, but also support and staff.

My crystal ball does show a lot of activity — like a storm at sea, there is churning of the waters and constant change.  Certainly there will be loss of IT jobs as projects get canceled.  What I see for the future is that many will find they have to get training that perhaps they do not yet have.  I suspect that 2009 will see more hiring from the smaller companies than the large ones - which will mean fewer hires overall and more unemployment.  Some IT workers used to large operations may have to be satisfied working in smaller environments and keeping much busier than they’re used to. 


Dec 29 2008   3:00PM GMT

Accelerated ERP Implementation Risks



Posted by: Joe Coley
ERP, Business process automation, IT Management, IT administration, Application design, Implementation Planning

To this day (…and possibly forever) I remember August 1, 1999 not with fond memories, but rather with a complex set of emotions which begin a churning upset in my stomach.  The day was, without a doubt, one of the most memorable days of my life for its stress level.  It was the perfect example of an ERP implementation gone wrong!  In retrospect it is understandable that it was.

What has brought this infamous day to mind was reading a white paper entitled “ERP at the Speed of Light“, an excellent white paper which I discovered this morning as the result of an email. Looking back for me as I read the white paper’s list of “key risks” of an accelerated implementation, we experienced each of the risks outlined in the paper, as well as a few more not mentioned — not the least of which was “buggy” and incomplete software.  While we made every effort to work with the “out-of-the-box” processes offered, they just didn’t work.

The article states that “…in any scenario, there is a certain level of disruption of existing operations in the course of an ERP engagement…”, and we certainly experienced that to the utmost!  Our implementation accomplished only one primary goal in its early stages — our unmanageable different applications inherited during growth through acquisition were replaced — as a company we were now all “on the same page”, the page hating the new software.  We had in fact been united!


Dec 29 2008   11:20AM GMT

Power and Dollar Savings for IT



Posted by: Joe Coley
IT Management, Green IT, IT administration

Green IT — the very name for me conjurs up images of a lush field in Vermont on a sunny day — the air is clear and clean — just a beautiful sight!  Then from there my images go to the “long green” currencies which I’ve had in my hand, and surely the saving of the “long green” speaks loud and clear to any well managed IT department.  Yes Virginia, there is a green IT — and it can save the green of the fields, and the green cash in the company coffers.

There have been a number of articles published recently about green IT and saving power.  Certainly the increasingly popular use of server virtualization where multiple physical servers are replaced by a single physical server running multiple virtual servers can produce a dramatic energy savings.  I suspect that one possibly over-looked area of potential savings exists by replacing existing “old” computers with up-to-date energy efficient systems.

A recent article in January’s Microsoft TechNet Magazine by Jim Lynch of Techsoup.org got me thinking green again.  The article “What On Earth Is Green IT?” is available on-line.  Available on-line at Techsoup is a useful 1 page list entitled “10 Green Technology Resolutions for 2009“.  Both are worth taking a look at.


Dec 26 2008   11:00PM GMT

Backup Strategy and Disaster Recovery



Posted by: Joe Coley
disaster recovery planning, Backup Strategy

Nobody that I know disagrees about the value and need for reliable backups.  Regardless of company size, having backups in place that protect company data is essential, yet recent writings and surveys seem to indicate that very few disaster recovery plans are tested for their effectiveness.  In fact most “true” disaster recovery plans will take into account much more than data backup.

A disaster recovery plan is like business continuity insurance — without it the best one can hope for is to “remember” all of the required pieces in order to solve the resulting puzzle.  Documentation is the best friend of a disaster recovery plan.  As an absolute minimum those functions absolutely required for the business to operate need to be identified, and a plan for recovering those functions documented thoroughly and clearly so that minimal “expert” help is required.  Speed of recovery must be considered, as well as the multitude of different disaster scenarios “most” likely to be faced.

For the small company my experience indicates that the most over-looked consideration regarding their backup strategy is that no consideration is given to ensuring that somehow there is a backup residing off premises of the “server” room.  Many companies have gone to backing to a USB disk attached to the system.  This provides safety for the event of server failure — and provides for quick backup and recovery.  However, in most cases the disk receiving the backup is physically located in the immediate proximity of the server and stays there, and as such, is subject to the same physical disaster potentials such as water, flood and fire as the server itself.

Using tape as a backup media has a number of disadvantages, however, it is very easy for a backup tape to be consistently brought off-premises.  Perhaps it is not quite as easy when the backup is to such as a USB disk — however — how much is that data really worth?  Somehow, its certainly best to have off-premises backup.


Dec 26 2008   9:17PM GMT

User Flexibility vs Simplicity



Posted by: Joe Coley
Software Quality, Custom software development, User Interface, IT administration, Application design, Human Interface Design

Once again I have found myself really struggling with what seems to be conflicting requirements for an application currently being developed.  I have blogged on more than one occasion here that to create an application which “hides” the complexity of its workings from its users is no trivial task, yet I believe, one that is truly worth the effort.  Providing flexibility for users can also be a challenge during development if the developer is “looking ahead”.

By “looking ahead” what I mean is that the developer might be working on a custom application with a particularly narrow functionality focus, yet be very aware that the functionality desired now will probably NOT fit the needs in the future, perhaps as soon as a few months.  While in the program where possible it may be desireable to build in the functionality desired for the future, but somehow “turn it off” for the current application iteration.  Doing this of course assumes a long-term commitment to the application and maintenance of it.

A common way to create an application which can be “flexible” in this manner is through the use of what might be called “switches” — or another term I’ve seen used is “parameters”.  These have proven to be quite effective — to a point at least.  There does come a point in time I believe that the value of “switches” is no longer useful.  I actually worked with some software where there were so many “switches” to be set (they bragged about having over 4000!), that a week of “training” in setup was required.  Unless the application is going to be used in a large environment with a dedicated IT department that would be (IMO) excessive.  Additionally this software had many dependencies built into those “switches” - i.e. if parameter 2003 is set to true, then 3014 and 4002 must be set to false.

As with so many things in software development, there are always tradeoffs, as well as a multitude of considerations.  I believe that the more of these types of considerations that are taken into account throughout the entire development life cycle, the better will be the resultant software.


Dec 23 2008   1:17PM GMT

Unsavory Justice - Julie Amero vs Connecticut



Posted by: Joe Coley
Security, malware, Law

Perhaps I’ve had my head buried too deeply into code over the past 4 years or so, but it wasn’t until this morning that I became aware of this unfortunate event playing out less than 100 miles from my home.  Since I blog only here, don’t have a MySpace, rarely purchase on-line and seldom visit anything other than a site immediately related either to a project I may be involved with or might become involved with, I guess one could say that I lead a sheltered life!

The case came to my attention as the result of reading the latest Sunbelt Security News  - a newsletter which I follow with some regularity, and my generally inquisitive nature.  Anyway, in case you have also had your head into too much code, the case in short (very short) is this - Julie Amero was a middle school substitute teacher who had the unfortunate experience of having the computer she was on begin showing pornographic pictures.  She was charged and convicted with felony charges of impairing the morals of a child, with sentencing delayed (…since it appeared that perhaps not all aspects of the case were solid).  Her conviction was thrown out and she was granted a new trial.  On November 21, 2008 her saga ended with a guilty plea to disorderly conduct .  She lost her teaching credentials, her health has been compromised, and paid a $100 fine.

What happened to her in that classroom reminded me of an incident I experienced a few years back when I got a frantic call from a woman on her workstation who just couldn’t get rid of pornographic popups that just kept coming at her.  She was frantic!  She was not a “knowledgeable” computer user, she had no idea what to do!  In her case, what was discovered was that some member of the nightime cleaning company had decided to make use of the company high speed connection and to access porn sites, the result was a compromised PC - left ready for its next user to experience.

Now, clearly I do not know all the facts related to the Amero case, but that this happened surely is tragedy, as well as another example of the need to remain constantly vigilant regarding keeping anti-virus and malware under control and updated. 


Dec 22 2008   2:11AM GMT

Shortcuts, Nightmares and Reboots



Posted by: Joe Coley
Software testing, Software Quality, update problems, version conflicts

I’ve just recently read a couple of posts in a newsgroup which reminded me of a few nightmares I’ve created for myself as a result of taking a shortcut (or two).  One of the situations was regarding changes made to a working server (…and of course one doesn’t want to reboot said server after simply adding some software — especially when the software doesn’t specify rebooting).  The story I read went something like this:  a few months ago a demo application program was loaded onto the server, the system was not rebooted after install, all programs worked fine - newly installed demo and existing programs - and they continued to work until the system was rebooted. 

It seems that in this case there were “updates” loaded onto the system which upon the reboot replaced the working versions of the dll’s with incompatible versions.  The “demo” program had been reviewed months ago, determined that it wasn’t desired, but left on the system anyway.  By the time of the system reboot the consultant called in to address the problem was of course told “Nothing has been changed!”  Yes, we did have to take the system down for an extended power outage — but it booted fine - “…no errors…”. 

It took a team 2 1/2 days to establish the cause of the problem - that being that at the time the “demo” software was loaded certain dll’s were being “used” and therefore would not be replaced until the next reboot of the system.  By the time that reboot happened nobody ever suspected that the “demo” software load was the cause of the problem.

Had the system been rebooted after the install the “issue” and its cause would have been immediately identified.  Months later, that wasn’t the case.  The shortcut? Not rebooting after the install.  The nightmare?  2 1/2 days of anguish with printing not working.  The solution?  Reboot after loading new software.


Dec 17 2008   10:58PM GMT

The Danger of Over Simplication



Posted by: Joe Coley
Software maintenance, IT Management, Custom software development, Application design, Human Interface Design

How many times have you heard “I have an easy request for you…” from either users or the non-technical manager with no concept of what it takes to create an integrated software application?  Most of us that have been up and down the development block have experienced this I’m sure, and also for many of us the request has actually been easy!  :-)  What a relief when it is!

But then … there are those other times which fall into a couple of different categories.  The first category is the category where as the developer, after looking at the request more closely you determine (much to the dismay of the requestor) that to accomplish the task will really require some major changes - lots of work - and of course that also means time and money!  After close consideration the idea for the change is either re-designed and re-considered, or scrapped.

Then there is the second category — I call it the “…seemed like a good idea at the time…” category.  This is the project which is stated very simply, and upon further investigation as the developer you decide that it will in fact be a great enhancement to the program, and will not take much to implement.  WRONG!  This is the killer project!  Not until getting into the finite details of the application do you realize that it is a monster!  After spending double the time you expected on the project with no definitive end in sight reality has hit hard!

Very simply, the requirements were over-simplified, the review before the project was over-simplified, and the execution anything but over simplified.  Oh well, chalk it up to just another day in the world of software development.  Cheer up, there’s another project coming along right after you finish this one - if you ever do that is!