InfoQ

InfoQ

News

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.

Presentation: Craftsmanship and Ethics

Posted by Amr Elssamadisy on Feb 13, 2009

Sections
Process & Practices,
Architecture & Design,
Development
Topics
Programming ,
Software Craftsmanship ,
Agile
Tags
Best Practices ,
JAOO Conference

In this presentation Robert C. Martin (Uncle Bob) asks the question "Do we have a job or a profession?" and answers that we have not had a profession until recently.  A profession is defined and has a history and, until recently, programmers did things "their way".  He makes the argument that Agile has helped us move towards a profession by by introducing discipline in the way we write software.

Some of the disciplines Uncle Bob discusses are:

  • Short iterations (he recommends 1-2 weeks)
  • Incremental improvement
  • Don't wait for definition, participate by building code
  • Abstract away volitilaty
  • No turgid, viscous architectures, therefore Archtects should code
  • Progressive deepening - also known as slices, tracer bullets,
  • Progressive widening - first make it work, then make it right, then make it fast
  • and many others

Uncle Bob addresses 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.

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

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!

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

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.