Featured Post

Saturday, September 7, 2013

A Brief Introduction to Software Stability in the Enterprise

Software stability is an interesting term.  As a software design paradigm, the concept was first proposed by my good friend, Dr. Mohammed Fayad, a distinguished member of the Computer Science faculty at San Jose State University.  A very light introduction to Software Stability can be found on Wikipedia (Software Stability Model) and another introductory article can be found on Dr. Fayad's site at SJSU (Intro to Software Stability) which  in turn will lead the reader to other materials that will help to better understand some of the underpinnings of software stability that are beyond the scope of this blog post.

The key concept posed in the research is: Software deterioration is caused by changes in software, and although change cannot be avoided, it's impact can be minimized. By examining the aspects or characteristics of software engineering that lead to stable software solutions, enterprise IT departments can mitigate the risk associated with change resulting in reduced cost of ownership related to support and maintenance. Furthermore, the expensive IT resources employed to support the IT systems landscape in the organization can be better leveraged to deliver added value to the enterprise rather than being consumed with lower-value maintenance tasks.

While Dr. Fayad and several of his colleagues have published a book and a good number of articles on the subject, it is a near limitless field of study.  For this reason the scope of  this series of blog posts will address those topics relating to software stability in enterprise computing.  While Dr. Fayad and  I would like to see practicing the the comprehensive methodology of software stability throughout all software teams, he and I are both pragmatic and sensible.  We realize that there will be corners of the software professions that will pick up on these concepts. Still, others will adopt similar approaches without realizing that they are employing the tools, patterns and practices laid out by Dr Fayad and other researchers.  After all it is a wonderful, if not confusing thing about software engineering -- researchers and practitioners often have two or three names for the same principle. For example the concept of design patterns is nothing more than a codification of what good developers had been doing for years prior to ever seeing the concept in print. For example, while working in various software development teams before the Gang of Four (GoF) published their famous treatise on Design Patterns, we did  not merely talk about lines of code, but we had consistent names for software artifacts that we created in the course of our work, often these names were reflected in the name of a code modules that participated in specific features of a software product.  Our names did not match the nomenclature of the GoF, but there were striking similarities.  For example, what GoF referred to as a "Factory", we may have termed a Machine, Processor, Compiler or Builder, often borrowing terms from other disciplines both disciplines outside of Software Engineering (Often terms borrowed from the very domains in which our Software Solutions were built to aid in efficiency of automation and of data collection), and inside of the Software and IT spheres as well.

The term "software stability" should be a standard in the vernacular of software practitioners in the enterprise, just as the term "design patterns" is a universally understood term in software development circles.  It is important that it be treated with some consistency when we talk about software quality, reliability, controlling costs and increasing value to the enterprise. This series of blog posts is intended to explain why software stability is a vital discipline in the enterprise.  That said, there are still many who struggle with the concept of software stability.  To characterize this challenge, let me first share a story about my first attempt to convey the value of software stability in corporate America:

When I first mentioned the concept of software stability to a software development director at a fortune 500 company eight or nine years ago, he was actually offended that the word "stability" would even be mentioned in the same breath as software.  His reasoning was that software in the enterprise is constantly fluid, and therefore, we have no business trying to make it stable.  Stable software in his opinion was end-of-life software.  While I understood his concerns, it was clear that his sense of stability meant something different than what I was talking about.  I realized that it can be difficult to get even the most well meaning IT professionals to appreciate the need for software stability.  Even years later, many in the industry are not ready for software stability. Perhaps it is due to the explosion of the "App Store" mentality where software is expected to morph and change all the time -- where would we be without our updates? Perhaps it is due to the broad adoption of agile concepts -- certainly it is intuitive that being agile is the opposite of being stable, right?

Wrong!  Agility is not the antithesis of stability.  The two are complimentary -- if not necessary and integral to success in an ever-evolving software landscape.  Software updates do not imply that the software is inherently unstable.  In fact, it is the stability of software that ensures that a software product is viable over time and remains reliable over numerous updates.  Enterprise software platforms such as SAP, and Oracle's ERP and Database technologies are inherently stable they run reliably and they have been around for decades. These products are continually updated.  Of course, those opposed to the concept of software stability will suggest that SAP and Oracle are not agile companies and they don't offer downloadable apps that are updated on a regular basis, so maybe these are not good examples.  It's a fair concern.  So, what about the IOS and Android platforms? Surely these are agile technologies and downloadable just as the applications that are downloaded onto these platforms.  I rest my case.  IOS and Android OS are agile technologies they are also stable technologies.

