• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Aristotle and the Art of Software Development
 

Aristotle and the Art of Software Development

on

  • 8,573 views

What does Aristotle have to do with software development? Slides from my RubyConf '08 talk.

What does Aristotle have to do with software development? Slides from my RubyConf '08 talk.

Statistics

Views

Total Views
8,573
Views on SlideShare
8,244
Embed Views
329

Actions

Likes
15
Downloads
297
Comments
4

7 Embeds 329

http://railspikes.com 285
http://www.slideshare.net 26
http://www.globeinnovator.com 10
https://railspikes.com 4
http://interimanager.blogspot.com 2
http://static.slideshare.net 1
http://192.168.10.100 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

14 of 4 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Video of this talk is now available: http://rubyconf2008.confreaks.com/aristotle-and-the-art-of-software-development.html
    Are you sure you want to
    Your message goes here
    Processing…
  • We wrote a blog post about these slides, Jon.
    http://2thinknow.com/innovation/index.php/2008/11/13/coding-classics-aristotle-web-2-0/
    Are you sure you want to
    Your message goes here
    Processing…
  • Great incisive content.
    Nice job drawing the Classics into Code.
    Bravo!

    Sam
    2thinknow
    Are you sure you want to
    Your message goes here
    Processing…
  • any chance you could add the audio and make this a slidecast... it would add the context as well and make it far more compelling
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Aristotle and the Art of Software Development Aristotle and the Art of Software Development Presentation Transcript

    • Aristotle and the art of software development Jonathan Dahl http://tumblon.com (work) http://zencoder.tv (product) http://railspikes.com (blog) Friday, September 18, 2009
    • Or: what does Athens have to do with Silicon Valley? Jonathan Dahl http://tumblon.com (work) http://zencoder.tv (product) http://railspikes.com (blog) Friday, September 18, 2009
    • Athens Silicon Valley Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Ethics. Friday, September 18, 2009
    • Friday, September 18, 2009
    • G Friday, September 18, 2009
    • PG Friday, September 18, 2009
    • PG-13 Friday, September 18, 2009
    • R Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Ethics. Friday, September 18, 2009
    • What makes a good programmer? Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • What makes a good programmer? Friday, September 18, 2009
    • What makes a good programmer? Friday, September 18, 2009
    • Anatomy of an action Act - Effect Actor Friday, September 18, 2009
    • Deontology (Kant) Act - Effect Actor Friday, September 18, 2009
    • Utilitarianism (Mill) Act - Effect Actor Friday, September 18, 2009
    • Virtue (Aristotle) Act - Effect Actor Friday, September 18, 2009
    • Downsides Friday, September 18, 2009
    • Symptoms Friday, September 18, 2009
    • What kind of Agile? Friday, September 18, 2009
    • What language? Friday, September 18, 2009
    • Immanuel Kant Friday, September 18, 2009
    • Königsberg Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • deontology duty Friday, September 18, 2009
    • Principles Friday, September 18, 2009
    • Categorical Imperative Act only according to that maxim by which you can at the same time will that it should become a universal law Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Deontological software development Friday, September 18, 2009
    • Don’t Repeat Yourself 100% Test Coverage Write readable code Friday, September 18, 2009
    • Friday, September 18, 2009
    • Act - Effect Actor Friday, September 18, 2009
    • Process - Outcome Participants Friday, September 18, 2009
    • Determine the right process Friday, September 18, 2009
    • (Determine the right principles) Friday, September 18, 2009
    • Stick to the rules Friday, September 18, 2009
    • “You have to follow every aspect of the process for it to work” Friday, September 18, 2009
    • Follow the rules, even when you don’t think you’ll like the outcome Friday, September 18, 2009
    • “This is just the way things are done” Friday, September 18, 2009
    • Ever-growing rules Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • XP Rules 1.User stories are written. 16.The customer is always available. 2.Release planning creates the schedule. 17.Code must be written to agreed standards. 3.Make frequent small releases. 18.Code the unit test first. 4.The Project Velocity is measured. 19.All production code is pair programmed. 5.The project is divided into iterations. 20.Only one pair integrates code at a time. 6.Iteration planning starts each iteration. 21.Integrate often. 7.Move people around. 22.Use collective code ownership. 8.A stand-up meeting starts each day. 23.Leave optimization till last. 9.Fix XP when it breaks. 24.No overtime. 10.Simplicity. 25.All code must have unit tests. 11.Choose a system metaphor. 26.All code must pass all unit tests before it can 12.Use CRC cards for design sessions. be released. 13.Create spike solutions to reduce risk. 27.When a bug is found tests are created. 14.No functionality is added early. 28.Acceptance tests are run often and the 15.Refactor whenever and wherever score is published. possible. Friday, September 18, 2009
    • Don’t Repeat Yourself Write clear, understandable code Friday, September 18, 2009
    • development: adapter: mysql encoding: utf8 database: app_development username: root password: test: adapter: mysql encoding: utf8 database: app_test username: root password: production: adapter: mysql encoding: utf8 database: app_production username: user password: password Friday, September 18, 2009
    • standard: adapter: mysql encoding: utf8 local: username: root password: development: <<: *standard <<: *local database: app_development test: <<: *standard <<: *local database: app_test production: <<: *standard database: app_production username: user password: password Friday, September 18, 2009
    • <% local_password = "" -%> <% local_user = "root" -%> <% [{:name => "development", :user => local_user, :password => local_password}, {:name => "test", :user => local_user, :password => local_password}, {:name => "production", :user => "user", :password => "password"} ].each do |environment| -%> <%= environment[:name] %> adapter: mysql encoding: utf8 database: app_<%= environment[:name] %> username: <%= environment[:user] %> password: <%= environment[:password] %> <% end -%> Friday, September 18, 2009
    • What kind of agile? Friday, September 18, 2009
    • Certification Friday, September 18, 2009
    • Friday, September 18, 2009
    • John Stuart Mill Friday, September 18, 2009
    • John Stuart Mill Opposed slavery Favored women’s suffrage Free markets (...with proper regulation) Animal rights Environmentalism Friday, September 18, 2009
    • John Stuart Mill Opposed slavery Favored women’s suffrage Free markets (...with proper regulation) Animal rights Environmentalism ...way before these things were cool Friday, September 18, 2009
    • Utilitarianism Friday, September 18, 2009
    • Greatest good for the greatest number Friday, September 18, 2009
    • The ends justify the means Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Utilitarian software development Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Act - Effect Actor Friday, September 18, 2009
    • Process - Outcome Participants Friday, September 18, 2009
    • Driven by experience Friday, September 18, 2009
    • Ad hoc Friday, September 18, 2009
    • Results-oriented Friday, September 18, 2009
    • Willing to compromise Friday, September 18, 2009
    • “Just get it done” Friday, September 18, 2009
    • “Doesn’t have to be pretty” Friday, September 18, 2009
    • Short term vs. long term Friday, September 18, 2009
    • What kind of agile? Friday, September 18, 2009
    • No Process Friday, September 18, 2009
    • Friday, September 18, 2009
    • Lisp vs. Perl Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Act - Effect Actor Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Philosophy Friday, September 18, 2009
    • Philosophy Ethics Friday, September 18, 2009
    • Philosophy Ethics Politics Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Biology Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Biology Physics Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Biology Physics Astronomy Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Biology Physics Astronomy Economics Friday, September 18, 2009
    • Philosophy Ethics Politics Rhetoric Aesthetics Psychology Biology Physics Astronomy Economics Logic Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • (practical) wisdom Friday, September 18, 2009
    • (practical) wisdom aiming at virtues Friday, September 18, 2009
    • (practical) wisdom aiming at virtues combined with moral strength Friday, September 18, 2009
    • (practical) wisdom aiming at virtues combined with moral strength leading to happiness Friday, September 18, 2009
    • (practical) wisdom Friday, September 18, 2009
    • aiming at virtues Friday, September 18, 2009
    • Courage Temperance Pride Generosity Good temper Truthfulness Wit Friendliness Modesty Righteous Indignation Friday, September 18, 2009
    • Excess (too much) Virtue (just right) Defect (too little) Rashness Courage Cowardice Temperance Pride Generosity Good temper Truthfulness Wit Friendliness Modesty Righteous Indignation Friday, September 18, 2009
    • Excess (too much) Virtue (just right) Defect (too little) Rashness Courage Cowardice Indulgence Temperance Insensibility Vanity Pride Lack of ambition Prodigality Generosity Illiberality Irascability Good temper Lack of spirit Boastfulness Truthfulness False Modesty Buffoonery Wit Boorishness Obsequiousness Friendliness Cantankerousness Shyness Modesty Shamelessness Righteous Envy Spitefulness Indignation Friday, September 18, 2009
    • combined with moral strength Friday, September 18, 2009
    • leading to happiness Friday, September 18, 2009
    • modeling Friday, September 18, 2009
    • Friday, September 18, 2009
    • practice Friday, September 18, 2009
    • bootstrapping Friday, September 18, 2009
    • Friday, September 18, 2009
    • Friday, September 18, 2009
    • Downsides Friday, September 18, 2009
    • Virtue-based software development Friday, September 18, 2009
    • Act - Effect Actor Friday, September 18, 2009
    • Process - Outcome Participants Friday, September 18, 2009
    • Education and training Friday, September 18, 2009
    • Pride Friday, September 18, 2009
    • Sane work schedules Friday, September 18, 2009
    • Empower developers Friday, September 18, 2009
    • Mentoring Friday, September 18, 2009
    • Right people -> right outcomes Friday, September 18, 2009
    • What kind of agile? Friday, September 18, 2009
    • Natural Friday, September 18, 2009
    • Friday, September 18, 2009
    • Empower programmers Friday, September 18, 2009
    • Self-effacing Friday, September 18, 2009
    • Pleasant to write Friday, September 18, 2009
    • Happy and virtuous Friday, September 18, 2009
    • virtues, not rules Friday, September 18, 2009
    • virtues, not rules moderation, not excess Friday, September 18, 2009
    • virtues, not rules moderation, not excess judgment, not process Friday, September 18, 2009
    • virtues, not rules moderation, not excess judgment, not process whole of life Friday, September 18, 2009
    • virtues, not rules moderation, not excess judgment, not process whole of life happiness Friday, September 18, 2009
    • Thanks! Slides at: http://railspikes.com Aristotle, Nicomachean Ethics Friday, September 18, 2009