Enterprise grade Java.
You'll read about Conferences, Java User Groups, Java, Integration, Reactive, Microservices and other technologies.

Friday, September 4, 2009

PragPub: Responsive Design: Coming to Grips with the #Chaos That Is #Software #Design

07:01 Friday, September 4, 2009 Posted by Markus Eisele
, , ,
The Pragmatic Bookshelf presents a monthly free magazin, compiled by their editor Michael Swaine.
It brings you a magazin packed full of interesting articles, features, and departments. Download it in PDF, mobi (good for the Kindle), and epub (great for Stanza on the iPhone).

The Issue 3, September 2009 contains an interesting article by by Kent Beck about "Responsive Design: Coming to Grips with the Chaos That Is Software Design".
Beside the fact, that we both seem to share the same BASICs :), Kent made some statements I fully comply with.


Design is good. Design is central to effective software development.
Programmers can add features steadily to well-designed software. Programmers
can easily test well-designed software. Well-designed software is easy to tune
for better performance. Most of the hard problems in programming turn out
to be design problems.
But design has a dark side. While there isn’t a single best design for any system,
there are many poor designs for that same system. The more experience a
programmer has, the more design ideas he knows.



The word "responsive" in the name of the project reflects this need for balance.
Some design needs to be done in advance of coding, but over the life of the
project most design will be done in response to the changing needs of the
system and the changing and growing understanding of the developers.


He provides a brief overview of the lessions he has learned so far:
1) Beneficially Relating Elements.
2) Design is Fractal.
3) Safe Steps.
4) Isolate Changes.
5) Embrace Ambiguity.
6) Cultivate Confidence.
7) Cultivate Humility.
8) Exploit Symmetries.
9) Trust Succession.
10) Design Is a Team Sport.
11) Play with Words.
12) Play with Pictures.
13) Clear Strategies.
14) Inside or Outside.
15) Toss It.
16) Keep It.
17) Both.
18) Suit Design to Needs.
19) Use Tension.


Design is not a rational process.
Much as we like to think we are making design decisions, much of the structure
of our systems emerges from the nature of the problem and the nature of the
tools we use. Our designs shape us as much as we shape our designs.
[...]
The challenge is to embrace responsibility
and at the same time take an appropriate role in designing. Learning to achieve
this balance is the next goal of the Responsive Design Project.