But what is it that makes these technologies stable and what is it that enterprise solutions architects and developers and IT managers and executives can learn from these technologies and from the concept of Software Stability?  To a degree it is infrastructure and architecture that contribute to the stability of these technologies, but there is more to it than that.  There are important concepts at play including Enduring Business Themes, Enduring Business Processes, Business Objects and Industrial Objects.  In Enterprise computing,  we need some standards and discipline that allow us to characterize the processes and characteristics of software stability in the enterprise.  We need formal techniques that allow us to measure that stability.  Disciplines such as unit and regression testing help with this but software stability is much further reaching and starts from the principle that quality and adaptability must be designed in to a solution.

The concepts of Enduring Business Themes, Enduring Business Processes, Business  Objects and Industrial Objects are important and I will describe how these concepts ought to be leveraged in the development enterprise software in future blogs on the subject.  It is important to point out that my concept of software stability in the enterprise is even broader than what you might glean from the academic literature on the subject.  

It seems that enterprise software solutions come and go and we in enterprise computing have become accustomed to 5 or 6 year obsolescence cycles where software gets re-written from scratch or replaced by a commercial product which is then jettisoned after another short 5 years, IT professionals do not necessarily need to accept that inevitability and Software Stability is a discipline that can help to add valuable and value-added years to the typical lifespan of software products. Even more important, Software Stability techniques can reduce the cost of ownership of software within the enterprise and allow software teams to be more effective.  In upcoming blog posts on this topic I will outline specifically how Software Stability practices deliver on this promise and I will explain what some of those key practices are. Software Stability should be a primary consideration of decision-makers in enterprise computing, because the cost-savings and value that a stable software solution provides is vital in controlling and intelligently allocating IT spend in the enterprise. Software Stability is an important consideration because stability and sustainability of software solutions does not happen by accident.  In fact, in practice it rarely happens by design.  Software Stability methods are a game-changer in the quest to deliver higher quality solutions with a longer viable lifespan and which yield a greater return on investment (ROI) to the enterprise.

Saturday, July 13, 2013

Being Economical

Other than re-reading The Old Man and the Sea for the first time in years, I'm not sure what got me started on an Ernest Hemingway kick, but it is wonderful how reading gets a person thinking.  Hemingway once said that the best story that he'd ever written was just six words.  At the risk of copyright infringement, the entire story is reprinted here:
"For sale, baby shoes, never worn."
A perfect example of "less is more".  The Guardian challenged some contemporary authors to match the economy of Hemingway's prose.  You can find the results here: Economical Writing Challenge.  Frankly, I tend to loath contemporary writers, because they tend too use to many words and really fail to deliver a story that I can identify with. But The Guardian's lot -- IMHO -- simply failed to capture the dimensions of Hemingway as most had merely one interpretation, or no discernible interpretation whatsoever. Furthermore, most failed to tell even a portion of the story.

In Hemingway's six words I see at least two stories and both interpretations seem to allude to a beginning, middle and end of the tale. I'll let you contemplate that and decide what you see. I really hate it when someone spoils the plot for me, so I won't burden you, the reader.

That said, I agree that one of the Guardian's chosen panelists, did impress me with a rather intriguing economy of words. Yann Martel (Life of Pi) waxed his best SciFi-Satirical when he wrote:
"The Earth?  We ate it yesterday."
Still, it's not quite as multifaceted as Hemingway's verse.

As for me, I'm rather partial to Poe, Twain and Vonnegut.  Philip K. Dick and Paul Theroux have their moments as well. I particularly enjoy short stories, but maybe that was a little too obvious and didn't need to be said. I also enjoy a good deal of Science Fiction.

... but I digress...

The purpose of this blogpost was to segue into a discussion of economics.  Although, I'd like to think that we might leave the "More Generation" in the dust, there's still far too much excess and gluttony in this country. I think that excess is largely responsible for the economic challenges that we are experiencing today.

