Featured Post

Thursday, July 2, 2020

The Theory of Software Stability

Copyright © Thought Rising 2020 All rights reserved.

Abstract



Software Stability is a software engineering theory advanced by Dr. Mohamed Fayad in 2001; however, the term "stability" in the realm of software has only recently been used by a few technology companies such as Amazon.com, While not with the same methods as Dr. Fayad has documented.  Nonetheless, The notion of Stability has entered the language of corporate America through a philosophy that urges all corporations to be good corporate citizens.  When confronted with the economic benefits both in cost savings and public perception of a commitment to stability and sustainability with respect to concerns including environmental footprint/carbon footprint, the notion arises that the concept of stability might also find a foothold in software economics.  Thus we conclude that Software Stability Theory now must be examined carefully within the the academic literature pertaining to Software Engineering.  Similarly, Dr. Fayad's notion of Software Stability deserves a proper treatment and must be taught and shared with other Software Engineers for the betterment of all software engineers.

Software Stability in a Nutshell

  1. Simplicity and Elegance of Software Architecture, Design and Coding

Software Stability theory targets a renaissance in software engineering and a return to the guiding principles of simplicity and elegance in Architecture, design and coding.  Thus, we start with the mandate that simplicity and elegance of software is a desirable characteristic, which yields superior outcomes.

In a nutshell, Software stability is both a scientific theory for rapid software engineering and it is the only software engineering practice that fully embodies the desired objectives of Agile.  It achieves this objective by emphasizing simplicity and elegance of architecture, design and coding.

The core Principle of this theory of  Software Stability is that Patterns are at the core of any software that is built.  It can also be said that anti-patterns are at the core of any software that is built.    This does not mean that software is necessarily bad if it employs one or more anti-patterns.  What it does mean is that all software can be improved and should be improved as much as possible.  To wit, this is central to the agile concept of iterative development; however Software Stability takes the notion of software improvement to another level.  The objective of a software product must be that it is architected, designed and developed with the understanding that software must be maintained and improved iteratively.

As patterns are at the core of software improvement and software innovation, Software Stability targets solutions that employ stable and reusable patterns throughout the software engineering lifecycle.  By employing optimal patterns (Software Stability Patterns) within a software architecture, design and development efforts, you can greatly improve the economics of any software product.

This point is key: Every software engineer has had the experience of discovering a powerful and new approach to modeling a specific software solution and observed the following benefits:

1) Simplified and streamlined software maintenance
2) refinement of the support model for a software product.

Software stability mandates that we employ this approach holistically thereby creating simplicity and elegance of architecture, design and coding throughout all facets of software engineering.

2. Complexity is not a Friend

Software stability stands in firm opposition to the notion that a software solution must necessarily be complex and that complexity itself is inevitable.  In fact  it is central to software stability that complexity is an anti-pattern and that you must simplify relentlessly in order to build innovative software that yields high quality and remains cost effective over time.

3. Agile is not a Silver Bullet

Agile has received a great deal of hype among all technology companies.  Yet, the fact remains that Agile has failed in software engineering organizations with the same frequency that these teams have failed in non-Agile regimes.  An exhaustive analysis of project success within Agile and Non-Agile software engineering teams would reveal few insights about what exactly has gone wrong, but it  would likely fail to raise the most important point:  Namely, that Agile Methods, such as Scrum, Kanban, Lean, and XP are not software engineering methodologies.  Rather, these are Project Management Methods.  None of these approaches prescribes how software should be engineered.  This is where Software Stability is an important software engineering approach for achieving  true and reliable Agile results.  In fact, Software Stability is the only software engineering approach that embodies the same principles detailed in the Agile Manifesto.






Wednesday, July 1, 2020

Confused about Racism?

Copyright © Thought Rising 2020 All rights reserved.

I am confused by all of the rhetoric about Racism in the news and  in discussions with friends and family.  First off there is this term "White Privilege" that confuses me greatly.  Somehow because I'm  white,  I am a beneficiary of White Privilege.  Because I have White Privilege, it is concluded that I'm an institutional racist.  This simply doesn't calculate.  When White Privilege is explained to me, I do not  recognize any of the privileges that I am an alleged beneficiary of.

I raised an African-American child.  Does that mean that he has White Privilege, since White Privilege is something that is passed down from parents to their children?  What about Colin Kaepernick?  Is he White Privileged since at least one of Colin's parents if not both are white?
What about Nate McMillan, a multi-millionaire coach of the NBAs Indiana Pacers?  Is he privileged because he has spent his entire adult life within the shield of the National Basketball association either as a player or as a coach?  He decries racism in our country, but I'm confounded about how exactly it impacts him. Moreover, I've listened to and read dozens of heated comments about racism from privileged public figures who happen to be African Americans.  I understand that they feel compelled to condemn racism and I don't have a concern about their sincerity, but I'd like to know exactly how a Black man or woman who has made millions or even tens of millions or hundreds of millions over their lifetime has been harmed by racism?  When you call the shots in your life everyday and never have to wonder about where your next meal is going to come from; when you've not had to worry about having a roof over your head for decades, and when you've lived a thoroughly privileged life does the color of your skin give you some privilege to voice outrage over a White-Privileged society that has beaten you down?  I find it completely incongruent with reality., That's not to say that Black Americans of the top tier social class should not comment on racial injustice, I just would rather see the rhetoric dropped down a notch or two and the underlying issues addressed.  Systemic racism is not something that can simply be fixed; however the underpinnings of systemic racism and social justice concerns can be addressed individually.  Black lives do matter to me and, in fact, all lives matter to me; however, through my decades of political and social activism, I have learned that rhetoric tends to cloud the underlying issues that can be addressed concretely, and diverts attention from the good work that can be done to improve our society.

I protested against Apartied as a University Campus organizer in the mid-1980s.  Does this absolve me of any of this White Privilege that I am accused of?  Does it make me any less a racist that I have put my body and soul on the line for Racial Equity?

I am jewish by birth.  I was raised in a family that was not well-to-do.  We lived far beyond our means and mom and dad were perpetually bankrupt.  I had to work hard for everything that I've accomplished in my life.  Nothing was handed to me.  Does this reduce my White Privilege, or merely increase it?

For 20 years, I have been counselling Parents of divorce or paternity-related actions involving the family Courts.  I have been emphasizing the importance of Fathers having close bonds with their children.  I have counselled Fathers, and some Mothers of every race, creed color, religion and gender including a number of LGBTQO+ parents.  Does any of this this atone for my despicable white privilege?

I have a 30+ year record of political action supporting racial  and gender equality, yet I am institutionally racist.  This is what confuses me.