The agile weblog of Sebastian Schürmann

Category: craftsmanship

Weekly recap – Week #37

This week was code, code and code.

If you look for a way to generate a appcache.manifest and make your page more available for offline usage, grunt-appcache is your friend.

Manifesto is a anice bookmarklet to let you check HTML appcache manifests.

Using input fields with an TabletPC might pose ne challenges to event handling as I found out. Dismissing the virtual keyboard might break your layout.

Instead of using backbone and wondering about the amount of boilerplate to write, I might have a look into the new apper framework for single page apps. Nice one.

Math.js just got a 1.0 and I find the new filter feature very interesting. You might wanna check your js codebase for calculations that could be done with mathjs in a simpler way. Still I heavily recommend it.

Blog Posts will be moved.

I will be moving some of the posts from here to a new site that will host dissident trainings and all workshop related stuff.

If someone has ideas on the final jekyll site or a way to move posts from to a new blog (my seo friends): please send me ideas and hints.

The posts that will be moved get a tag: ‘dissent

Service Design Thinking, I haz problemz with you

Lately, I have been reading up a lot of stuff on the design thinking movement, style of work and community. All this seems to be a big pool of old and new ideas combined, in order to find the perfect product for the customer. The most important books are “This is Service Design Thinking” and “Change by Design”; the first to be written by a group of industry experts, the later written by Tim Brown (CEO of IDEO – A big international design company). Let me be clear: I love most of the ideas in Service Design Thinking: Multilateral thinking, cross-functional teams up to “transdisciplinary” work, agile fitting in quite well and a lot of solutions to problems I encounter in daily work.

The Problem

However I have observed a issue that heavily disturbs me and that I never sawit discussed in the service design community meetups where I showed up: Ethics.

Two examples to make my point clear:

“Change by Design”

The Book describes a project for the american TSA in order to optimize the (post 9/11?) changes to processes on airports. People, aware of the changes in procedure at american airports, warn regularly about the very open attacks on civil liberties that were introduced with these new procedures. (Damage to health from untested scanners and sexual harassment of kids being 2 of them). Another one was a project for the “Bank of America” in order to create a new product for people to make personal bank accounts more modern. Personally, I would never work for any of these customers:

  • TSA: Airport Security ever was (and maybe ever will be) security theater at best. Just Google the stuff and maybe don’t read state sponsored research on that subject. After you did this Google “Project Censored TSA” and be amazed on how the USA has privatized sovereign efforts to TSA and this company is used, in a very similar way military contractors by Companies like Xi, to outsource and undermine basic freedoms of citizens.
  • Bank Of America: Just Google “Bank of America Scandal YEAR”. Dear IDEO’s you could have known this before. Where is the research on your customers?

Yes, “Change by Design” has a part on more philanthropic projects in later chapters of the Book, but it’s to late there. I think this is covering up for the more dark aspects of the earlier jobs. Yes, it helps clearing the conscience of the companies and people working there but it is to late by then. You can not make up with a philanthropic project for the damage done in another project.

“This is Service Design Thinking”

In the Chapter “Operations Management – The Quest for Efficiency” the Author Kate Blackmon uses McDonalds as a good example of the combination of elements from “Taylorism” (work analysis and job specification) and “Fordism” (standardization of the inputs and outputs). This was where I went OMGWTFNERDRAGE. Yes, McDonalds might be a heavily optimized workplace, but ask a Burger-flipper of your choice how much he loves that job, a animal rights group of your choice about the conditions the animals live in which land on your dish (ask chicken if you got a good stomach), ask people who know about healthy food ingredients on McDonalds meals and I could go on. I should be thanking for this Example, there is no better explanation for the bad Side-effects if you apply the thinking of Taylor and Ford without additional ethical safeguard. I don’t oppose standardization and job specification at all, but I must insist that you, dear reader, think about a moment what happens when these principles are used without any consideration for the human being part of the whole process. I mjst be addin that we seem to live in th “Post Fordist” age, and hereby the reference to Taylor and Ford seems to be a bit outdated. It’s not the 80ies anymore.

Why so angry?

The lack of critical thinking towards the own behavior was very evident to me when I visited some “Service Design Thinking” events in 2012 and this impression hasn’t got any better through the two books I had read. There is so much communication about sustainability et al. on these events that I feel like listening to the person leading the department for “Corporate Social Responsibility” of a Blue Chip company – I simply feel lied to.

  • Someone explaining me why he created this new Headphone and I am thinking: Why the F**K would the world really need a new headphone? Aren’t there a Quadrillion models out there?
  • Someone explaining the “Design Challenge” they had at the University, about to create a future sustainable car .. DAFUQ … NO car is the car of the future, with a simple equitation the damn challenge can be solved, if like 80% of the world would have access to own cars the world would be sucked dry of raw materials relatively fast. Let alone whatever kind of fuel is needed. Have fun inventing the “Flux Compensator” first.
  • Designing the “Hair Dryer of the Future” – RAGE … The hair dryer of the future will be a refurbished one with remade electronics, because in 50 or 100 years it will be very hard to get the resources for what we are producing today.

As long as we use Methods that potent like “Service Design Thinking” with Ethics that seem to be void of the learnings of the “Enlightenment” and “Post-Industralization” Phases brought, I fear the danger coming from it. The chance of leaps in product development is is there, that is a result of the amazing way to work, but as long as this movement seems to be avoiding basic Ethics it’s a loaded gun on a child-yard. The lack of critical thinking and the fueling of a pure desire based economy with new products is diminishing the Method of “Service Design Thinking” to a simple Tool to add to blind consumption at best and not to a thing that “Changes the World” like the Design Thinking Community tries to imply whenever it can.


Craft I: Create things for the sake of creating

