Club of Amsterdam Journal, November 2005, Issue 57

The Top 10 Elements of Good Software Design

Much is spoken of “good design” in the software world. It is what we all aim for when we start a project, and what we hope we still have when we walk away from the project. But how do we assess the “goodness” of a given design? Can we agree on what constitutes a good design, and if we can neither assess nor agree on the desirable qualities of a design, what hope have we of producing such a design?

You know you’ve achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away
Antoine de Saint-Exupery

Much is spoken of “good design” in the software world. It is what we all aim for when we start a project, and what we hope we still have when we walk away from the project. But how do we assess the “goodness” of a given design? Can we agree on what constitutes a good design, and if we can neither assess nor agree on the desirable qualities of a design, what hope have we of producing such a design?

It seems that many software developers feel that they can recognize a good design when they see or produce one, but have difficulty articulating the characteristics that design will have when completed. I asked three former colleagues – Tedious Soporific, Sparky and WillaWonga – for their “Top 10 Elements of Good Software Design”. I combined these with my own ideas, then filtered and sorted them based upon personal preference and the prevailing wind direction, to produce the list you see below. A big thanks to the guys for taking the time to write up their ideas.

Below, for your edification and discussion, is our collective notion of theTop 10 Elements of Good Software Design, from least to most significant. That is, we believe that a good software design …

10. Considers the Sophistication of the Team that Will Implement It

9. Uniformly Distributes Responsibility and Intelligence

8. Is Expressed in a Precise Design Language

7. Selects Appropriate Implementation Mechanisms

6. Is Robustly Documented

5. Eliminates Duplication

4. Is Internally Consistent and Unsurprising

3. Exhibits Maximum Cohesion and Minimum Coupling

2. Is as Simple as Current and Foreseeable Constraints will Allow

1. Provides the Necessary Functionality

full article

News about the future of Software Architecture

Architecting Industry Standards for Service Orientation
by Josh Lee, Microsoft Corporation

Many messages that flow among businesses are formatted to specific industry standards. As we move toward Web services and service orientation the payloads can add value to the messaging infrastructure in a flexible, interoperable, composable way.

“If we can assume that service orientation is going to be a core part of our architectural palette for years to come, then we have to find a way to build and incorporate industry standards into that architecture. Granular construction of service messaging and tight correlation among service signature, metadata, and schema instance provide instant benefits when constructing a flexible and high-performance, standards-based Web service. The key to interoperability is in the ability to process the incoming and outgoing messages effectively. Clear type definition and composition from a comprehensive data dictionary gives architects the ability to compose nearly any message in their service-oriented architecture. Since they are based in the industry standards, those messages will be compliant.

Standards purists will harangue me with epithets, but the fact remains that in order to remove application silos through messaging interoperability you must use fast and flexible standards-based payloads in a service-oriented environment. This can only happen as service providers and schema architects are able to assemble multipurpose standards-based schemas. You can accomplish this through more flexible schema composition and importation methods. With these methods, the future of industry standard messaging and Web service architecture become closely aligned.”

Developing Secure Software
by Noopur Davis, Software Engineering Institute

Most security vulnerabilities result from defects that are unintentionally introduced in the software during design and development. Therefore, to significantly reduce software vulnerabilities, the overall defect content of software must be reduced. Defect reduction is a pre-requisite for secure software development, but it is not enough. Security must also be deeply integrated into the full software development life cycle (SDLC).

Conclusion
Since common software defects are a leading cause of vulnerabilities, the overall defect content of software must be reduced. Next, security must be systematically addressed throughout the software development life cycle. There must be a shift in attitude from “bolting security on” after the fact, to “building security in” as the product is being developed. This requires that good software engineering practices are followed while the software is being developed, including multiple defect removal activities.

News about the future

Artcoustic
Danish Loudspeaker company Artcoustic is recognized worldwide for high performance and aesthetic beauty. The majority of speakers in the product line are thin- as slim as 67mm – and hang on the wall like picture frames. They have effectively erased the distinction between a loudspeaker and furnishing, yet remain true to their intended purpose:

MoCo Loco

MoCo Loco is a web magazine featuring modern contempo- rary design news and views.

Currently reporting from 100% Design Tokyo.

Next Event: Wednesday, November 30, 16:30-19:15

the future of Software Architecture

Wednesday, November 30, 2005
Registration: 16:00-16:30, Conference: 16:30-19:15
Where: Syntens, De Ruyterkade 5, 1013 AA Amsterdam

With
Maarten Boasson
, Professor, Chair, Industrial Complex Computer Systems, University of Amsterdam: Do we want to keep software architecture alive?

