InfoQ

InfoQ

Presentation

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Recorded at:
Recorded at

Craftsmanship and Ethics

Presented by Robert C. Martin on Feb 12, 2009 Length 00:47:15
Sections
Process & Practices,
Architecture & Design,
Development
Topics
Agile ,
ethics ,
Programming
Tags
Best Practices ,
JAOO Conference
 

How would you like to view the presentation?

In case you are having issues watching this video, please follow these simple steps to help us investigate the issue:
1. Right click on the video player and select Copy log
2. Paste the copied information in an email to video-issue@infoq.com (clicking this link will fill in the default details in most email clients).
Note: in case your email client hasn't automatically picked up the email subject, please include in your email the URL of the video too.
3. Done.
We will investigate the issue and get back to you as soon as possible. Thanks for helping us improve our site!
Summary
In this talk Robert C. Martin outlines the practices used by software craftsmen to maintain their professional ethics. He resolves the dilemma of speed vs. quality, and mess vs schedule. He provides a set of principles and simple Dos and Don'ts for teams who want to be counted as professional craftsmen.

Bio
Robert C. Martin (Uncle Bob) has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor Inc., a team of experienced consultants who mentor their clients worldwide in the fields of C++, Java, OO, Patterns, UML, Agile Methodologies, and Extreme Programming.

About the conference
JAOO is the premier European developer conference on software technology, methods and best practices. The conference presents in-depth presentations and tutorials by researchers, engineers and trend-setters in software engineering and technology.

Related Sponsor

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!

  • This article is part of a featured topic series on Agile

10 comments

Watch Thread Reply

Enjoyable and enlightening by Neil Ellis Posted
JavaScript remark by Joe Vano Posted
Re: JavaScript remark by Paul Beckford Posted
hmm: could not really watch !!! but will like to by Corku Corku Posted
Re: hmm: could not really watch !!! but will like to by Amr Elssamadisy Posted
Re: hmm: could not really watch !!! but will like to by Corku Corku Posted
Re: hmm: could not really watch !!! but will like to by Golam Rabbi Posted
Impressive by Jerome St-Pierre Posted
Problem with the streaming by roberto marchiori Posted
I wanna translate it!!! by Cassio Landim Posted
  1. Back to top

    Enjoyable and enlightening

    by Neil Ellis

    Some painful truths in there, very enjoyable - a lot has been covered before but it's nice to hear it all in one go.

  2. Back to top

    JavaScript remark

    by Joe Vano

    I disagree with Uncle Bob's remark about JavaScript when discussing abstracting out volatility. I agree with his principle, but he used a poor example with JavaScript. Obviously he doesn't do heavy web development. There is nothing wrong with JavaScript doing business rules. JavaScript is a _real_ language. It is code. Just separate the JS code into a different file that adds behaviour on top of the model (HTML). That is a clean separation. The cosmetics is defined in the CSS, which is also separated out from the HTML.

  3. Back to top

    Re: JavaScript remark

    by Paul Beckford

    Hi Joe,

    I think what Uncle Bob was referring to was the problem of duplicate business logic in the presentation and the domain model, leading to increased maintenance, or worst still bleeding business logic from the domain model into the presentation. Both approaches sit uneasily with domain driven design, which says that your business logic should sit in a domain model which is separated from infrastructure concerns like I/O and the user interface.

    I agree that Javascript code can be just as clean as with as any other language, but the current demand for Ajax like features in the browser do present a design dilemma.

  4. Back to top

    hmm: could not really watch !!! but will like to

    by Corku Corku

    Hi,
    I have noticed that now and again, someone enquires how they can download the recording, and you always reply no.

    So why don't you make it possible for us in the NOT SOOO ADVANCED WORLDS injoy some of these GEMS? WHY? like WHY?

    Anyway -- it's never beenaa fair world... and you just accentuate that on this OTHERWISE excellent resource.

    big-up Still!

  5. Back to top

    Re: hmm: could not really watch !!! but will like to

    by Amr Elssamadisy

    I'm sorry you feel frustrated. Can you tell me more about your problem specifically? Can you not stream the video to watch? Is it blocked from your end, a bandwidth problem, or is there something we can do from our end?

  6. Back to top

    Re: hmm: could not really watch !!! but will like to

    by Corku Corku

    OK..

    Basically, i pay USD40 for about 128k (at least that is what the provider claims) in one them 4th world places with glorious weather and people but crap infrastructure. Now with this bandwidth am almost always unable to watch presentations because of soooo many stop start stop start... till i just get fed up and give up! So what will be ideal is to just download the presentation using my preferred download manager and watch this anywhere (PC, Laptop, PDA ....). Why can't i do that? why do you insist on this streaming tingie? I read many comments on your site about users being unable to watch stuff. Please find a way to make you knowledge GEMS downloadable ... and why not insert advertoria's to monetize your work ala www.dotnetrocks.com / www.dnrtv.com

    Anyway.. BigUP still

  7. Back to top

    Impressive

    by Jerome St-Pierre

    "Our craft is defined" Ah, this is good to hear! I had to watch it twice and it made me feel more serene.

    This gave me hope about our immature software development industry. Only at my previous customer I had the chance to work with experienced XP practitioners for over a year. This was fun and challenging about good design. Before meeting this team I was using these practices as much as I could on my own, just like I am still doing now.

    Fortunately, my new team is willing to start by integrating TDD for our next iteration. They previously weren't but this time it comes from them. It was harsh to get back into the obscure side. I hope one day programmers and managers will get out of school with this kind of mind set.

  8. Back to top

    Problem with the streaming

    by roberto marchiori

    I couldn't watch the video after 11 min (approximately). Suddenly the video starts from the beggining.

  9. Back to top

    Re: hmm: could not really watch !!! but will like to

    by Golam Rabbi

    Hi,

    I have the similar bandwidth problem. I have found a good workaround for that. I usually press 'start' and 'pause' immediately after the start. So it starts streaming. I just continue my other works and when good amount of streaming is done then I start it again.

    It would be my pleasure if this start-pause pattern also works for you.

  10. Back to top

    I wanna translate it!!!

    by Cassio Landim

    Hey administradors!!! Is there some way I could download this video to translate it to brazilian portugues and make it avaliable www.infoq.com/br?
    Please help me.

Educational Content

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?

Wrap Your SQL Head Around Riak MapReduce

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.

Polyglot Persistence for Java Developers - Moving Out of the Relational Comfort Zone

Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.

The Golden Circle – Why How What

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?

The Web Platform as a Limitless Pool of Innovation, with Andreas Gal

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.

Hadoop and NoSQLin a Big Data Environment

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

Spring and Platform Interoperability

Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.

How to Stop Writing Next Year's Unsustainable Piece of Code

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.