SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Software Engineering:
    Theory and Practice




        David Hyland-Wood
david@zepheira.com, dhylandw@umw.edu




                                       1
Agenda


Theory
Practice
Understanding before doing
Beautiful code
Guessing the future



                             2
Theory




         3
Lost in Terminology


  Software metric primitives are non-
isomorphic:
 “defect”
 “resource”
 “programmer”
 “time”


                                        4
Lost in Terminology


Entailment?
I need help
*FINDING*
   my tail!




              http://www.flickr.com/photos/efleming/237379205/
                                                               5
60/60 Rule




  Cost of software
 over entire lifecycle

                         6
Understanding and Bugs




      Causes of bugs:
                                       Cost of repair:
The greatest number of bugs
                              The greatest cost is incurred in
   occur in requirements
                               correcting requirements bugs
  specification and design

                                                                 7
Three Fallacies




The Fallacy of Perfect Knowledge:
It is possible to capture complete, non-conflicting
requirements with sufficient attention to detail.




                                                      8
Three Fallacies


The Fallacy of Perfect Knowledge:
It is possible to capture complete, non-conflicting
requirements with sufficient attention to detail.


Users generally do not know what is possible, do
not agree among themselves and may not
understand all aspects of their system.


                                                      9
Three Fallacies




The Fallacy of the Big Round Ball:
Requirements don’t change appreciably after
delivery or can be controlled.




                                              10
Three Fallacies


The Fallacy of the Big Round Ball:
Requirements don’t change appreciably after
delivery or can be controlled.


Requirements change continuously as software
ages. This should be seen as a benefit.



                                               11
Three Fallacies




The Fallacy of Perfect Execution:
It is possible to create flawless code with
sufficient attention to detail.




                                              12
Three Fallacies

The Fallacy of Perfect Execution:
It is possible to create flawless code with
sufficient attention to detail.


We need to admit that arbitrary logic is hard to
verify in the general case, hard or impossible to
fully test and, combined with inconsistent or
changing requirements, hard to trace
programmer intent.

                                                    13
Practice




           14
The Real World is
 Soft and Mushy




(With apologies to S. Gross)

                               15
A History of Silos




           $ cat foo.txt
           | grep blah |
           sort




     1970s                  1980s           1990s
A neat little package      Client-Server   The Early Web



                                                           16
The Next Great Leap


   Extending the                     Ubiquitous,
  Universal Client               reusable applications




   Expanding the                     Explaining the Logic
Universal Connection

                       Web of Data

   Providing the
 Universal Database




                                                            17
Examples




           18
New Applications




                   19
And More....




               20
Understanding Before Doing



         Some material adapted from Kurt Akeley,
  General Manager, Microsoft Research Asia, 21 July 2006




                                                           21
The Cost of Failure



“If you can’t code something, it is because
    you don’t understand it” -- Jon Butler


      Sadly, the reverse is not true.




                                              22
Writing Facilitates
        Understanding



  The process of writing is the process of
refining one’s thoughts.
  Refinement of thought applies to writing
both words and code.




                                             23
“This, surely, is the secret of Lincoln’s
  eloquence. He not only read aloud, to
  think his way into sounds, but wrote as a
  way of ordering his thought.”



                  — Garry Wells
                     In Lincoln at Gettysburg
                     Simon & Shuster, 1992




                                                24
“Don’t worry if you don’t understand this
  book completely on the first reading. We
  didn’t understand it all on the first
  writing!”



                 — Erich Gamma, Richard Helm, Ralph Johnson,
                    and John Vlissides (aka The Gang of Four)
                    In Design Patterns, Addison Wesley, 1995




                                                                25
Write First


                               No

Research &       Write Up           Yes
                            Done?         Stop
 Develop         Results



             ?


                                                 26
Beautiful Code




                 27
What Does Your Code
    Look Like?




                      28
A Hardware Analogy




                     29
Another Hardware Analogy




                           30
“Higher-level programming ... allows good
  programmers to write more beautiful
  code, and bad programmers to write
  stuff that's even uglier than it used to
  be.”



                  — Andy Oram & Greg Wilson (eds.)
                     Beautiful Code, O’Reilly, 2007




                                                      31
Creating Beautiful Code


  Beauty counts
  “Omit needless words!” -- Strunk and White
  Develop a habit of refactoring for both
design and maintenance
  The art changes; keep up



                                               32
Guessing the Future




                      33
Writing Business
  Applications


                             Data
                          formatted

        Code written


1970s   1980s     1990s          2000s




                                         34
Same Data, Different Forms



                 Human
                Readable



     Machine
     Readable


                             35
Getting to the Web 2.0+
      Enterprise




     Thanks to CBS Paramount Television. TM & Copyright © 2007 CBS Studios Inc.



                                                                                  36
