Custom Application Development: Buy, Build or Ignore?:

July, 2008

Jul 31 2008   8:00AM GMT

Software Testing, Development and Music



Posted by: Joe Coley
Custom software development, Application design, Software application development, Software Quality, Software testing

I read with intense interest the “From the Editor” post entitled “Software testing lessons from music” on SearchSoftwareQuality.com this week.  The article caught my eye for its title uniqueness, but kept my attention as I read the theme of the Association for Software Testing’s annual conference - “Beyond the Boundaries: Interdisciplinary Approaches to Software Testing.”

Interdisciplinary approaches to software testing just seemd to be ”beyond the boundaries” for my brain to comprehend until reading the article.  A comment on the post was also particularly meaningful to me - stating a view that I have often been criticized for voicing myself.  “Testing, like designing and programming, is as much an art form as engineering.” The comment goes on to compare testers to choreographers and users to the dancers.  I personally love that concept!  It portrays a vision of software development which I have long had, and work daily to achieve - that is creating the perfect symphony that users can play beautifully.

Jul 30 2008   5:00PM GMT

Top 5 Characteristics of an effective IT professional



Posted by: Joe Coley
IT careers, IT administration, IT Management, Custom software development

Staying with my recent top 5 theme  here is my list of most desireable characteristics for an effective IT professional:

  1. Patience, patience and more patience - IT can be stressful, fun, challenging and a whole lot of other things!  Having an overflowing supply of patience - with users, with other techs, with software, with hardware, with vendors, with bosses and with self is of major value!
  2. Ability to adapt quickly to change is another ingredient that I believe is essential.  IT needs, tools and equipment is constantly changing - and keeping up with it can be a challenge.  Those that can adapt quickly shrug off the discarded work of the past in favor of attacking the new, without seeing the past work as being futile or a “waste” of time. 
  3. A positive outlook is a must have for an effective IT professional.  Change and “issues” of all kinds crop up daily in the IT world - so having a positive attitude brings about stability in self and the environment - things are jsut better.
  4. The effective IT professional is not a 9 to 5 person - IT functions often require that work be done “off” hours.  The most miserable IT person I ever worked with really just wanted a job to go to between 9 -5.  Needless to say, he didn’t work out!
  5. A love for challenge rounds out my top 5 characteristics of an effective IT person.  IT is NOT easy street — it is NOT narrowly defined — it can be multi-disciplined, requiring knowledge way beyond the technical.  IT is NOT for everyone — good thing — if it was, everyone would be doing it whether they posses these characteristics or not!

Have you also read my Top 5 Reasons to Love IT and my Top 5 Reasons to Hate IT


Jul 30 2008   2:00PM GMT

Top 5 Reasons I Hate IT



Posted by: Joe Coley
IT careers, IT administration, IT Management, Custom software development

After what seemed like a sleepless night I woke up in early morning thinking about my reasons for being involved in IT and what it means to me.  As with so many professions, I have discovered I have a “love / hate” relationship with IT.  Heres my top 5 list of why I hate IT:

  1. It is constantly changing - and because it is constantly changing it requires significant effort to keep up with the needs of the organization and the available solutions, and to evaluate them and mold them into the “best” solution
  2. Sometimes it seems that nothing is easy - there are many challenges that an IT professional can face on a day-to-day basis that just seem to defy logic and reasoning.  It “should” work!  You’ve followed the directions, over and over again, nothing is wrong — except it isn’t working!
  3. It can be a thankless job - Ask any IT professional when they received their last compliment for a job well done keeping a system going for the last 500 days with no down time!  Ask also what they experienced when last they were dealing with down time!  (Remember “down time” is a double 4 letter word!)
  4. The challenge can get burdensome - Like it or not, every person in IT at whatever level will be challenged to learn constantly — “learn or burn” one associate I worked with used to say.  I have learned so much that I’ve never used!  It becomes difficult to not consider that learning as useless, but the challenge goes on day after day.
  5. It’s NOT a 9-5 job - which for me has never been an issue, in fact I like the flexibility that not being 9-5 provides.  However, down systems, major weekend upgrades and constantly extending hours into the “off” hours time slot can get old. 

Be sure to read my Top 5 Reasons I Love IT also.


Jul 30 2008   1:06PM GMT

Top 5 Reasons I Love IT



Posted by: Joe Coley
Custom software development, IT careers, IT administration, IT Management