Maarten Visser
, Performance, Productivity and Integration Evangelist, BPMi Business Systems: The future of web communities

Bert Oosterhof
, Corporate Senior Architect and Director of Technology EMEA, Informatica Europe: Software architecture adjustments for a changing business

and our Moderator Karel van der Poel, CEO & Co-founder, Mirror42

Cockpit in an acoustic wall

 Cockpit in an acoustic wall
by Kas Oosterhuisthe brief was to combine an acoustic barrier with an industrial building · we decided to design with a speed of 120 km/h to streamline the concept by looking at our design in a telescopic perspective · we have studied the splines of cars, powerboats and jetplanes which are streamlined to diminish drag · along the A2 highway the acoustic barrier and the industrial buildings themselves do not move but they are placed aside a continuous stream of cars passing by · the stream of cars flows at a speed of 120 km/h along the acoustic barrier · as a consequence we decided that the proportions of the built volumes immersed in the acoustic dike should be boldly stretched along the length of the dike · the building, as a body fused with the solid mass of earth of the dike, is experienced as a streamlined cockpit · animation studies indicate that a cockpit described by one powerful spline on top of the acoustic barrier provokes the strongest impact · the cockpit functions as a 3d logo for other industrial facilities hidden behind the acoustic barrier · the most striking design principle is the use of long continuous lines · supple splines which do not have an explicit beginning and not an abrupt end · reaching the actual volume of the cockpit the lines divide into a top and a bottom line · between these smoothly curved lines the cockpit building is inserted with the precision of a plastic surgeon · the overall impact must be confirmed by a strong detail: an extra barrier at the top of the body of the acoustic barrier – shaped as a standard guard-rail – cuts into the top of the cockpit and sinks gradually into a deep gutter · the main design rule determines that the length of the cockpit has to measure at least 10 times its height · this rule guarantees that the cockpit keeps its smooth appearance when passed by at a speed of 120 km/h

Recommended Book

Patterns of Enterprise Application Architecture
by Martin Fowler

Noted software engineering expert, Martin Fowler, turns his attention to enterprise application development. He helps professionals understand the complex–yet critical–aspects of architecture. Enables the reader to make proper choices when faced with a difficult design decision.

GlobalSourcingNOW

GlobalSourcingNOW is a FREE daily and weekly newsletter providing the latest updates on the global offshoring and outsourcing industry. GlobalSourcingNOW is hosted by Evalueserve, a leading provider of expert knowledge services. Industries such as Information Technology, Human Resource Management, Finance & Insurance, Knowledge Management, Customer Relationship Management, Biotechnology, Engineering, and Research & Development are extensively researched and covered by GlobalSourcingNOW. GlobalSourcingNOW newsletters reach over 22,000 subscribers across 40 countries. For further details on this, please refer to this link:
http://www.globalsourcingnow.com

Finding Spiritual Courage: Risking the Unfamiliar to Have the Future We Want

Finding Spiritual Courage: Risking the Unfamiliar to Have the Future We Want
by John Renesch

In life we have seen dramatic rescues and individual acts of heroism, people risking physical harm or even their lives in the face of terrible threats.

Courage is required when there is fear of harmful consequences that are likely to result from one’s action, be it charging an enemy machine gun in wartime or cliff climbing without safety lines in civilian life. Risking one’s personal safety for the welfare of the platoon or jumping into ice cold water to save a drowning flight attendant are definitely courageous acts with real physical danger facing the hero.

Trust is a huge component in taking courageous action. If one is risking real danger, one trusts they will be successful despite the fear they are feeling. In some cases, the action comes instinctively, seemingly without forethought, but fear is there as soon as they think about the situation, even if it is after the event!

The world will always require people to put themselves at physical risk for the sake of their fellow citizens, like firefighters and police officers. Another kind of courage is being called for in these times of exponential rates of change and the enormous impact which technology adds to the changes we experience. This kind of courage is not necessarily physical, although it could have longer-term physical implications. The kind of courage we are presently lacking is to risk embarrassment, lost social status or peer approval.

Thoreau said it long ago: “Dissent without action is consent.” Like the teenager who hesitates to go against the group even though he or she knows they are doing something wrong or members of a mob who get caught up in mass hysteria and turn their backs on normal civilized constraints, too many of us are simply “going along” with the crowd. Not enough of us are questioning the wisdom of our silent condoning, the legitimacy we are lending to the way things are going.

Breaking the silence, ending the “going along,” requires spiritual courage, the courage to stand tall for your conscience, your sense of right and wrong, the wisdom you may possess that others appear to be lacking. This kind of courage allows one to risk the unfamiliar, the unknown and the untried when there’s an implied promise of a better future for others once the stand is taken.

