Friday, May 27, 2016

Architectural Chicken Eggs

Team. Software engineering is a rather new field originating in the early 1970s. With reuse being a key concept in this discipline, we have borrowed numerous "best practices" from other engineering fields which are more mature plus have more stable and reliable engineering processes. This includes the formal methods used in "clean room" development.

Lately, the CABOOSE Team has learned that,  in other engineering disciplines which involve building construction, architectural concerns are considered from the early stages of requirements elicitation. This practice is somewhat different from "textbook" software engineering processes based upon the waterfall model which fixes architectural design in the later stages of development. Textbook software engineering teaches that one should determine a product's features and requirements before deciding upon an architecture. If one starts a project with a certain architecture in mind, this limits the possible implementations and the requirements which the development process can satisfy. Thus, the chosen architecture has a great bearing on the requirements. But, requirements can greatly limit architectural choices. So, the problem of desired features and chosen architecture is a classic chicken and egg problem in software development.

But, if we take a simple philosophical view of the nature of chicken and egg problems, we might realize why the centuries old building engineering discipline views architectural design plus feature and requirement determination as concomitant (concurrent) processes. Given a fertilized chicken egg, do we have a chicken; do we have an egg? The answer for each of these questions in "yes!". Since the egg contains all of the materials needed for producing the chicken and the genetic program for doing so, we have both a chicken and an egg. As the fetus matures within the shell, both the chicken and the egg evolve and experience many stages of their respective life-cycles. Once the chicken (architecture or requirements) reach a satisfactory state of development, the egg might be set aside.

The practice of building construction offers architectural options for its clients during the early proposal stages. These potential choices are an integral part of determining the building requirements, detailed design, and final implementation.

A agrarian (farmer) might consider the entire chicken and egg problem as a "horse-sense" test much like the famous question that a rural farmer once asked his grandchild when he visited for the first time. "Son, can you find a needle in the haystack behind the barn? I will pay for your college education if you can!" Apparently, the poor child spent most of the day searching for a sewing needle.

While acquiring advanced degrees, letters, and such, we can often forget the "common-sense" man has know for centuries as we "advance".

We are still working on our book and wrapping up the testing on CABOOSE. The Ozark Team is currently discussing some possible annotations which support its JAX-RS web services controller.

The release of the JEE CABOOSE products should coincide with the delivery of Ozark.

The CABOOSE Team. Enjoy This Weekend!