I love my work!  I have always loved my work, although it hasn’t always been in IT.  When I came into IT it was with a wealth of experience in business and entrepreneurship, with successes as well as failures.  Here is my list of the top 5 reasons I love IT!

  1. It is constantly changing - and this is truly the flip side of a coin — since the constant change can both be loved as well as hated!  I love it because I am an individual who once something becomes routine I lose interest and have to force myself to the grind.  In IT with the constantly changing needs it seems there is always something new to experience. 
  2. It can be rewarding - Users love it when their systems work - or help them get more done in an easier fashion - and that is a reward to me.
  3. It is challenging - and being a man who likes challenges (most of the time) I’m OK with this.  For some, however, the constant challenge becomes more than they can deal with effectively - and that is NOT a pretty picture!
  4. It provides some level of flexibility - and I emhasize “some level” because I realize that not all in IT have the kind of flexibility that I currently have.  However, IT does often provide the ability to work from home, most or at least some of the time.  There are also of course those times when there is NO flexibility — like for instance a down system.  Life for an IT professional takes on a whole new meaning when there are 100 people who can’t work because a system is down!
  5. It makes me feel good - to be able to provide a service for another which they are incapable of providing for themselves.  For me it may be something like being a musician and not playing for others.  What good is beautiful music played only for ones own ears?  The talent required to be successful in IT is meant to be shared as well.

Be sure to read my Top 5 Reasons I Hate IT also.


Jul 30 2008   1:15AM GMT

Character Based Applications - Is it time to Update?



Posted by: Joe Coley
OOP, Application design, Custom software development, character based applications

I am still amazed at the number of character-based applications which I see in use through any given week.  Many of these applications I know have been around since the early 80’s, I know this because I continue to support a couple of them.  Many companies have been slow to get away from their character-based applications for a number of reasons, not the least of which for many is the old adage of “If it’s not broken, why fix it?”

Every now and then I read something that I look at and say to myself “I could have written that!”.  My good friend and fellow Visual Dataflex developer Peter Donovan posted an excellent paper on his blog today entitled “DOS to Windows Conversion: a facelift?” which falls into this category.  I highly recommend it.  While I generally go about my days recently as if character-based applications no longer exist, I know better.  In his paper Peter gives his top 10 reasons for considering a DOS (character-based) application to windows conversion.  He states that “The time to invest in a DOS to windows conversion is overdue.”, and I couldn’t agree more.


Jul 28 2008   1:24PM GMT

Sometimes the Obvious is Missing



Posted by: Joe Coley
Custom software development, Application design, Small Business Computing, Business Application Value, Business process automation, Software application development

We developers need input from our users!

This became very clear to me once again last week when I received an unexpected request from a user to add a simple lookup function to a field in their order entry program which has been in use (…and regularly enhanced) for over 5 years.  When I first received the request I was shocked to discover that such an obviously beneficial function would be missing.  In fact, my first thought was something like “How could [the user] miss it?  Of course there is a lookup there!”  Then, upon further investigation and review going back numerous iterations and versions I discovered much to my surprise that it NEVER was there — an obvious omission.

All of this led me to recognize once again the value of having a close relationship with my user community.  Working with the small & medium size companies that I do, it is generally commonplace.   This incident also pointed out to me that user and software developer/designer alike can easily miss obvious functionality enhancements.

P.S.  The program now has the desired lookup!


Jul 19 2008   7:28PM GMT

Choosing the Best Application Design Approach



Posted by: Joe Coley
Custom software development, Business process automation, Software application development, Small Business Computing, Application design, Software Quality

Sometimes it isn’t clear when designing a new application just which of a multitude of possible approaches to the design represents the “best” approach.  Sometimes it may not just be the application design itself, but also choosing the “right” tool to accomplish the task(s) to be executed.  Sometimes it may be deciding something as different as whether to create the application as a web application or client application.  Once some basic design choices are made, like web or client, the designer may also then be presented with multiple possibilities for accomplishing the task at hand.  Choosing the best approach for accomplishing the task isn’t always clear.

Of course, there are those projects which are mandated to be web or client, design tools may be mandated, and of course there are the talents of the design/programming team to consider - which sometimes will restrict design to a particular method.  However, in my experience, there may often be many choices to accomplish a given task - that is to say, choices in how to produce a certain end result.

In reading a new ITKE blog Taming the Wild, Wild Web  I thought of a common example of what I am referring to.  One can choose to code a web page, for instance, using in-line HTML and specifying literally everything to be included on a page — OR — they can choose to incorporate CSS for example to accomplish the “look and feel” desired.  While an argument can be made that using CSS has many advantages — IF one has limited time and little knowledge of how to use CSS well the developer isn’t going to stop and learn CSS and then do the page.  (…at least that’s my opinion!).