John C. Bogle, he founder of Vanguard funds wrote a very powerful book, published in 2009.  It is entitled, Enough.  Talk about economical -- the title says it all in one word plus a period!  It's a fantastic read for all of those people who are fed up with the rat race and for those who envision doing business differently and living a truly purpose-driven life.

How is it that this has anything to do with literature and Hemingway or Vonnegut, for that matter? What is the intersection between economics and literature? Well, fortunately, I can refer to Mr. Bogle's words to make the connection.  The first paragraph of Mr. Bogle's introduction to Enough. reads:
"At a party given by a billionaire on Shelter Island, Kurt Vonnegut informs his pal, Joseph Heller, that their host, a hedge fund manager, had  made more money in a single day than Heller had earned from his wildly popular novel, Catch-22 over it's whole history. Heller responds, "Yes, but I have something that he will never have ... enough."
I rest my case.  Economics and the fallacy of largess are not just topics for disgruntled bloggers from suburbia.  It is a preoccupation for quite a lot of respectable people at all levels of our society, and it's much more than a fleeting concern.  Kurt Vonnegut took his last pinch from the Magumbo Snuff Box six years ago in April of 2007. His pal Joseph Heller took his leave from our once blue planet in 1999, so the discussion that Mr. Bogle shares took place over 14 years ago.  Mr. Bogle's book is available for less than $14.00 as of this writing (plus shipping) - talk about economical!  Click here to purchase "Enough" on Amazon.com

The Real Estate Bubble is blamed for the most recent economic collapse in this country, and before that it was 9/11 (really the Dot-Com Bust).  But "Real Estate Bubble" and "Dot-Com Bust" are just terms that fail to capture the full economic complexities that led to the weakening US economy.

The Real Estate Bubble occurred as a result of the herd mentality of largess.  People want to find the next big thing to cash in on.  For a time it was the stock market.  Unfortunately, the stock market went south following 9/11, a terrorist event that really had very little to do with the shaky fundamentals of the US Stock Market at the time.  Seriously, the stock market had been run up especially due to the Dot-Com Balloon of the late 1990s and the early part of this century.  And stocks were selling at inflated Price to Earnings ratios that simply were not sustainable.  Everyone was looking to get rich.  Working in the tech sector, I was surrounded by people chasing riches in high technology and when the Dot-Com Bust began, I watched as so many of these people started turning to hedge funds and day trading and increasingly to options trading with all sorts of crazy formulas for getting rich with other people's money.  While there are assuredly people who have made a comfortable living in day-trading and derivatives, it's little more than gambling and the house always wins in Las Vegas and in the Stock Market.

So, those who abandoned the stock market and other highly speculative ventures began to herd around the real estate market, especially the residential real estate market.  People will always need a place to live, right?  I don't disagree with the logic, but when there is more supply than demand, the forces of economics tend to take over and prices plummet.  In 2006, I was tempted to purchase an additional investment property.  After all, I was sitting pretty at 100% profits -- on paper -- of my current investment properties. The two places that seemed to be priced well and set in good neighborhoods were really run down and would need thousands, if not tens of thousands of dollars of repairs and they were selling for around $275,000, in Mesa, Arizona.

Perhaps I was not particularly enthusiastic about investing so much tine and money to rehabilitate these properties. It really doesn't matter.  Something held me back and I decided not to buy either property. Imagine my happiness within two years when the values of those properties plummeted to less than $75,000 each. I would have lost about 400% of my up-front investment (assuming that I financed the properties with only 20% down). While prices have bounced back somewhat, it is doubtful that these properties will ever reach the inflation-adjusted prices that they were selling for in 2006 or 2007. In fact, a dear friend of mine just bought one of those two houses just over a year ago (in 2012) for $120,000 - a much better investment than in 2006! And what of the properties that I acquired prior to 2006? Well I'm happy to report that I'm well in the black on those properties. Others were not so lucky.

Bubbles can be part of an on-going cycle or we can try to redefine the way that business is done. There are some straightforward measures that need to be taken to stabilize our economy:

1) Weed out the leeches that are only investing for insane windfalls and reward those who invest for the long-term.  This includes corporations as well as individual investors.  John Bogle has some very keen insights on this.

