triactassociates.com Blog » General
 
   

Software is like construction (really!)

Posted in General by Steve on the November 13th, 2008

 I’m personally amazed at the amount of literature comparing Software development to building construction (e.g. - http://twoalpha.blogspot.com/2006/04/software-development-is-like-building.html) and of course there are detractors who point out the flaws in the analogy (e.g. - http://www.kuro5hin.org/story/2003/3/13/211831/159), but I think both the advocates and detractors each miss an important issue:  Not all types of construction are the same, and even within a category (parking garages), there are multiple approaches and quality of outcomes.

I contend the most apt construction analogy for software is residential construction because the overwhelming majority of projects represent a similar number of man-years of labor to complete.  The five criticisms of the construction analogy pointed out in the critical reference above actually are as valid to the construction industry itself as to the software industry.  As any homeowner who went through the pain of a custom homebuilding project can tell you - the Architect better not be sole creative influence, or all sorts of structural problems will ensue.  A good builder brings wisdom to the planning/designing process the architect cannot or will not provide.  Frank Lloyd Wright is renowned as a genius of design, but in fact many of his projects were plagued with problems because he didn’t have (or allow) a master builder to collaborate in a manner that might have mitigated some of those issues.

The fallacies in the comparison of software development to construction are really due to the pervasive influence of mass manufacturing as the sole model for low-cost production over the past few decades.  My in-laws live in a house built in the 1950’s that was a low-cost tract-home in its day, but in many regards is better built than the higher-end tract-home I live in today.  I believe this is a result of the “liquidation of labor” - which rests on the assumption that labor is a commodity - resulting in a one-way flow of information from those whose work is valued, to those whose work is not, resulting in shoddy work, higher cost of rework, schedule delays, etc.

Mass manufacturing trades consistent replicable processes for the skill in skilled labor.  The measurement of “quality” in mass manufacturing is a measure of consistent outcomes.  Somehow, we’ve been duped into accepting this devaluation of the concept of quality - which used to mean the intrinsic value or worth of a thing.  If we buy into the idea that a consistent outcome represents quality, then a hamburger at McDonalds is by definition a better quality hamburger than one produced by a brilliant but slightly inconsistent chef.  I don’t know about you, but I don’t ever want to be brainwashed to the point where I consider a McDonalds hamburger a high-quality food item!

Likewise in the software business, folks keep trying to invent (or repackage) processes that are supposed to generate quality (consistent) outcomes and thus allowing the devaluation of skilled labor (effectively “liquidating” labor).  Hmmmm. . . I sure hope they never figure this out!  At the end of it all, an ideal process might be able to produce a consistent (mediocre) outcome, but it will never arrive at the superior results of skilled craftsmen (I offer you Microsoft Vista vs. Linux as a prime example).

Labor Liquidity

Posted in General by Steve on the November 11th, 2008

 

Thanks to my son’s history project this semester, I tripped across a term I think is relevant to what I’ve been seeing in the technical workforce over the past decade:  “Liquidation of labor”.

 

Henry Ford shocked many of his contemporaries by creating a program providing employees the opportunity to earn a higher wage (double the going rate), based on tenure, accomplishment, and (early in the program) personal character.

 

His company was suffering from 300% annual turnover - which seems unthinkable today, but gets at the heart of the notion that labor is a commodity with no uniqueness, and thus has “liquidity” allowing it to be bought and sold at the lowest possible price - just like grain on the commodities exchanges.

 

While we like to think of enlighted business practices coming much later, Henry was pretty avant garde - see if this doesn’t sound like something from the 1980s & 1990s: “It is not usual to speak of an employee as a partner, and yet what else is he? Whenever a man finds the management of a business too much for his own time or strength, he calls in assistants to share the management with him. Why, then, if a man finds the production part of a business too much for his own two hands should he deny the title of “partner” to those who come in and help him produce? Every business that employs more than one man is a kind of partnership.” [Henry Ford: My Life and Work]

 

Shazam! Now, I don’t think Ford was an exuberant altruist - but he certainly was hip to enlighted self-interest. Retaining workers increased quality and reduced the cost of production - and higher wages increased demand for the product they produced - which on the grander economic stage drives overall economic growth, which is very good for the captains of industry as well as the laborers.

 

Unfortunately, the wisdom exhibited by Ford and many others over the past century seems to be out of vogue in the technical world, where offshoring is just one manifestation of the flawed philosophy of “liquid labor”.

 

Every time one of us establishes a long-term relationship with a client (or a vendor/service provider) within which we can demonstrate the value of “partners” as opposed to commoditized laborers, we help counteract this destructive trend toward commoditized labor.

So much for daily discipline . . .

Posted in General by Steve on the November 7th, 2008

 OK, it has to be humorous to see the 10-day gap between this post and my last post pointing to how what is important isn’t always what’s urgent and urging us all to focus on what’s important.  Hmmm. . . So what does that say about how important I think my daily blog entry is?  We all fall short of our ideals - mea culpa!

There are definitely two schools of thought on time management.  Those folks who are linear thinkers focus on daily discipline as the path to better living.  Many folks follow their muse on a daily basis, casting routine to the wind and bouncing back and forth between obvious herculean productivity and apparent vegetation.  I love the idea of structured time management - it is logical, comprehensible, and oh-so- structurally elegant.  Unfortunately, this doesn’t come naturally to me - and despite repeated attempts to remold myself over the past three decades, I am no closer to Stephen Covey’s ideal of self-discipline.

On the other hand, I get the bills paid on time (I hate late fees and penalties), I don’t spend more than I make, and I consistently meet deadlines for my clients.  I even manage to strike a good balance of time for God and Community, and my family.  So how does that work anyway?

I believe we need first to honor the principles of balanced priorities (like Stephen Covey’s 7 habits), but not to worship a particular methodology for enacting those principles.  I am reminded of Jesus’ rebuke of the Pharisees:  “The sabbath was made for man, not man for the sabbath”. 

I believe we must also not pedantically cling to a particular way of living out those principles.  I’ve tried many organizational systems, and while I was able to follow some better than others, none fit completely - and most were very burdensome.  What works for me seems to be an ever shifting array of external reminders.  When a reminder stops working, I can replace it with a new one.

Software now helps more than it used to.  I set reminders in Outlook; I flag contacts and e-mails for follow-up; I get reminder e-mails from others;  services like www.rememberthemilk.com  will nag you by e-mail, twitter, and text message.  My wife has a daily reminder in her calendar asking “what’s for dinner?” so she’ll stop to think about it in the morning instead of having a creative panic attack at 5:30pm.  The tools are out there  for us to create our own “extended conscience” so we unorganized people can function (and even thrive) in a world that worships organization.

With all of my external “nag-ware” handling organization for me, I’m much more free to let my mind operate in the intuitive fashion that is most comfortable for me and generates the best outcomes in all that I do.

Important is not always urgent

Posted in General by Steve on the October 23rd, 2008

I’m finding myself in a daily struggle to stay focused on what is important and managing the constant distraction of what is urgent.  What’s the difference you may ask?  Urgent is the customer calling with a server down or a critical bug in their software.  Important is taking the time daily to write a blog post. 

How could writing a blog post be more important than a down server?  Several reasons, here are two: 

  • consistent practice of any daily discipline reinforces commitment to all daily disciplines, including those that help prevent emergency situations from arising (think checking in your code every day)
  • Blog entries must be fresh and frequent, or your blog won’t attract or retain an audience

Socrates perhaps said it most concisely:  “An unexamined life is not worth living.”  Taking time to write, to think about ourselves and how we relate to others and the world around us is never urgent, but it is important.  In fact, how we respond to the urgent matters that arise can be traced back to the health of our contemplative life - the folks I know who are most thoughtful about their own place in the world are the ones who are best able to keep a cool head in a heated conversation, and are best able to calmly assess the best course of action when circumstances are most difficult.

So take a little time today to think about what is important in your life - it probably isn’t the latest urgent emergency.

Free can fit

Posted in General by Steve on the October 7th, 2008
    I was looking for tools to generate site maps for web sites, and because SEO is hot right now (see post from last week), there’s certainly plenty of search results.  Academia is wonderful because in the interest of generating knowledge, things are built that through the magic of the internet can be freely shared at no cost to the producer.  Google has used free services to turn the internet into the television of the 21st century.   Broadcast radio and television in the 20th century extended the paid subscription model of magazines and newspapers (for which the subscription cost is really just a readership qualifier) into a domain of “free” content, with the caveat of enduring paid advertisements.    

    While we’ve all come to expect and put up with the advertisements of free services, the internet has gone one better, giving consumers the privilege of paying to NOT have advertisements - they really don’t care if the consumer pays, or the advertiser pays, just as long as someone does.  Thank you Cable TV with HBO and TCM!

    The great thing is that the cost of distribution is now carried by consumers paying their ISP’s, including phone and cable companies, so the infrastructure for information-based deliverables is covered.

    Free deliverables come from many sources, including high-minded open-source projects, academic endeavors, “gimme’s” from companies giving away lightweight versions of products you can then upgrade to “professional” versions, and “gimme’s” that are just pure advertising from a company (if you like product A for free, imagine how great product B will be at just a modest cost per month).

    Here’s my rules for finding and testing free software to ensure it works and is not malicious:

  • Products offered on official (reputable) university sites usually work within advertised limits
  • Open Source projects with a large installed base can be a good choice
  • Free teaser versions of software from a reputable supplier are often a “good-enough” choice
  • Test in an environment (local and host both) where if something goes wrong and/or malware gets loose - no production work is affected.
  • Keep your anti-virus software up-to-date - it’s worth the subscription fee for ALL your machines (I use Symantec at home and AVG at the office - I’ve had a good experience with both)
  • Use your test environment to determine if/when a particular package will fit your needs - think outside the box and try to break it (more on good test methodologies in posts to come)
  • This last point is illustrated by my experience seeking a site mapping utility.  I found a nice ASP.Net freeware product called Sitemap.net.  They produce a nice sitemap.xml  file, BUT it only works for a “flat” site.  By that I mean that although it simply looks for file names with particular extensions (.htm, .html, .php, .asp, et cetera).  So if all your files are in one directory, and you’re not generating dynamic content from a database - this works great.  Unfortunately, it didn’t suit my need for indexing a database-driven site (I wound up writing a stored procedure myself that did the trick), but it worked well within the limits of its functionality, and the price is right.

    Unfortunately, time is money - so if you’re shopping on your own behalf, you may want to pay for something that will clearly do what you want - or turn to a trusted service provider who can help you select a solution that fits.

Who builds better?

Posted in General by Steve on the October 2nd, 2008

 Because I’m in the software business, I frequently get asked if our company works with a particular tool or technology - and often these questions are litmus tests to qualify my company for work with a client.  In a day of automated screening of resumes by keywords, I fear we are losing our way.

In an earlier post, I referenced what I call the “Home Depot effect” - so I’ll now explain what I mean by that.  In the world of construction, retail chains like Home Depot and Lowes have made it easy and affordable for the average weekend warrior to buy or rent tools, take classes, and attempt home makeover projects that would have been beyond the reach of most folks just a generation ago.  As with any sea-change, the effects are not always good.  When the tools are accessible and usable by more people, the quality of work goes down (just look at the average television shows now that there are hundreds of cable channels instead of just a few broadcast ones).

Accessibility and usability of tools doesn’t translate into better outcomes - on average it means poorer outcomes.  The offset is simply a larger volume of outcomes.  On the surface, this appears to be a good trade-off, because work that wouldn’t be done at all if a pricey professional had to be hired wouldn’t be undertaken at all.  Sometimes the work is so shoddy that perhaps it would be better to have none, but on the whole it seems like a good idea to have mediocre results rather than none.

This works great for building a dog house, and certainly many software applications for individuals and organizations wouldn’t exist if not for the ease of use afforded by spreadsheets and access databases.  In theory, there is still the same amount of professional-quality work being done, even though the volume of amateur work has mushroomed so that the average quality of construction has declined.

But what happens when the only experience most people have of a particular discipline, like architecture or software design, is born from these easy to use tools?  The old saw (pardon the pun) was “measure twice, cut once”.  This is the fundamental paradigm for quality in manufacturing - getting it right the first time produces a better quality outcome than one or more rework cycles.  How is it then that in both the construction and software industries the new paradigm is to slap it up quick and rework as necessary.

Don’t get me wrong - I understand the differences between designing/building a house and designing/building software - but I also understand the similarities.  The more important contrast is between commercial and residential construction - which has an analog in the software industry as well.  Residential construction is generally undertaken with the premise that what you see is what you get, and the lowest cost to deliver means that the outward appearance drives the overall design - so that the underlying foundation and framing match exactly the “skin” of the house - so internal walls are load-bearing and all the plumbing is sunk into the concrete foundation.  Essentially the path to lowest cost of construction is to design and build from the assumption that nothing will ever change.  In contrast, (good) commercial construction starts with the premise that the building will be in use for decades, and the needs it must serve will change.   The expectation is that interior walls, electrical wiring, plumbing all will change over time, and the building is designed and constructed accordingly. 

This difference is often invisible for the first years a building is in service, but when the first major renovation comes along - it makes a difference.

What does this have to do with the Home Depot effect?  Well - architects and builders putting up large commercial projects didn’t just learn to use the tools building dog houses and then put up high-rise buildings.  Many of the tools are the same, but the principles and approaches are different.  Commercial construction is more expensive up front, but in the long run - where it is a good fit - the total cost of ownership is lower.

Unfortunately, most folks never have a chance to understand why commercial construction is different or more expensive - they just enjoy the benefits of it from time to time.  Even fewer folks ever understand why commercial software construction is more expensive - and many businesses suffer from ill-fitting software as a consequence.

That’s a long winded way to make my point - which is essentially that a skilled craftsman can more easily become proficient with a new tool than a proficient user of a particular tool can develop the skill to deliver large, complex projects.  More on the long view of balancing experience and skill in another post.

Focusing on ROI

Posted in General by Steve on the October 1st, 2008

 Market turmoil has everyone thinking about cash flow - which is certainly a constraint faced by every business - but the foundation for making good investments in your business is still Return on Investment.  Although it is tighter for many businesses today than a year ago, cash flow has always been a limiting factor on business investments.  Many projects a company could undertake have positive returns, but cash flow (and management attention, but that’s another post) limit the number of projects that can be undertaken in a given year. 

When setting priorities for using limited resources, ROI analysis provides a clear and objective approach to determining where to use those limited resources.  During go-go economic good times, ROI may focus on upside potential of adding new accounts.  Today, many companies are taking a look at the gloomy forecasts for revenue growth, and seeking to boost profits by reducing cost of operations.  Either way, the same ROI logic prevails, because the Returns calculated by a proper ROI analysis can come from increased revenue, reduced costs, or both.

Many folks think reduced costs means layoffs to lower labor costs - and this may be a valid place to look for savings, but many times - especially for smaller businesses - core staff cannot be cut without causing more damage to the business than might be gained from the lower labor costs - not to mention the cost later to train new personnel when staffing back up.

Here are some ideas for projects with cost-reduction-based ROI you might want to consider:  auditing parcel shipment charges to catch overcharges;  shopping telecom contracts;  installing energy-saving devices and monitoring systems;  use telecommuting in place of travel  and to reduce office-based energy expense.

If you’re looking at staffing cuts, consider using a service provider to fill the gaps left by staff departures - and don’t rush to hire again when business heats up.  Take advantage of the learning curve the service provider will have climbed up and evaluate their cost of services against the full cost of adding back a full-time staff person, including benefits, office space/supplies, and training.

SEO Buzz

Posted in General by Steve on the September 30th, 2008

 SEO is hot!  SEO Consultants are popping up faster than Y2K Mitigation consultants in the late 1990s.  Is this a good thing?  Yes and no - Search Engine Optimization (SEO) is important to everyone who intends for their web site so we all should be paying attention to it, but the level of Buzz surrounding it suggests that many SEO “experts” are cashing in on the ignorance of their clients.

Don’t get me wrong - many disciplines are comprehensible to the average Joe, and the average Joe is still ahead to engage a professional to get the job done well (and for those who insist on always doing it themselves - I’ll expound on “the Home Depot Effect” in another post).  Unfortunately, most business people with web sites haven’t spent the time required to get familiar with the basics of SEO, so are unable to determine if a SEO consultant is competent or if they are getting fair value for what they pay.  So my message to all is this - educate yourselves!

There’s a lot of good information for free on the web (e.g. - http://www.thunderdata.com/web_services/website_search_engine_optimization.html) and there are good books on the subject (e.g. - http://www.amazon.com/Search-Engine-Optimization-blueprintfor-effective/dp/0470224487). 

 

If you don’t have time to learn enough to judge the value of SEO consulting for yourself, get someone you trust who has invested that time to help guide you through selecting that important partner for building traffic on your web site.

My little stowaway

Posted in General by Steve on the September 20th, 2006

Clyde is a horse, a Clydesdale to be specific, and he’s real - especially to my daughter.  I’m tempted sometimes to see Clyde and his many fellows (can you have too many stuffed animals?) as mere playthings, but . . . they’re not.  In the wonderful world of my daughter’s imagination, each has a name, a personality, and gifts to share.

So, it was kind of like waking up in “The Velveteen Rabbit” when I found I had a traveling companion with me while traveling out of town this week.  Drawn into her world by this little fragment that had stowed away in my briefcase, I was instantly filled with delight that seems to be the sole province of children.  My imagination took a turn with what his presence was supposed to convey:  Was he sent along as a work-horse so I’d finish with my client quicker and come home sooner?  Perhaps he was supposed to keep watch and guard my computer while I slept?

Clyde working

My delight was only exceeded when I called home that night and she asked me if I’d found any surprises.  I had to string her along a little bit, but then I sent pictures of Clyde helping me at my computer and putting me to sleep - and you could almost see and touch the joy in her voice as she exclaimed “Oh, my goodness!”

 Clyde slept with me each night - I’m not sure if I did that for me, for my daughter, or for Clyde - but it felt right.  It felt real.

Living in a digital world with electronic media where the ephermeral pictures and dialog (like this?) are tucked out of sight and mind on hard disks and NVM, I find that my most cherished possessions are still the ones that I can touch and hold - especially mementos of those I love.  Somehow, if I can just touch something that’s real for them, it becomes real for me, and there we are, standing in a shared reality.  Talk about portals to virtual worlds!

I can’t carry my loved ones with me everywhere I go, but I can be with them wherever I am - so I guess now I’ve discovered Clyde’s mission after all - to bring me into the presence of love and joy with my daughter even while we are physically apart.

Welcome to the Triact Associates Blog!

Posted in General by Steve on the September 12th, 2006

Web sites are about sound-bites, so it’s hard to convey a sense of who we are and why folks choose to work and play with us in the messaging constraints of a web site - soooooo . . . we are introducing the Triact Associates Blog, where we will hold forth on topics we hope help you get to know us just a little better