domingo, 26 de junho de 2011

Good ideas from the past

Buried Treasures by Glenn Vanderburg

The Art of Computer Programming

Matt Barton, The Fine Art of Computer Programming, Free Software and the Future of Literate Programming:

“When software became merchandise, the opportunity vanished of teaching software development as a craft and as artistry” (Richard P. Gabriel and Ron Goldman)

Barton mentions Pope, essayist and poet, as a model. Code should be read like poetry. "It is perhaps time to elect a new Pope. To my mind, there is only one man of sufficient merit and tenacity to warrant such an honor: Donald E. Knuth. I nominate Knuth because of the development of what he terms literate programming, ..."

"The truth, according to Knuth, is that programming is “both a science and an art, and that the two aspects nicely complement each other”

From Literate Programming, Patrick TJ McPhee: "The second important idea is the view of program writing as a special type of literary work with its stress on the readers, as opposite to the stress on computers many programmers have."

Stan Kelly-Bootle, Ode or Code: "Dijkstra’s oft-quoted advice was, “Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer.”" (Stan being an excellent example of brilliant mastery of English language)

sexta-feira, 24 de junho de 2011

Principles of Problem Solving


Remarkable paper, with views on applied Universal Machines:

"Theoretical computer science (TCS) asserted in the 1960s that Turing machines (TMs)—introduced by Turing [4] to help show the limitations of mathematical problem solving—provide a complete model of computer problem solving by negating Turing's claim that TMs could solve only functional, algorithmic problems. The TCS view ignored Turing's assertion [4] that TMs have limited power and that choice machines, which extend TMs to interactive computation, represent a distinct form of computing not modeled by TMs."

"...we edited a book on interactive computing [1], with 18 articles by prominent researchers, including Milner, Broy, Vardi, and Van Leeuwen, describing their contributions to and opinions about interactive computing as a new paradigm of computing for the 21st century."

"Fundamental models of computer science evolved from the Greek modes of mathematical thought of Pythagoras and Euclid to the interactive 20th century models of computational problem solving of Gödel, Turing, and Milner. It is not surprising that changes in computing technology can determine changes in mathematical and political thinking. Computation emphasizes open processes involving interaction among machines and users, rather than the closed transformation of an input to an output."


The algorithmic revolution---the fourth service transformation

Services science 
The algorithmic revolution---the fourth service transformation
We are in the midst of the fourth services transformation. The core story is the application of rule-based IT tools to service activities; it is not about the growth in the quantity or the value of the activities we label as services. The application of IT has the potential to transform the services component of the economy, altering how activities are conducted, and value is created. Services were once seen as a sinkhole of the economy, immune to significant technological or organizationally driven productivity increases. Now the IT-enabled reorganization of services, and business processes more generally, has become a source of dynamism in the economy.
There are four interconnected service stories that must be separated and clarified. The first is an accounting error, or perhaps better, a matter of financial engineering. Activities outsourced from manufacturing are relabeled as services. The GM window washer is a manufacturing employee; but when contracted by GM he becomes a service employee. The same window is washed, perhaps by the same window washer. Initially, at least, we should assume the activities stay the same, just conducted by different organizations.
The second story is that services become a larger part of the economy with the evolution of consumer and business purchases. Services have become a larger portion of both the consumer market-basket and of what businesses use to produce and distribute their goods and services.
The third service story is about the transformation in and changing role of women in the work force and, with that, the conversion of unpaid domestic work—washing floors, watching babies, and delivering groceries—into commercial services bought and sold in the market. It is a form of household outsourcing.
The fourth service story is the digital or algorithmic transformation. Service activities themselves are changed when they can be converted into formalizable, codifiable, computable processes with clearly defined rules for their execution. This is an algorithmic service transformation facilitated by IT tools. Much of the service innovation then is around the adoption and effective implementation of IT tools. Certainly business processes from finance and accounting through to customer support and CRM are altered when they can be treated as matters of information and data management. Routine and manual functions are automated, and fundamental reorganization of activities is enabled. Likewise, sensors and sensor-based networks change many personal services. Then, as service activities are conducted by and with IT tools, the worker skills required change as well. And of course, as information moves, many activities that were previously tightly linked to particular places can be moved.
Just as important, this algorithmic transformation blurs the line even further between product and service. For example, it is conventional to observe that products such as media products are simply encapsulated information. Conversion into digital format facilitates their online delivery to computers, cell phones, iPods, and the like. Slowly the particular product, the purchase of a CD, blurs into a service, a subscription to download music. IBM has transformed from a company selling a product in which service support provided competitive advantage into a service company embedding products in its offerings. The services that ride on the product platform become the differentiated asset that creates value for the firm.
The drama is that tools and technologies based on algorithmic decomposition of service processes may have the power to revolutionize business models the way manufacturing was revolutionized in the industrial revolution. The digitally implemented service processes and activities will displace people when it is embedded in automated processes, but often complement the effective use of human insight, intelligence, and knowledge in the choice, development, application, and effective use, of these tools will remain central. The crucial issue in this era will be how underlying knowledge and insight is developed and applied.
 
John Zysman (zysman@berkeley.edu) is co-director of BRIE and a professor of political science at UC Berkeley.

©2006 ACM  0001-0782/06/0700  $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2006 ACM, Inc.

The Web is the Computer

What Is Web 2.0, Design Patterns and Business Models for the Next Generation of Software: seminal O'Reilly paper. Some ideas:

The Web as a platform
The Web is the Computer
Harnessing Collective Intelligence
Data is the Next Intel Inside
End of the Software Release Cycle
Lightweight Programming Models
Software above the levels of a Single Device
Rich User Experiences

quinta-feira, 23 de junho de 2011

Software Engineering: An Idea Whose Time Has Come and Gone?

DeMarco Reflects on 40 Years of Software Engineering Evolution:  "On the 40th anniversary of NATO's "Conference on Software Engineering," where the discipline of software engineering was first proposed, Tom DeMarco paused to reflect on the discipline's evolution, including his role in influencing its initial direction toward metrics. The author of the much-quoted "You can’t control what you can’t measure" now wonders whether this orientation has distracted us from the real point of computing: "The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business." His conclusion, under the title "Software Engineering: An Idea Whose Time Has Come and Gone?" [pdf] appeared in the July/August edition of IEEE Software magazine."
Chuck Connell, Software Engineering is not equal do Computer Science: "Software engineering will never be a rigorous discipline with proven results, because it involves human activity. "

quarta-feira, 22 de junho de 2011

The trouble with Enterprise Software

Cynthia reviews the problems with Enterprise software: The proliferation of complexity, the cost of implementation. She also thinks that re-usable software is a myth when complexity is high (is it?). Original article at MIT Sloan Management Review. Copy here. Critic review here and here. An also here, on SOA to fix ERP.

Developers get better with age

A simple conclusion, based on interesting statistics.

And... We're entering the decade of the developer. 

And more, on the subject of experience, of difference between the expert and the master, and yes, the master is the one who makes programs simple.

On the subject of design, the wise advice of Paul Graham.