Skip to Content

Up to one or two centuries ago, most people still worked in fields where they could directly see the result of their labour. A peasant would work on the field, and at the end of the day look at several nicely ploughed tracks, or know that the seed has been successfully brought out before the weather changed, or that the harvest was brought in just in time. A craftsman would sit in his workshop, execute the many different work steps belonging to his craft, and enjoy a sense of completion and accomplishment when looking at the well-crafted product of his labour.

The production process was experienced as a whole and was often in the hand of a single person or small team from collecting and processing raw materials to adding the last touches. In many cases this person or team also had ownership of the raw materials and product.

How different our work life has become today! Production processes have been broken down into thousands of steps which are scattered over countries, enterprises and individuals. Many of us work in “supportive processes” such as HR, controlling, or QA, but even those who work directly in the core process of what their company produces must often feel as tiny wheels in a giant machine, lacking an idea of the whole and an understanding of their role in it.

Philosopher Karl Marx described this development as a key element of his work and calls it “alienation” (see the Wikipedia entry).

Reading in Vijay Vijayasankar’s  recent blog Don’t tell me I am OBSOLETE – it hurts ! about how good it felt to go back to coding even for a day after achieving a degree of professional seniority that usually means giving up coding, I realized that many people must share this strong reaction, this intense feeling of the joy of coding with Vijay and me. Frankly, programming is the only thing that gets me to work through the entire day, night and the following day – money or flattering words can’t do that, and whether or not programming is still part of your job description, it’s quite probable you’ll feel the same way. But why?

I think the reason is that when we program, we are often in the very privileged position to create something from the first vague idea to the complete program. Everybody acknowledges that the program is “ours”, it bears our personal coding style as an imprint of our individuality, and people will consult us first before touching it if we allow that (and often enough if we don’t). We oversee the entire production process from raw materials (ideas) to finished product (running software) and even have a sense of ownership of the final product.

So in many ways, the work experience of a modern-day programmer is more like that of an ancient-times blacksmith, carpenter, or baker, than that of a modern-day office worker suffering from alienation from the production process. We can draw pride and great satisfaction from having a clearly identifiable product of our day’s work. This is why we programmers are very privileged to practise a craft that is in many ways wonderfully old-fashioned.


Obviously, in recent years the software production process has undergone a tendency to be broken down and deskilled like most other production processes, so you might call me naïve for depicting it the way I did. Surely, my understanding of historic work processes is quite naïve as well.

But the next time you hit F8 at 10 PM, feeling happy that your program runs smoothly and deciding to stay for a few more hours because an idea for an improvement has just entered your mind, you’ll know how important the sense of accomplishment that comes from complete identification with the result of your labour is.

To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Carsten Kasper
    Working as a development consultant I have got different schedules for my daily work. Some days I spent in meeting rooms. Talking to different people about what they need and how it should be realized.
    Sometimes they have a very clear picture and we leave the room satisfied with the outcome. Afterwards I think to myself: “That was good, now I can start to get work done”.
    Anyhow most of the time, as many might have experienced themselves, one meeting is never enough. Thus we spent one or two days talking without any results. Most often this are “political” matters. Leaving the room arises the thought: “What a complete waste of time”.

    The second case states a very clear picture, but think about what I wrote for the first one: “…, now I can start to get work done”.
    This might sound strange and alerting to anyone who is not in development. Do I consider meetings, exchanging points of view and ideas as a waste of my time? No, definitely not! It is just a feeling I get. We made the plan (and most often this is a huge load of work in itself), now we will start to realize it.
    I like to compare it with shopping in the DIY store. You make a list of things, go there and buy them. After you get home the next natural thing to do would be to start fiddling around with them and build something cool. You do not brag to your friends about how you bought all the materials, but with how you put them together.

    However this is were some peoples worklife stops. They do not get the satisfaction of unwrapping the cover 😉

  2. Steve Oldner
    My title is system/analyst but my duties is ABAP.  I write code, run the code, and fix code.  I started coding ABAP 10 years ago and still do it, although I mentor now.  In my organization, a title has more to do with pay scale that work.  
  3. Former Member

    Gotta say…my title is “Senior ABAP Consultant”…but I’m really sick of my Consulting job…I got the feeling that I’m doing the same thing all over again…what I love is the feeling of learning something new, creating new stuff from the scratch…if I could untie myself from Consulting I would never leave programming. I think we all born with a purpose on life…and mine is keep coding and coding -;)

    BTW…what I want to do instead of Consulting? Easy…SAP Education or something like SAP Labs…


  4. Former Member
    Software development is indeed a craft. One that I practice proudly. And as an aspiring master craftsman I am constantly looking to learn new techniques and tools that will help me hone my craft so I can deliver a product I can be proud of. I know it sounds a bit arrogant, but there is a difference between delivering code that satisfies business needs but is a mess and delivering code that complies with the requirements and is also maintainable, extensible and understandable.
    That is what I find fulfilling about software development: delivering a quality product that satisfies a customer’s needs.
  5. Former Member
    Programming is as much an art (loosely defined of course) as it is a science. The science of it can make it boring once you do it well a couple of times , but the art is what makes it appealing.

    At the moment, I am taking a break from management (well, to the extent my employer allows) and doing some hands on BI design work. It is so much more fun to go explore SE11 and get data and metadata quickly, and write utility programs that do neat little things (in OLD ABAP).

    As a manager, I hate it when people don’t share workload. I have been very “guilty” of dividing work on complex applications amongst my developers, and denying them all the pleasure of designing the full piece from scratch. But when I was a full time developer – I used to fight tooth and nail with my managers when they attempted to do this with me. I guess I have reached a good balance now.

    Just as artists criticize each other – programmers can go for each other’s throat too. I have been taken down (figuratively of course) by other developers (and have occassionally returned the favor) on all matters programming related. The funniest I remember is two of my youngest team members racing each other on bicycles decide a winner, when they couldn’t decide whose programming approach was better. I remind them of this every two months – when I need some entertainment.

  6. Former Member
    I am yet to reach a level were the urge to return to the basics and coding is strong; maybe its a pull you experience as you progress down the time line…
    1. Thorsten Franz Post author
      A few years ago, I had a development manager role that really allowed me only to manage development and not be part of it (except for developing the architecture on the whiteboard).
      I found it very scary how quickly – after only a few months of not coding – I felt that I could no longer be sure of what I knew about the AS ABAP. Phrases like “the last time I worked with the framework” or “check out if it’s still that way, it might have changed” crept into my speech, indicating that I was becoming detached from the core of my work.
      Ever since, I have made an extra effort to prevent that from happening again. No matter how lofty my main job role, I always want to stay in touch with the actual technology. I want to at least be able to code prototypes and work with the system in an explorative way, because otherwise I would feel that I lose touch, and I would no longer be able to fill an enterprise architect or similar role in any meaningful way.
  7. Former Member
    As an originally self-taught hobby ABAPer I enjoyed reading this.
    Your thought points are the main attraction I have to doing some “real work” sometimes after long meetings and testing aspects of the system to see how they react to my interpretation of their intended use-cases and dependencies on the design of the program and technique being used.

    I wonder whether kernel developers feel the same way about application programmers? 🙂


    1. Thorsten Franz Post author
      I couldn’t agree more – see my reply to the post below. 🙂 But concerning kernel programmers, I have never met one and I have not the slightest idea how they regard application programmers. The bad ones will probably find them below their dignity, but I expect that at SAP there are only good ones. 😉

Leave a Reply