Tuesday, September 10, 2013

Iteration is the Key



All of us have ideas.  Some are good and some are not so good.  Those ideas do not always spring from youth.  Most ideas spring from filling a need.

When we identify that need, we seek an answer that we fill that void.  We try many things that sometimes go against the grain.  We try many things that are just variations of something we already do or use.  Then, maybe, we find something that looks like a possibility.

We take the possibility and work with it until we getting a working prototype.  That prototype sometimes called proof of concept maybe crude and unusable. However, it does prove that we can find a way to fill the need.

Never once is the first attempt good enough.  And that is what distinguishes the idea from just an idea to maybe this can be a product.  The product, if you get that far, must be continually refined and looked at.
So it seems that iteration of the end product is what differentiates this from the beginning of this process.  We must have much iteration in order for the product to fulfill this need.


So when you hear that someone has an idea, let them work on it.  Have them show you their iterations.  If the fail to be able to make iterations of this need they are trying to fulfill then maybe this product will not make it out the lab.

Friday, August 16, 2013

Allocation of time resources

As a programmer, we are always looking to spend less time coding and debugging, but still produce more code. This dichotomy is what some programmers fight with on a daily basis.  Whether we go to a 1 hour meeting where it was scheduled for 15 minutes, or whether we get interrupted by our colleagues, or whether we get lost in translations between languages, the coding did stop.

Bill Gates said: "Just in terms of allocation of time and resources, religion is not very efficient.  There's a lot more I could be doing Sunday morning."  Some programmers are agnostic but still feel the same about their allocation of time. Microsoft announced a new "beta" release of IE with a development center with free tools and resources built so web programmers can spend less time testing for the various version of Internet Explorer and more time building code.

In the many years of programming in Pick, Revelation, Prime Information, Universe, and Unidata to name a few, there has never been a mention to help us programmers with the allocation of our resources to produce more code.  Of course, if we skip the little problem of testing all of our code production would be massive and we would be getting raises until they tested it.

Our tool, XLr8Editor, has some new features that have saves our staff about an hour or two a day. The first feature is synchronization engine.  The second is task tags.

Let's start with the synchronization engine. Since Eclipse stores all of your programs locally as you are editing them and writes them to the database when you are done, other programmers may change that code or other code throughout the day.  You just right click on your basic program file or dictionary file, or your procedure (proc) file and the system synchronizes your local copy with the database.  You can click on each difference and see the "diff" editor what has been changed.  You can click on the incoming sync icon and have all your local code updated.  If you run process that updates code at TCL/ECL then this is a real time saver.

The second is task tags.  Java programmer and other have had task tags for years.  Now courtesy of XLr8Editor and Eclipse U2 programmers can have them too.  Task tags are used a reminders of actions, work to day, or other actions you would need.  The Eclipse standards task tags of FIXME, TODO, and XXX are included.  You can add your own because the engine will find them.  Now instead of comments in code you can never find you can put TODO's or FIXME's and every programmer using XLr8Editor will be able to see them in the Marker view.  We use that to keep track of what we have left to do in a program before it goes into productions.  The time savings can be big when you have to ESEARCH your code for these things.

If we could quantify the savings in our programmer's time, we could have save about 5 hours a week or 250 hours per year.  For management that is a lot of programmer time.  This time can be used for cutting more code.

"Thanks U2logic"

Thursday, July 4, 2013

Crazy release strategy (CRS)

Whether it is Facebook, or LinkedIn, or now even Microsoft, software changes will be released at least on a weekly basis or even daily basis by these companies.  Not to mention Google, Mozilla, or Oracle that are releasing software and a continuing basis for many years, this is a trend that it only escalating.

The quality assurance departments of those companies are either pulling their collective hair out or rejoicing in that the daily changes are far easier to test than changes that have taken the company many months or years to produce.  Probably many companies are just releasing software and hoping for the best outcome like Google did for years with the word Beta on the software page you were running.  Do we really know or really care?

What all of the CRS means that changes have to be drilled down to their smallest element.  The maximum time for those code changes and bug fixes are reduced from months and weeks to hours.  That means the programmers must have a laser focus as to the problem or enhancement and not worry or even think about the other ramifications of this change.  Those issues should have been already thought of by the person filling out the bug or enhancement request.

We here at U2logic have put out 25 plus releases this year for our flagship XLr8 Tools product.  There have even been some days that we have put out 2 releases in a day for various reasons.  One particular reason was the feature was requested by a user in the morning after we had generated a release and that user needed the release today.  We put out another release late in the afternoon with that feature.

In order to keep some control of your CRS you must have a good version control.  Another indispensable product is bug tracking system.  At U2logic we are using SVN for version control after using CVS for many years.  We are using Bugzilla for bug tracking because there is a built-in interface for Eclipse.  You never have to leave the Eclipse environment to version control, bug tracking, and programming.

For those applications developers, we at U2logic have been updating our code on a daily basis and sending it through our XLr8Installer to our customers.  Some days the customers could get multiple fixes and enhancements.  Does this sound like a Universe or Unidata programming shop?  We think not.

This CRS really is Crazy Release Strategy not Continuous Release Strategy.

Saturday, June 1, 2013

New CRM Conversation Mode

It has been a while since we updated our Customer Relationship Management (CRM) package.  The package was not stale or was not working well, it just needed an update to make it flow better.

The conversation mode idea was not original, but something we gleaned from Gmail now that we use this product more and more.  Within each email there is an embeded tag that is called message.id.  Here is a sample:
Message-ID: 

The code in U2logic's CRM system would not support the same types tags as you can do in email.  An additional field called Conversation Type was added.  It is a code file that can be customized for each client.  The system automatically converts you current non-conversation modes when you start using it.

There is a right click menu to add notes, view conversations, and add conversations.  You can even drag and drop conversations from one topic to another after they are closed.

Here is what the form looks like:


We think this is a great incremental change that will propel our software to others who need Web based packages to keep track of their customer relationships.