Custom Application Development: Buy, Build or Ignore?:

Software testing

Apr 29 2008   4:52PM GMT

Thoughts on the Career Software Developer



Posted by: Joe Coley
Software application development, Software Quality, Software testing

I just finished reading an excellent post by fellow TechTarget blogger Ron Richard entitled “The career, software developer (your comments appreciated)”.  His post is one which can’t help but spur its readers thoughts both into their past and their future, at least for me it certainly did.  The post ends by asking 20 questions — each of which is very capable of spurring significant discussion.

I immediately found myself wanting to respond with an answer to his question number 19.  His question?  “Will peer programming in the future involve a human and robot?”  Perhaps I’m somewhat old-fashioned, (my grandchildren have pointed that out to me in the past), but I just can’t get a picture in my mind of the software developer robot.  Perhaps it would be an interesting artistic effort to create one!  But that aside, I find myself questioning the use of the word “peer” in relation to a robot and a human being.  I just can’t envision that!

Our software development tools are getting smarter, they do think ahead for us in some instances as they fill-in the command it thinks we are going to use.  I cannot conceive of the robot developer understanding anything but the most detailed of application requirements.  The “artistry” of software development — particularly application software development — belongs to the human being.  I certainly CAN conceive of the human “guiding” the robot wizard as it creates the application”code” (…probably not understandable by the human at that point…) which runs the logic and UI.  Actually as I think about it, I could use some of that robot influence today!

Robotic software development I believe, and I hope is a long way off in the future.  By that point in time, I won’t be trying to earn my living as a software developer, and I can read all about it in the tech journals and be amazed.  Until then I can keep coding and dream on!

Apr 24 2008   3:49PM GMT

Thoughts on the Elusive “Bug”



Posted by: Joe Coley
Custom software development, Development, Software application development, Software maintenance, Software testing

My last post was certainly created in the heat of the moment, and displayed I’m sure a significant amount of the angst that I was feeling at the time.  The issue that I was having has now been resolved, but it really serves as an excellent example of some of the pitfalls that can occur when developing an application.  Let me explain.

I failed to follow one of the cardinal rules of development — that of changing too much at one time.  As I understand it the procedure that I usually follow could be classified as “unit testing”.  I was suckered in by the fact that the program was a very “simple” one.  Because it was so simple, I didn’t take the time to make a change and then test for that change.  As it turns out, that was a big mistake.

I also made the mistake — because I was feeling time constraints — of not taking the time to follow my usual step-by-step procedures.  Not only was I not checking incremental changes, but I was also dealing with a situation where I was integrating third-party software into my program.  What I had not realized was that by using some old code I was in fact negating some of the functionality I was expecting.  Since this was the first time I had newly integrated this Active-X component using the latest version of my development tool — Visual Dataflex (VDF) — I was caught off guard.

Moral of the story?  Make changes in increments, test frequently, and be patient.


Apr 18 2008   4:48PM GMT

Custom Software Application Quality Takes Time



Posted by: Joe Coley
Development, Business Application Value, Custom software development, Software Quality, Software testing, Small Business Computing, Software application development

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.


Apr 8 2008   12:50AM GMT

Software Application Planning For Success



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

I often find myself wondering why I look at many of the newsletters and press writings that I do.  I was reminded again yesterday that the reason I do so is that I look for those jewels of information that apply not only to a large project or operation, but are as applicable to the small businesses that I work with as they are for large operations.  I am signed up for many weekly newsletters, and I go many weeks sometimes before finding one of those ”jewels” that I’m looking for.  I found such a jewel in a recent newsletter from Jennette Mullaney of SearchSoftwareQuality.com.

In her newsletter she makes reference to an article by Capers Jones Entitled “Software Tracking: The Last Defense Against Failure”.  This article is a must read in my estimation, at least for anyone involved in application software development.  Capers article concentrates “…on four worst practices or the factors that most often lead to failure and litigation…” — I believe these are applicable to all but the very shortest term software development projects, and even then there is some applicability.

Her article also makes reference to a couple of other articles which have recently appeared which deal with control of a software project.  Kevlin Henney in his article “Using iterations to help balance priority and risk” sums up software application this way “…Software development is a multivariable challenge. Estimates are estimates, not predictions, and there are many surprises…” — Thank you Kevlin for that wisdom!  I couldn’t agree more.

In ”Developing use cases that support business goals” Rob Apmann recommends “…to initially focus on the specific areas of value you want the system to provide…” — This is also a highly recommended read regardless of the size software development project you work with.


Mar 24 2008   12:48PM GMT

Spending the Day with Microsoft



Posted by: Joe Coley
Software application development, Database, Development, Custom software development, Database application, Software testing, SQL Server, Virtualization

Last week I had the opportunity to spend the day with Microsoft at their Heroes happen {here} Microsoft 2008 Launch Wave in Boston.  Evidence of Microsoft’s commitment to virtualization were plentiful.  Many of the demonstrations they provided, clearly were accessing virtualized machines.  Application virtualization was not quite as prominently noticeable however I understand one session which I did not attend, their session on virtualization in your infrastructure, did show application virtualization on Windows Server 2008.

I chose to follow the presentations provided in the “developers track” — surprise, surprise?  Microsoft managed to provide information sessions, for the most part, rather than vailed sales pitches — I commend them on that.  Of course, the greatest percentage of sessions and information provided were really geared toward the larger enterprise customers.

It’s always difficult to know after shows like this just what value I have gained from the time spent.  It probably will be a while before I truly understand the value to me, however, having the opportunity to work with the provided Not for Resale software — Server 2008, SQL 2000 and Visual Studio 2008 — I’m sure will provide value to me in the coming months.