Systems remain dysfunctional because the people in them refuse to challenge the status quo, refuse to take the risk, preferring the familiar even if it is uncomfortable or painful. The dysfunction is maintained because people prefer the known and familiar to the unknown or unfamiliar, even when it holds promise for a better alternative! This is crazy! It shows how attached we can become to the familiar, the known, the reality in which we’ve learned to survive.

You’ve heard it said that people hate to change. This is a very commonly-held belief. Yet we persist in trying to change others – whether it is our spouses, a relative, partners or co-workers. Eventually, wiser more mature people learn the only person they can change is themselves. Wiser souls focus inward. They work to change their own beliefs, to think and act differently, thereby changing the systems in which they work and live. When they change, their systems change.

This commitment to change oneself, to think and act differently, requires a rare brand of mature courage that is sorely needed today. Technology has accelerated both the speed at which change is occurring as well as the degree of impact these changes have on the world. We no longer live in a cause-effect world where we can remain isolated in our actions and misdeeds, only affecting a few people around us. We have made our world into a massive array of complex and interacting systems, adding our own complexity to what Mother Nature had already given us.

There are no simple solutions to society’s challenges any more. Those days are past. Like Einstein told us almost a century ago, our consciousness must evolve to match the complexity of our world. The way we think has to grow exponentially to keep pace with what we think about. Pairing outmoded thinking with exponentially increasing technology eventually will lead us to disaster. Like the toaster repairmen trying to repair satellites in outer space, or children driving 300 mph racing cars or cooks overseeing nuclear reactors, we’re over our heads and lagging far behind in our abilities to resolve our challenges.

Perhaps it is time to take a stand for our evolving humanity, like the Roman slave Spartacus, and declare that we are more than machines, more than “naked apes” and more than digitized humanoids. Let us openly embrace our human spirit and allow ourselves to transcend the conditions we have created rather than remain subject to them, to claim mastery over the systems we’ve created rather than remaining slaves to them. Like Spartacus, let us emancipate ourselves and proclaim our full humanity.

Einstein also told us that we are still an infantile society. We human beings are hardly fully-evolved. Let us call for more spiritual courage, an increased willingness to break out of our skin of familiarity or the petty limitations of what we expect from our consciousness and allow ourselves to dream bigger about how we think, what we do and what we expect for our future. Let us break out of the mold of guesswork or prediction about how things may be in the future and, instead, take a wiser more mature stand for what we want. Then, let us do everything in our power to bring about that future.
John Renesch is a veteran businessman-turned-futurist and an international keynote speaker. He has created over a dozen books, including his most recent, Getting to the Better Future: A Matter of Conscious Choosing. He publishes a free monthly Internet periodical available from his website, www.Renesch.com. John will be speak at the  Summit for the Future 2006 in the “Values and Spirituality” session.

Club of Amsterdam Agenda

NEW: Our Season Events are Wednesdays 16:30!
16:00-16:30 Registration
16:30-17:45 Part I: Presentations
17:45-18:15 Break: Drinks and evtl. live music
18:15-19:15 Part II: Discussion
Club of Amsterdam Season Events 2005/2006
 
 
.Nov 30the future of Software Architecture
Where:  Syntens, De Ruyterkade 5, 1013 AA Amsterdam [Building of the Chamber of Commerce]
.Jan 25the future of Futurist Tools
.Mar 1the future of Electronic Identity
.Mar 29the future of Governance
.Apr 26
the future of Drugs & Pharma
.May 31the future of Reputation Management
.Jun 28the future of Journalism / Ethics in Journalism


Seminar ‘New Dimensions’

The 12th of December Media Plaza will organize the seminar ‘New dimensions’, the future of software engineering. During this free seminar several breakthrough projects will be presented that will have huge impact on the software engineering scene over the next few years. Open standards and open source software will impact business models, at the seminar we will present a project called Unlock Closed Software. Also agents based decision making processes will be presented, and the vision of Professor van Vliet on the future of software engineering. New Dimensions of software engineering, where will we go the next few years?

Club of Amsterdam Open Business Club

 Club of Amsterdam Open Business Club

Are you interested in networking, sharing visions, ideas about your future, the future of your industry, society, discussing issues, which are relevant for yourself as well as for the ‘global’ community? The future starts now – join our online platform – and it’s for free 

Share This Post
Have your say!
00

Customer Reviews

10votes
5
0%
4
0%
3
0%
2
0%
1
0%
0
0%

    Leave a Reply

    Your email address will not be published.

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    Thanks for submitting your comment!

    This site uses Akismet to reduce spam. Learn how your comment data is processed.