Skip to main content

Fast, Easy, Quick. Pick 2

There are so many catch phrases used in our (every) profession that are accepted as truth, that I would explore a couple of them.

They are:

  • - Re-writes never work.
  • - Fast, Easy, Quick.  Pick 2.

These phrases are used more to support a preexisting position of the programming staff than reflecting any real truth.  They are tools of propaganda and mis-information that are pulled out once in a while to guide decisions to a pre-determined goal.

While experience may have proved these statements to be to true, they must be looked at in context and the amount to sampling to achieve these so called truths.

For those only having 5-10 years of programming experience behind them, the occurrences of major re-writes and FEQ (Fast, Easy, Quick) decisions may be limited.   Re-writes of a major product are not that frequent or a product would never get released and provide the business with time to recoup it's investment.  Likewise with the repercussions of FEQ decisions where monitory repercussions go up with the increased pressure to cut one or more of the FEQ triads when getting a product to release.  For the most part these phrases do appear to hold up as truths.  Re-writes do have a large share of issues and FEQ does result in giving up something in the product.

But given enough time, 20-30+ years, there will be times where you can observe conditions where these statements are just wrong, but the conditions have to be right.  Lets take a look at these conditions.


Re-writes never work:


Re-writes are required for a number of reasons.  The new engineers don't (or won't) understand the existing code, so they want to re-write it.  Times have changes and it's time to switch to a new language.  The existing code base will not support new features and/or a new architecture is required.  The project has failed and we need to get something done and released.  It's this last case where re-write failures are high, when the prior revision also failed or was flawed in some way.  And it's this context where the statement of "Re-writes never work" is most often used.

What ever the reason, the basic context of the re-write needs to be different.  You can not expect the same staff, management and culture to product much different results, something needs to have changed.

I example of this is A Palm Postmortem.  Where same staff, same result except for a small context shifting group that produced the WebOS.  I did not even know about the failed OS between Palm OS6 and WebOS!

Re-writes require different thinking, understanding and knowledge and far too often staff overstate there ability to change or understate their expertise in the engineering required for the re-write.  It's easy to fall back on what you know and the same behavior.  Sure, I'm an expert in X & Y!  Humm, maybe not.

This is where the engineers should re-evaluate themselves for what is in their thinking, behavior and desires that helped enable the failure of the previous version of the product.   Tool, language and design choices based on their personal goals rather than the projects needs?  Where their goals the same as the products?

It's tough to admit that personal flaws and feelings effects professional responsibilities but they do.  How much they do can decide between the success or failure of a project.

Re-writing a failed project requires new thinking at the least and maybe new staff or management or both.


Fast, Easy, Quick.  Pick 2:


For the most part, I agree with this statement.  You can not have everything in the project all of the time.  There are always constraints and something has to give.  Trying to force all points of the triad to be 100% does not work and will only led to stress, conflicts and hidden failures on one or more points.

However, there are cases where you can get real close to fulfilling all points.  No software engineer can be be an expert in all domain areas that a project may require.  We can be an expert in a couple (at most) of areas but then generalist in many others.  The problems arise when it's not really known whom is an expert in a specific domain vs others that are more vocal, visible or in some other way viewed as an expert.  the resulting mix of personnel that are placed on the project development may very well suffice for it's development but still under the pressure of FEQ.

But, when the right expert personnel (in knowledge and management) are staffed for a specific project then the FEQ goals can easily be achieved.  It's rare, I've seen it twice in my 30+ year career and when it happens, its magic.  It's does not matter what project management process is in pace as this mix of staff and knowledge will far exceed any productivity difference processes can provide.  It's the people and their understanding of themselves that provide the boost to the project.  Communication goes up, the goals are all in the same direction and all FEQ triad areas are kept in scope.

It does not last forever.  Projects end, staff move around, life continues and everything changes.  When this happens all things are possible, but then again, I've only seen this happen twice in 30+ years.

Comments

Popular posts from this blog

There is no "Right" way.

It's not that your way is not the right way, it's that everyone has their own right way.  So which is the right way?  Is there a right way? Software development is full of discussions that revolve about the "right" way of doing something. The terms used in discussing software design, tools and implementation are so undefined as to make them meaningless.  Code is not designed and written in a vacuum, it's designed by real people in real companies, each with their own constraints and issues.  Code that may look like a hack could have been the result of an employee dragged out of bed at 2am by a company shirt that only cared that they they did not lose their personal client the next morning.  Everything must be looked at in context.  A project written to "Best Practices" may never be finished before development funding dries up.   Goals, vision, constraints and thoughts should be somewhat aligned for project to be successful (or at least enjoyable ...

3rd Try is a Charm

I've been trying to draw / paint these barns for a couple of years but never felt or got them right.  This time I think they turned out right. So What went wrong before and what's right now with this drawing?  This time, the light was right.  It's coming from the upper right and the shadows just looked right.  The other thing is the corn field on the left had to "be in season", otherwise it's just a plowed field.  I had taken other photos from different angles but they never felt right.  This angle has the road, power lines, corn field, etc. all leading to the right.  The shadows on the lower right helps fill in that corner (don't forget about the corners!).  The last part is trying to draw (ink paint maybe) the trees in the background.  Not so easy when they are kind of a blob is green shades. So yeah, it's composition that is king.  Many times I just don't see it until the drawing / painting is finished and when it's right it feels goo...

So THIS is My Style?

 If I play around long enough my style will appear.  I'm guessing that this is kind of it.  I'll keep working on other techniques in watercolor but for now this appears to be my style. I do like it and others appear (to my face) to also like this.  Not every one of my paintings is a success.  About 1/3 so far, but when they do I am rather pleased that anything good comes out of it at all. I do love color.  Color is happy and outdoors is full of color, be it the west or back east with the greens.  Color color color. Also doing some painting on hot press paper and see how that goes. Later......