There will always be pros and cons about a particular method to accomplish a programmed task.  Many times the “best” approach to accomplishing the task will be the method best known to the developer.  At other times the “best” approach may be the one that executes most efficiently - and at yet other times the best approach may simply be the approach that produces the desired end-result for the user, on-time and on-budget.


Jul 11 2008   9:23PM GMT

The Business Process — How Does It Get Complicated?



Posted by: Joe Coley
Business Application Value, Business process automation, Custom software development, Software application development, Small Business Computing

I wonder how many of the business processes which a company develops over time from its early days as a very small company to a larger organization become overly complex.  Of those processes, I also wonder just how many of them are the result of new demands on the process simply as the result of the growth of the company, and how many of them become “the way it’s done” out of habit or because of other requirements mandated by the business environment. 

I’ve worked mostly with smaller companies, often times businesses that have started off very small and grown to become multi-location operations.  As their growth has progressed the needs for tighter controls becomes increasingly apparent.  No longer can the business depend upon the memory of that one key individual who “knows everything” that’s going on — who knows the customers, knows the vendors, knows each employee.  As staff increases so does the “risk” associated with no longer having a close, trusted, personal relationship with employees, often co-founders of the company. 

Many of the applications with which I’ve worked were originally developed specifically to provide the growing organization a means to “get a handle on” information that many may need, but early on resided in the head of the “key” person.  The small company finds a way to get the job done - process is the least of concerns.  I believe that what happens often during the growth period is that as the need for defining the business process becomes clear, efforts to define the business process fail because there are “so many variables”.

Its at this point that I’ve found a company will generally make the buy or build decision for software.  Some will look at a vertical market package for their industry and decide that the “business process” required by the software is the way they should be running their business.  (Hey — it works for others - why re-invent the wheel?).  Others may find that they just can’t see themselves running their business “just like everybody else”, and they will choose to have a customized application.  Then there are those who choose that vertical market package, work hard to change their business processes to “fit” the software, and then find the “work-a-rounds”.

“Work-a-rounds” add a level of complexity to the business process that is generally not required.  If your business processes are too complicated - maybe its time to look at how much is a “work-a-round”, you may be surprised.


Jul 10 2008   9:00AM GMT

Is this Green IT?



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

I must be getting cynical in my old age — or maybe just cynical when it comes to marketing!  Either way, I just have to say something about the advertisement I recently saw saying to “Make Your Company Greener” by hosting your server with them.  Actually the idea is very catchy (Hey — it caught my eye!).  I even browsed the ad more than once, and now I’m blogging about it!

The claims for their service are nobel, the marketing spin excellent - but is this green IT?  I think NOT!

I think green IT involves much more than virtualizing servers, although that is certainly a step in the right direction.  I think it also involves re-thinking the business processes and how they affect the need for the multitude of equipment which we so readily add.  I think it involves a major shift toward the “paperless office” and all that the concept has promised.  Green IT won’t happen overnight - it isn’t a place to go!  Rather I think “Green IT” is a way of doing business, in fact, a way of life.


Jul 9 2008   7:50AM GMT

Information Silos and Other Images



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

Images of the “Information Silo”, the “Data Warehouse”, “Data Management” and “Business Intelligence” could undoubtedly conjur up humorous images for the graphically or artistically endowed technologist.  Traveling through farmland as I often do, I often see the farm silos and chuckle to myself as I think of ”Information Silos”.  I wish I had the talent to create caricatures of the images I think of when encountering these terms - I’m sure they could evoke a chuckle from somebody other than I.

Anyway, that being said, these terms are no laughing matter for those faced with the real challenge of making simple the complexity of data available to companies today.  From my experience I’d say that most companies - even those single location small companies, have a multitude of information stored in a multitude of systems.  The “systems” containing this data may be an individual PC, a company ERP system on a server, a sales (CRM) system (maybe on a multitude of salespersons laptops) - each its own “silo”. 

There are many stories of failed BI implementations.  Why?  I would posit that users trust their data and information, but not necessarily that coming from say, the IT department.  They know where “their” data is coming from, how it was collected, and it’s meaning - because its “theirs”!  Whether it presents a complete picture, or is applicable in all instances is totally irrelevant - just ask that branch manager, or department manager … or whoever has the data.

That being said, I’d say that perhaps key to getting the most value from the data you have available is getting the buy-in of the end-users of the data in regard to data source and reliability.  If a data source is to be used, do the end-users “trust” the data?  No trust - Don’t use it!  An interesting post suggesting 3 causes of failure for BI implementations is available here - an interesting read.