The Information Economy


                                                                                                                              2003
                                                                                                                              24B


              40,000 BCE                                                                                                             2002 12B
            cave paintings
               bone tools




                                                                                                                                                GIGABYTES
       writing
                            paper                                                                                                    2001 6B
                                                   printing
                                                                                                                                 2000 3B
                                                   electricity, telephone

                                                                             transistor
                                                                            computing
                                                                                            Internet
                                                                                          (DARPA)      The web

Source: UC Berkeley School of Information Management and Systems,
Robert Steele, CEO OSS, Inc.                                                                                     2000 rich content




                                                                                                                                                            37
Don’t Focus on Code

Solve problems instead
Start thinking about information spaces
Navigating
Creating
Extracting From
Extending
Abstraction, abstraction, abstraction

                                          38

Más contenido relacionado

Similar a Umw Software Engineering Guest Lecture 05 Sep2007

The Arab Spring of Software: Developers are the New Kingmakers
The Arab Spring of Software: Developers are the New KingmakersThe Arab Spring of Software: Developers are the New Kingmakers
The Arab Spring of Software: Developers are the New Kingmakers
Donnie Berkholz
 
Experience is the teacher of fools [liber eblida digitization workshop 201110]
Experience is the teacher of fools [liber eblida digitization workshop 201110]Experience is the teacher of fools [liber eblida digitization workshop 201110]
Experience is the teacher of fools [liber eblida digitization workshop 201110]
Frederick Zarndt
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
deimos
 
Felipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To OoFelipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To Oo
deimos
 
Anne Thomas Manes Using User Experience
Anne  Thomas Manes    Using User ExperienceAnne  Thomas Manes    Using User Experience
Anne Thomas Manes Using User Experience
SOA Symposium
 
Wiki Design Luke W
Wiki Design  Luke WWiki Design  Luke W
Wiki Design Luke W
Ross Lawley
 

Similar a Umw Software Engineering Guest Lecture 05 Sep2007 (20)

Defrag Keynote 2012: The Arab Spring of Software
Defrag Keynote 2012: The Arab Spring of SoftwareDefrag Keynote 2012: The Arab Spring of Software
Defrag Keynote 2012: The Arab Spring of Software
 
The Arab Spring of Software: Developers are the New Kingmakers
The Arab Spring of Software: Developers are the New KingmakersThe Arab Spring of Software: Developers are the New Kingmakers
The Arab Spring of Software: Developers are the New Kingmakers
 
Taking ownership of the challenges and problems of owning a grotty API and tu...
Taking ownership of the challenges and problems of owning a grotty API and tu...Taking ownership of the challenges and problems of owning a grotty API and tu...
Taking ownership of the challenges and problems of owning a grotty API and tu...
 
HTML5 DevConf Oct 2012 Tech Talk
HTML5 DevConf Oct 2012 Tech TalkHTML5 DevConf Oct 2012 Tech Talk
HTML5 DevConf Oct 2012 Tech Talk
 
From Print to Digital Design
From Print to Digital DesignFrom Print to Digital Design
From Print to Digital Design
 
Experience is the teacher of fools [liber eblida digitization workshop 201110]
Experience is the teacher of fools [liber eblida digitization workshop 201110]Experience is the teacher of fools [liber eblida digitization workshop 201110]
Experience is the teacher of fools [liber eblida digitization workshop 201110]
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernization
 
Design Patterns Lw
Design Patterns LwDesign Patterns Lw
Design Patterns Lw
 
Digital london digital breadcrumbs presentation
Digital london digital breadcrumbs presentationDigital london digital breadcrumbs presentation
Digital london digital breadcrumbs presentation
 
Digital london digital breadcrumbs presentation
Digital london digital breadcrumbs presentationDigital london digital breadcrumbs presentation
Digital london digital breadcrumbs presentation
 
Thailand SPIN: Series 3: กุญแจสู่ความสำเร็จในการเขียนโปรแกรมให้ตรงกับความต้อง...
Thailand SPIN: Series 3: กุญแจสู่ความสำเร็จในการเขียนโปรแกรมให้ตรงกับความต้อง...Thailand SPIN: Series 3: กุญแจสู่ความสำเร็จในการเขียนโปรแกรมให้ตรงกับความต้อง...
Thailand SPIN: Series 3: กุญแจสู่ความสำเร็จในการเขียนโปรแกรมให้ตรงกับความต้อง...
 
Mobilize: Make Good Things Come in Small Packages
Mobilize: Make Good Things Come in Small PackagesMobilize: Make Good Things Come in Small Packages
Mobilize: Make Good Things Come in Small Packages
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Felipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To OoFelipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To Oo
 
Engagement by Design
Engagement by DesignEngagement by Design
Engagement by Design
 