2) Find ways to bring traditional manufacturing back to this country.

Without a strong and thriving manufacturing sector, we are at risk of a far deeper economic collapse than we have seen in the past decade and a half. In order to create investment in the manufacturing sector in this country, we need to reward companies who employ domestic labor in the manufacturing sector right here in this country.  Regrettably, we need to assess taxes on those companies who send the work overseas, either through import tariffs or through direct business taxes.  This is not a simple thing to do but it is vital and necessary. The flight of manufacturing toward cheaper labor markets abroad is explained as economic necessity, but the return of manufacturing sector investment to this economy is of far greater necessity and importance not only to this country but to the global economy.  The concept is not protectionist in the sense of violating any sense of free trade.  On the contrary, it is akin to the laws against collusion and monopoly to require that American companies not mortgage the future of this country in the interest of short term profits by forcing real innovation rather than simply running to the fast money.  However, the concept is intended to ensure that foreign companies wishing to export consumer products to the United States are competing in a competitive market such that their products would have to match the quality standards of products manufactured in this country or in the alternative be substantially less costly.  Without a vibrant manufacturing sector of consumer products in this country capable of competing with foreign manufacturers, we risk being flooded with second-rate products that may be far more costly to consumers in the long run or alternately products that are simply dangerous

I realize that the implementation of such policies is difficult to conceive, but perhaps if the ideas gather some momentum and the dialogue becomes resounding we will see some changes.  What I do believe is that it is vital that the United States find ways to make huge strides to improve and stabilize the economy and foster real growth of GDP and all of the opportunities that germinate from a strong economy.  It is vital that we find ways for companies who are contributing to the improvement of the domestic economy to benefit from their contributions and it is vital that we alleviate some of the bureaucracy and cost of doing business in this country so that employers will favor the hiring of local workers rather than sending work overseas.  It is also vital that the United States contributes to the stabilization of the world economy certainly not by subsidizing the global economy but by setting an example for other nations to follow.

Friday, July 12, 2013

What is "Thought Rising"?

Thought Rising is a blog for the intersection of ideas about software and engineering, politics and government, art and music and, of course, sports.  Perhaps there is a helping of philosophy thrown in and perhaps it is a bit about making the world a better place, but I don't have grandiose ideas.  Similar to the way that Ernest Hemingway disparaged "big words" and instead wrote his stories about real people with everyday words and still managed to conjure big emotions, I think that simple is better.

Removing  the shackles of obtrusive bureaucracy and those things that interfere with people living good lives and doing good work is a preoccupation of mine.  Perhaps its the engineer in me that is always trying to design a better solution to a problem.  For example, why are there so many auto accidents?  It's the wrong question. How do we make automobiles that can intelligently avoid accidents?  That's a winning idea and interestingly enough, there are people in the auto industry today that are trying to do just that.  There are plenty of  problems that are begging for answers.  When those answers do not materialize, it is largely because the wrong questions are asked or the issue is ignored entirely.

I can't write about shackles without mentioning government.  Our government, by everyone's observations, including the sitting president, is gridlocked.  It has been for at least 14 years and perhaps for decades, depending on your perspective.  I'd like to do my part to call people to action and to gain attention to the dysfunction of Washington, D.C.  It's very interesting, that our legislators at all levels of government feel a compulsion to legislate about everything under the sun.  It occurs to me that we have far too many laws and there are some things that simply don't require legislation.  Again, I think that this is an area to apply the KISS principle.  If life were codified by laws that touch every aspect of our lives, then it seems that life would be rather boring.  And if there weren't so many laws addressing so much minutia, our legislative branch might be able to actually get some meaningful work done.  Perhaps we also need a balanced budget amendment.

It would be an oversight to leave out mention of art and music in this first blog.  Art and music are without question the glue that binds us together as people.  Art and music are a cornerstone of culture.  Art and music have the capacity to transport us from the burdens of everyday life and allow our thoughts to rise up and see beyond the mundane.  Sports has a similar reach and, as a huge NBA fan, I must comment on sports from time to time, especially Basketball.  It is a joy for me to watch tremendous athletes doing their thing, so this blog will also offer some editorial comments about sports and entertainment.