Mar 18 2008   6:16AM GMT

Trustworthy Computing



Posted by: Joe Coley
Custom software development, Software Quality, Software testing, Small Business Computing, Security, Software application development

Since reading the white paper entitled “Trustworthy Computing” on the Microsoft link provided by reader Willie Robinson I have been thinking about the concept of “Trustworthy Computing” ever since, almost to the point of distraction — so I figured it was time to blog about it!

I first noted when reading that Microsoft paper that it was dated in the year 2002.  This prompted me to try a Google search on “trustworthy computing”, and I discovered a recent article posted on campustechnology.com entitled “Trustworthy Computing: Examining Trust“.  I found this article particularly interesting because very early on a reference was made to the fact that there is still a long way to go.

I have found myself wondering since reading the Microsoft White paper, just how possible is it to develop the same kind of confidence and trust in our computing environment that we have with our automobiles or telephone?  Computing, however, seems to be an area where there is an every day cat and mouse game being played between the good guys and the bad guys.  What happens when a good guy goes bad?  That has happened!

It seems to me that until the larger issues of global cooperation and trust are resolved, we will not see global trustworthy computing.  On the very first page of Microsoft’s “trustworthy computing” white paper, they state “…  Because computers have to some extent already lost people’s trust…”.  My experience would be that this is a gross understatement.  Significant data breaches have shaken the security foundation to its core, and significantly eroded trust that has been built up in recent years.

If this topic interests you, take a look at this most recent article that I’ve referenced above.  It also is a great read.


Mar 17 2008   2:26PM GMT

Virtualization Revisited



Posted by: Joe Coley
Custom software development, Business process automation, Software testing, Networking, Virtualization, Software application development

With much anticipation I find myself preparing my laptop once again to be used as a tool to demonstrate capabilities of software which I developed.  This is no ordinary preparation.  I will soon start an extended road trip during which I will be doing both development and demonstrations.  Last October I wrote in this blog about how valuable virtualization has become in my environment.  Since then, it has become an even more powerful tool which I use daily.  My use of virtualization technology has become a staple component of my development environment. Continued »


Mar 14 2008   12:00PM GMT

Software Quality and Ethics



Posted by: Joe Coley
Custom software development, Business Application Value, Development, Agile, Software Quality, Software testing, Software application development

Not many articles come along about which I feel I could become a cheerleader.  However, yesterday’s news on SearchSoftwareQuality.com featured an article entitled Test Driven Development and the Ethics of Quality – that is just such an article for me!  [Imagine a smiling, clapping Happy Face Here!].  I have been a believer in producing quality software since my early days of software development in the 80’s.  I must say that I never thought of software quality as an ethical concern.

Within this article, associate editor Jennette Mullaney uses a number of quotes from Robert Martin, who is the founder, CEO and President of Object Mentor Inc.  I really can’t say enough about this article — as it would appear that Mr. Martin and I are completely in agreement.  He thinks the way I do — which some might say is bit of a scary thought — for Mr. Martin that is!

I have been saying for quite some time that this is a fantastic time to be doing software development.  We as developers have multiple tools and capabilities available to us which greatly enhance our capability to produce quality software.  I believe that our customers have every right to expect nothing short of quality software from us as their developers.  This article makes reference to such topics as unit testing, agile development and test driven development(TDD).  If you are a developer and want a boost to help you commit to quality — read this article.  I highly recommend it!


Mar 4 2008   8:17PM GMT

Quick Thoughts on Application Value



Posted by: Joe Coley
Business Application Value, Database, Database reporting, Development, Business process automation, Software maintenance, Software Quality, Software testing, Small Business Computing, Software application development

Experience a major meltdown of your workstation and I suspect the value of various applications will come to mind VERY quickly! There is nothing like going without your favorite applications, or your workhorse applications for a few days to develop a significant appreciation for application value. My last 2 weeks have been filled with recovering from such a meltdown.

If you’re like me as you have used your workstation (…perhaps for years) it has accumulated a number of handy utilities that are not “big” names, yet you use them each and every day. Perhaps they were something you found on the internet years ago and fell in love with and it has become part and parcel of your day-to-day work. What happens IF (or more likely when?) suddenly your workstation has a meltdown? It’s really not pretty!

Replacing a defunct workstation with a brand new one is only the start of the battle - the easy part. Gathering all the software you had, reloading it, re-registering it, restoring all the “little” applications (…finding where you got them from can even be a challenge I found!) all present challenges. Doing all this while at the same time tending (…or trying to tend to) the business needs becomes a stress-producing and frustrating experience.

When it comes to establishing application value I really wonder how one would determine in advance the effect of having an application suddenly NOT available once all the investment in application creation and implementation was made. I believe that if in the early stages of application definition one would be able to look ahead 5 years to look at what the potential dependency might be on the application it could be another way to think of application value.


Nov 20 2007   3:55PM GMT

Testing Application Changes - Test Data vs “Live”



Posted by: Joe Coley
Custom software development, Database application, Database application front-end programming, Software Quality, Software maintenance, Software testing, Software application development

So you have completed making the small changes required in your application, you have tested, you have debugged, you’ve done “everything” right!  But alas, your application goes “live” and — problems!  Strange error messages are being generated faster than the eye can follow!  You find yourself saying “I’ve never seen that error before –”  (…or perhaps you’re thinking more along the lines of “…<expletive deleted>…”!  Whatever the thought process going on at that point, you have to act fast.  Continued »