Questions for an Enterprise Architect
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Sadek Drobi on Jul 11, 2008
The mainstream approach to user interface has recently been questioned by Bryce Harrington who believes that “the prevailing UI paradigm today […] built around the notion of document authoring” is not appropriate for what most people use computers for. He argues in effect that knowledge workers more often deal with streams of information rather than traditional documents:
Really, what I mostly do today is stream management. And I suspect this is true for the vast majority of people. I don’t deal with writing documents, but with changes to documents. I put comments onto things. I slap patches onto things. I tweak the states of things. Once in a rare while I may author a completely new thingee, but even there I usually end up working with it as a stream of changes that I build up over time (and usually in collaboration with a few other people who stream changes to me).
Harrington believes that, with regard to this, many tools offered by today’s interfaces are irrelevant whereas they are not at all instrumental in helping users staying atop all the streams. What actually handles streams are cron jobs, “a stodgy old *server* tool” that non-technical people are not acknowledgeable about. To remedy to this, Harrington advocates for changing the underlying paradigm of UI:
Since the purpose of our desktop UI is to make our work easier and more efficient, then if today's knowledge workers are, like me, more stream-oriented than document-oriented, then doesn't it stand to reason that we ought to re-think our UI design to optimize it for making stream management easier and more efficient? How would such optimization be done? How would such a UI look and feel? What kinds of toolkits would be needed?
This post triggered a lot of reactions on the author’s blog and on reddit even though it was pointed out by many commentators that this idea is not really new. Many mentioned Lifestream project led in the mid-nineties at Yale University. Based on the conviction that today desktop paradigm is not the optimal way to organize information, Eric Freeman under the direction of David Gelernter developed novel software architecture:
Lifestreams is built on a simple storage metaphor --- a time-ordered stream of documents combined with several powerful operators --- that replaces many conventional computer constructs (such as named files, directories, and explicit storage) and in the process provides a unified framework that subsumes many separate desktop applications to accomplish and handle personal communication, scheduling, and search and retrieval tasks.
In the aftermath of this project, Steve G. Steinberg has analyzed the advantages of the approach based on temporal dimension that is ignored by most UI and absent from many alternative methods of organizing information rather focused on spatial, semantic or network aspects. First of all, Steinberg stresses that “unlike spatial and networked schemes, which require users to come up with their own, highly arbitrary classifications, and unlike semantic schemes that place the burden on the computer, chronological ordering is clearly defined and unarguable.” Moreover, this kind of UI facilitates information search because “instead of following links or guessing keywords, we can simply scroll back in time, using our memory for hints”, which in turn allows to rebuilt the context of the researched information. Finally, as highlighted by Steinberg, “chronological ordering underlies many types of information”, e.g. files, emails, URL of visited web pages, and this makes Lifestreams “incredibly general and flexible”.
Even though commercialization of the project’s results was not successful, many recent products mentioned by commentators are based on similar concepts: Mac OS X, services like LifeInLine and LifeBlob, Sugar interface by the One Laptop Per Child Foundation, Miro interface or upcoming Microsoft's Live Mesh. It looks like the momentum is growing for a shift towards stream-oriented approach to UI. Other technologies and tools that may be instrumental, i.e. dataflow languages or functional reactive programming, are summed up in Bryce Harrington’s follow up to his own post and on a wiki set up by Rudd-O.
Mobile and the New Two-Tiered Web Architecture
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
18 agile and lean practices for effective software development governance
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
Andreas talks about the benefits of the Open Web and how it compares to proprietary stacks. He also talks about various projects that push the envelope like Boot to Gecko, Broadway and pdf.js.
Ron Bodkin discusses early adoption of Hadoop, NoSQL and describes MapReduce and related libraries and Frameworks. Other topics include Hive, Pig, multi tenancy, and security in a big data environment
Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.
Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
1 comment
Watch Thread Reply