Anne Thomas Manes Using User Experience
Anne  Thomas Manes    Using User ExperienceAnne  Thomas Manes    Using User Experience
Anne Thomas Manes Using User Experience
 
Wiki Design Luke W
Wiki Design  Luke WWiki Design  Luke W
Wiki Design Luke W
 
What your IDE could do once you understand your code
What your IDE could do once you understand your codeWhat your IDE could do once you understand your code
What your IDE could do once you understand your code
 
ABSE and AtomWeaver : A Quantum Leap in Software Development
ABSE and AtomWeaver : A Quantum Leap in Software DevelopmentABSE and AtomWeaver : A Quantum Leap in Software Development
ABSE and AtomWeaver : A Quantum Leap in Software Development
 
More than a 1000 words
More than a 1000 wordsMore than a 1000 words
More than a 1000 words
 

Más de David Wood

Meditations on Writing in Paradoxes, Oxymorons, and Pleonasms
Meditations on Writing in Paradoxes, Oxymorons, and PleonasmsMeditations on Writing in Paradoxes, Oxymorons, and Pleonasms
Meditations on Writing in Paradoxes, Oxymorons, and Pleonasms
David Wood
 
Lod Then, Now and Next 20110926
Lod Then, Now and Next 20110926Lod Then, Now and Next 20110926
Lod Then, Now and Next 20110926
David Wood
 
Introduction to Linked Data: RDF Vocabularies
Introduction to Linked Data: RDF VocabulariesIntroduction to Linked Data: RDF Vocabularies
Introduction to Linked Data: RDF Vocabularies
David Wood
 

Más de David Wood (20)

Internet of Things (IoT) two-factor authentication using blockchain
Internet of Things (IoT) two-factor authentication using blockchainInternet of Things (IoT) two-factor authentication using blockchain
Internet of Things (IoT) two-factor authentication using blockchain
 
Returning to Online Privacy?
Returning to Online Privacy?Returning to Online Privacy?
Returning to Online Privacy?
 
Methods for Securing Spacecraft Tasking and Control via an Enterprise Ethereu...
Methods for Securing Spacecraft Tasking and Control via an Enterprise Ethereu...Methods for Securing Spacecraft Tasking and Control via an Enterprise Ethereu...
Methods for Securing Spacecraft Tasking and Control via an Enterprise Ethereu...
 
BlockSW 2019 Keynote
BlockSW 2019 KeynoteBlockSW 2019 Keynote
BlockSW 2019 Keynote
 
Returning to Online Privacy - W3C/ANU Future of the Web Roadshow 20190221
Returning to Online Privacy - W3C/ANU Future of the Web Roadshow 20190221Returning to Online Privacy - W3C/ANU Future of the Web Roadshow 20190221
Returning to Online Privacy - W3C/ANU Future of the Web Roadshow 20190221
 
Privacy in the Smart City
Privacy in the Smart CityPrivacy in the Smart City
Privacy in the Smart City
 
Controlling Complexities in Software Development
Controlling Complexities in Software DevelopmentControlling Complexities in Software Development
Controlling Complexities in Software Development
 
Privacy Concerns related to Verifiable Claims
Privacy Concerns related to Verifiable ClaimsPrivacy Concerns related to Verifiable Claims
Privacy Concerns related to Verifiable Claims
 
Implementing the Verifiable Claims data model
Implementing the Verifiable Claims data modelImplementing the Verifiable Claims data model
Implementing the Verifiable Claims data model
 
So You Wanna be a Startup CTO 20170301
So You Wanna be a Startup CTO 20170301So You Wanna be a Startup CTO 20170301
So You Wanna be a Startup CTO 20170301
 
Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601
 
When Metaphors Kill
When Metaphors KillWhen Metaphors Kill
When Metaphors Kill
 
Secularism in Australia
Secularism in AustraliaSecularism in Australia
Secularism in Australia
 
Meditations on Writing in Paradoxes, Oxymorons, and Pleonasms
Meditations on Writing in Paradoxes, Oxymorons, and PleonasmsMeditations on Writing in Paradoxes, Oxymorons, and Pleonasms
Meditations on Writing in Paradoxes, Oxymorons, and Pleonasms
 
Building a writer's platform with social media
Building a writer's platform with social mediaBuilding a writer's platform with social media
Building a writer's platform with social media
 
Summary of the Hero's Journey
Summary of the Hero's JourneySummary of the Hero's Journey
Summary of the Hero's Journey
 
Open by Default
Open by DefaultOpen by Default
Open by Default
 
Lod Then, Now and Next 20110926
Lod Then, Now and Next 20110926Lod Then, Now and Next 20110926
Lod Then, Now and Next 20110926
 
Linked Data ROI 20110426
Linked Data ROI 20110426Linked Data ROI 20110426
Linked Data ROI 20110426
 
