Sunday, September 22, 2013

A View on New Software Projects and Run the Business Work

"He'll shape his old course in a country new."
-- Shakespeare, King Lear
Act I, Scene I, Line 187

"The thing that hath been, it is that which shall be; and that which is done is that which shall be done: and there is no new thing under the sun. Is there any thing whereof it may be said, See, this is new? it hath been already of old time, which was before us."
-- Ecclesiastes 1:9-10

Somehow most of my professional career has been spend doing new software projects.  To me a new software project is one in which at least one thing is brand new which is being brought into the organization by IT.

Examples of new software projects

  • new middleware
  • new release tool
  • new business system

From my point of view, for even if I could say to have an understanding of someone else's point of view it is still my understanding of their point of view and not there actual point of view.  From my point of view, new software projects are a bit like asking someone to order lunch for a meeting and giving them a couple thousand dollars (obscene indeed).

For a couple thousand of dollars that lunch better be really good and it better be there on time or a bit early.  O-and there will be hell to pay if there are any olives or if it is not from that new place down the street that just got a 27 from Zagat!

New projects typically have some type of tight deadline, which more often than not is self imposed.  There may or may not be a real reason for the deadline, but it will typically be tight.  Sometimes someone very high up wants to make a good impression (and get a promotion after the project is done) or there is some feeling that since you are using this new magical tool everything will be done like "that"!

If you are on a very large new project you'll more likely than not will bring in outside help.  As Niccolo Machiavelli tells us this is dangerous.

"Mercenary and auxiliary troops are useless and dangerous. Mercenaries are “disunited, undisciplined, ambitious, and faithless.” Because their only motivation is monetary, they are generally not effective in battle and have low morale. Mercenary commanders are either skilled or unskilled. Unskilled commanders are worthless, but skilled commanders cannot be trusted to suppress their own ambition. It is far more preferable for a prince to command his own army."
-- Niccolo Machiavelli
The Prince, Chapter XII

The people you bring in to help in general do not really care about you, your project, or company; they are simply there to get paid!  It is rare, but there are some consultancies that seem to care, but this is the exception not the rule!

That is one of the biggest advantages with run the business work, the people doing the work will have to live and breath in the same environment which they are creating.  If you have people who really care they will follow the Boy Scout Rule:

"Always leave the campground cleaner than you found it."-- as quoted by Uncle Bob
Clean Code

This means the more people who really care work on a legacy system, the better it will get!

Working with run the business type of system is like have a meeting over lunch because one of the key stakeholders is not available any other time in the next two weeks because they are going on vacation.  The person setting up the meeting is really sorry, in fact they are so sorry they bring in lunch for everyone.

No one expects much more than keeping things going from run the business type work.  Meaning you'll get to do what you think makes the most sense for the work at hand and often they are understanding if things take a little longer because the system is a little quirky.

The non-conclusive conclusion is that both types of work have there pros and cons, but if you understand what type of work you are doing and what the world will be like doing that kind of work you can fully throw yourself into it and make it the best it can be.