Presentation: Craftsmanship and Ethics

| by Amr Elssamadisy Follow 0 Followers on Feb 13, 2009. Estimated reading time: less than one minute |

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.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

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.

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.

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.

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

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!

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?

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


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 /

Anyway.. BigUP still

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.

Problem with the streaming by roberto marchiori

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

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


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.

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
Please help me.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

10 Discuss