Introduction to Linked Data: RDF Vocabularies
Introduction to Linked Data: RDF VocabulariesIntroduction to Linked Data: RDF Vocabularies
Introduction to Linked Data: RDF Vocabularies
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Umw Software Engineering Guest Lecture 05 Sep2007

  • 1. Software Engineering: Theory and Practice David Hyland-Wood david@zepheira.com, dhylandw@umw.edu 1
  • 3. Theory 3
  • 4. Lost in Terminology Software metric primitives are non- isomorphic: “defect” “resource” “programmer” “time” 4
  • 5. Lost in Terminology Entailment? I need help *FINDING* my tail! http://www.flickr.com/photos/efleming/237379205/ 5
  • 6. 60/60 Rule Cost of software over entire lifecycle 6
  • 7. Understanding and Bugs Causes of bugs: Cost of repair: The greatest number of bugs The greatest cost is incurred in occur in requirements correcting requirements bugs specification and design 7
  • 8. Three Fallacies The Fallacy of Perfect Knowledge: It is possible to capture complete, non-conflicting requirements with sufficient attention to detail. 8
  • 9. Three Fallacies The Fallacy of Perfect Knowledge: It is possible to capture complete, non-conflicting requirements with sufficient attention to detail. Users generally do not know what is possible, do not agree among themselves and may not understand all aspects of their system. 9
  • 10. Three Fallacies The Fallacy of the Big Round Ball: Requirements don’t change appreciably after delivery or can be controlled. 10
  • 11. Three Fallacies The Fallacy of the Big Round Ball: Requirements don’t change appreciably after delivery or can be controlled. Requirements change continuously as software ages. This should be seen as a benefit. 11
  • 12. Three Fallacies The Fallacy of Perfect Execution: It is possible to create flawless code with sufficient attention to detail. 12
  • 13. Three Fallacies The Fallacy of Perfect Execution: It is possible to create flawless code with sufficient attention to detail. We need to admit that arbitrary logic is hard to verify in the general case, hard or impossible to fully test and, combined with inconsistent or changing requirements, hard to trace programmer intent. 13
  • 14. Practice 14
  • 15. The Real World is Soft and Mushy (With apologies to S. Gross) 15
  • 16. A History of Silos $ cat foo.txt | grep blah | sort 1970s 1980s 1990s A neat little package Client-Server The Early Web 16
  • 17. The Next Great Leap Extending the Ubiquitous, Universal Client reusable applications Expanding the Explaining the Logic Universal Connection Web of Data Providing the Universal Database 17
  • 18. Examples 18
  • 21. Understanding Before Doing Some material adapted from Kurt Akeley, General Manager, Microsoft Research Asia, 21 July 2006 21
  • 22. The Cost of Failure “If you can’t code something, it is because you don’t understand it” -- Jon Butler Sadly, the reverse is not true. 22
  • 23. Writing Facilitates Understanding The process of writing is the process of refining one’s thoughts. Refinement of thought applies to writing both words and code. 23
  • 24. “This, surely, is the secret of Lincoln’s eloquence. He not only read aloud, to think his way into sounds, but wrote as a way of ordering his thought.” — Garry Wells In Lincoln at Gettysburg Simon & Shuster, 1992 24
  • 25. “Don’t worry if you don’t understand this book completely on the first reading. We didn’t understand it all on the first writing!” — Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (aka The Gang of Four) In Design Patterns, Addison Wesley, 1995 25
  • 26. Write First No Research & Write Up Yes Done? Stop Develop Results ? 26
  • 28. What Does Your Code Look Like? 28
  • 31. “Higher-level programming ... allows good programmers to write more beautiful code, and bad programmers to write stuff that's even uglier than it used to be.” — Andy Oram & Greg Wilson (eds.) Beautiful Code, O’Reilly, 2007 31
  • 32. Creating Beautiful Code Beauty counts “Omit needless words!” -- Strunk and White Develop a habit of refactoring for both design and maintenance The art changes; keep up 32
  • 34. Writing Business Applications Data formatted Code written 1970s 1980s 1990s 2000s 34
  • 35. Same Data, Different Forms Human Readable Machine Readable 35
  • 36. Getting to the Web 2.0+ Enterprise Thanks to CBS Paramount Television. TM & Copyright © 2007 CBS Studios Inc. 36
  • 37. The Information Economy 2003 24B 40,000 BCE 2002 12B cave paintings bone tools GIGABYTES writing paper 2001 6B printing 2000 3B electricity, telephone transistor computing Internet (DARPA) The web Source: UC Berkeley School of Information Management and Systems, Robert Steele, CEO OSS, Inc. 2000 rich content 37
  • 38. Don’t Focus on Code Solve problems instead Start thinking about information spaces Navigating Creating Extracting From Extending Abstraction, abstraction, abstraction 38