Monthly Archives: November 2016

Craftsmanship, Science, Engineering and Art

Episode 45

As you might have noticed, if you read my blog for some time, I like the parallel between modern software development and medieval craftsmanship. I used it recently when talking about seniority in programming along with other measures. I did reviews of two books on the topic some time ago here and there, but now I would like to devote entire article just to that. To be more specific, I would like to talk about the essence of modern software development and why it’s important to understand this.


It will be a bit of a historic tour, we will start from formal beginnings of computer science, and its relation to early programmers. Then we will take a look at spectacular rise and fall of a new engineering discipline. Next comes the art, both as creative endeavor and as philosophy, especially in traditional martial arts. Finally we will arrive at craftsmanship, and Read the rest of this entry »

Leave a comment

Posted by on November 24, 2016 in Technology


Tags: , , , ,

Seniority in Programming: Part Two

Episode 44

Last week, in part one of this article, I was pondering about levels of competence in general and in software development. I looked at mainstream naming schemas, recalled metaphor to medieval craftsmanship, described ranks in Japanese martial arts, presented SFIA skill framework and finally ability’s dots in role-playing game system. Now, let’s try to do something with it. How much levels do we actually want? Well, let’s have four.


  • HR would call it junior developer
  • Sensei would call it 5th to 4rd kyu
  • SFIA would call it level 2 to 3, the one who assists and applies
  • VtM handbook would call it 2 dots, the practitioner

We all have to start somewhere. I’m assuming that this is how we should call a person that begins professional career in software development, and has knowledge usually associated with at least bachelor degree in computer science or closely related field. Apprentice has some theoretical grasp and academic experience, but not much, if any, with commercial projects. Why skip 1st level of SFIA and 1st dot in VtM handbook? Because to be employed as junior developer, you have to know quite a lot. It’s not like random person from the street can get the job and do well after some on-site training. It’s not a damn factory. One need to understand some basics of computer science, and be able to code something. I’m not saying academic degree is a must, because many prominent programmers don’t have one, but some knowledge in the field is a Read the rest of this entry »


Posted by on November 17, 2016 in Misc, Recruitment


Tags: , , , ,

Seniority in Programming: Part One

Episode 43

While browsing job offers in software development, you can often encounter words like “junior”, “middle”, “regular”, “senior”, “lead” or “principal”. What do they actually mean? Correct answer, as usual, is: it depends. The idea of job grades, pay grades, tiers or seniority levels seems to be quite subjective, depending on job market situation, country, company, technology and if HR people have a good day or not. Let’s explore the subject and try to find some answers. I will reach for some metaphors and analogies to help with this endeavor.

Assuming that software development is a single monolithic skill, which is a thick approximation, we can ask an essential question – how to grade one’s skill. There are quite a few approaches, let’s dive into some of them.

Pay grade


Typical corporate breakdown you can find out there, is “junior” / “middle” / “senior”. Many companies add another level above, usually called “lead”, “principal” or “staff” and sometimes a level below, like “intern”. One corporation had once a Read the rest of this entry »


Posted by on November 10, 2016 in Recruitment, Technology


Tags: , , , ,