@__edorian rants in his latest Blogentry that re-creating tools in PHP that are out there in other languages already is kind of useless.

He has got a point there. Don’t write half assed re-implementations of Stuff in PHP that is already out there in . I do not agree totally with him. So why write the stuff anyway?

If I may use Richard Sennett’s Book the craftsman and cite the smart man directly:

“In the act of making it work, nothing else matters”

People creating things seem to be hooked up in the process, totally immersed by the task at hand. People speak of being “in the tunnel” or in “flow-state”. This state of mind is scientifically researched and enables the person do extraordinary things, way more accurate and creative than in a normal “get shit done” situation. It’s not so much about the concrete result, it’s about the process of creating the things. This is a good thing: Focussing totally on the small steps required to get something (like for example a SASS compiler implemented in PHP) alive. Make each of these steps as good as you can. I understand this can lead to very bad results, especially if you don’t take moral implications into account, but why not let people invest time and mind in things that matter for them, just to sharpen the blade of skills.

“People who make things usually don’t understand what they are doing”

Sometimes you have to create a thing in order to find out about the small details that make it so cool, hard to create and the implications of the result itself being in existence. Sometimes it is pure curiosity that drives us to create something and find out what we can use it for afterwards.

A Example: The creator of the glue, used on post-its, had to create a glue-fluid that was not adhesive enough to be used in a product. But for the sticky-note, that had to be removable, the thing was just right.

We need to create something and then use it in order to find out what it is and how it can be used.

“There is a distinct loop in between problem finding and problem solving”

This is a very important thing. Learning a craft is done in phases of doing and thinking. One could say you find the classic PDCA (Plan-Do-Check-Act) circle there, but this is way older than this. This Feedback loop, the metaphor Sennett uses “”in between hand and mind””, is there as long as humanity started to create stuff like the first stone wedges. First you find a problem, you try to solve it, then you look at the result and discover a new problem from it. The new “problem” might be an improvement to the solution you came up with or a new challenge resulting from your creation. Or even an absolute new solution.

2 Years ago I would have commented the post with a FULLACK. Today I am opposing this kind of behavior because it suggests that everything that is out there is already perfect and done. It isn’t and I am happy about everyone to tackle a problem from a new angle. In the End PHPFI was the same thing: We already had Perl and Perl had most of the things (and much more) when PHPFI started. Nowadays the situation is a bit different.

Bootstrap your Express Project – A agile toolbox

When starting with a new node/express project there is a variety of tools available that help your development effort. I have started a new project and want to write down my recommendations for the tools to use.

TL;TR; You can clone a github repo here and start right away.And see the build status on travis

 NPM and package.json

Since you will have to manage dependencies in your node project, i advise you to start up with a package.json. This file contains the node modules you are using in your application. You might wanna exclude node_modules via the .gitignore file to avoid external node modules beeing checkied into git. You should now have a basic package.json file and a .gitignore file. Both need to be pushed to master right now.

A Blog Post about NPM and package.json


After you installed express.js via npm and your package JSON  you simply generate a Application Skeleton via the express command line tool. Now you have the skeleton application and push this to git. You might wanna add jade to your dependencies.

Express.js starter tutorial


Grunt helps you with linting your javascript files and orchestrate your general build. A grunt.js file in your projects root contains all the information that it needs to validate your project. To integrate it with npm aka npm test you can add a scripts.test property to your package json. Note that the npm grunt package is listed under the devDependencies property.

grunt.js docs


Mocha is a nice Unit Test framework. You want to use it for your TDD efforts. You can integrate this nicely into your grunt.js file to combine linting of js files and unit tests. Mocha and its commandos need a little tuning in the grunt.js template in order to make it stop complaining about unknown globals

Mocha docs


You mioght wanna test HTTP calls to your apps in a isolated way to check if not only your library code is working but your Webserver anwers with the right HTTP status codes etc.

Supertest Github repo

Travis CI

In order to let all your tests run as soon as you have pushed to your git you might wanna setup a travis ci build. Just connect travis to your repo and add .travis.yml file.

This is a superfast development chain that will help you to get superfast at implementing features into your app. The Setup time of ca. 20 Minutes will help a lot of time.

Travis setup docs for node.

You can clone a github repo here and start right away.

The seven Lamps of (Software)Architecture

I am still reading “The Craftsman” by Richard Sennet, a book that was given to me by a very smart Product-Designer/UX-Guy/Carpenter because we talked a lot about the merits on the crafty part of software-development and web-architecture. Amazon describes it as:

Why do people work hard, and take pride in what they do? This book, a philosophically-minded enquiry into practical activity of many different kinds past and present, is about what happens when people try to do a good job. It asks us to think about the true meaning of skill in the ‘skills society’ and argues that pure competition is a poor way to achieve quality work. Sennett suggests, instead, that there is a craftsman in every human being, which can sometimes be enormously motivating and inspiring – and can also in other circumstances make individuals obsessive and frustrated.“The Craftsman” shows how history has drawn fault-lines between craftsman and artist, maker and user, technique and expression, practice and theory, and that individuals’ pride in their work, as well as modern society in general, suffers from these historical divisions. But the past lives of crafts and craftsmen show us ways of working (using tools, acquiring skills, thinking about materials) which provide rewarding alternative ways for people to utilize their talents. We need to recognize this if motivations are to be understood and lives made as fulfilling as possible.

In the Book is a whole chapter about John Ruskin, a art critic in the Victorian era who had interest environmentalism, sustainability, craft and his “7 Lamps of Architecture”. These are a part of an essay that was a (slightly polemic) critic on the architectural style of that time. The “7 Lamps of Architecture” represent a take on the “good deeds” of construction things, in this case architecture for buildings. Long story short, I find these 7 principles apply to the construction of software architectures as well and I want to outline the connection here.

Read the rest of this entry »