Skip to content

Commit

Permalink
sociotech
Browse files Browse the repository at this point in the history
  • Loading branch information
yegor256 committed Jan 12, 2018
1 parent 76a04fd commit 4438ffb
Showing 1 changed file with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions _drafts/_sociotech.md
@@ -0,0 +1,96 @@
---
layout: post
title: "Are You a Coder or a Developer?"
date: 2018-01-10
place: Moscow, Russia
tags: management
description: |
...
keywords:
- sociotechnical
- ...
- ...
- ...
- ...
image: /images/2017/12/
jb_picture:
caption:
---

Software development and coding are two different things. Usually,
the former includes the latter, but not always. The coding produces
lines of code, while software development creates products. Unfortunately,
the majority of programmers joining Zerocracy now are [coders]({% pst 2014/oct/2014-10-26-hacker-vs-programmer-mentality %}).
Even though they claim to be developers, in reality they are lacking the very
important [socio-technical](https://en.wikipedia.org/wiki/Sociotechnical_system)
skills that differ product creators from lines-of-code writers.

<!--more-->

{% jb_picture_body %}

Let me show the symptoms first.

Let's call him Mario. He is a very skilled
Java developer, as his [resume]({% pst 2016/mar/2016-03-08-pimp-up-your-resume %})
says. He is in the industry for ten years or so,
done a few enterprise projects; he seems to be very seasoned. We give him
access to the project and assign a few GitHub tickets.

In a few hours I'm getting a Facebook message of a page long. It says that
he is very glad to be in the project, but doesn't understand a thing yet
and needs help. Here is a list of questions he prepared and is ready for
a phone call to get them answered.

I reply: "Dude, I love you like a brother, but I don't have time to answer
your questions. Not because I'm lazy or don't appreciate your work... Actually,
yes, exactly because of that. I am lazy and don't want to answer any questions over Messenger.
My answers will be totally wasted, if you, for example, quit the project
tomorrow. Or if someone else joins us in a week and will have
exactly the same set of question. Will I have to explain him again? I'm too
<del>old</del> lazy for that."

He most probably thinks that I'm an arrogant prick, but what can he do? He
reads [my article]({% pst 2014/oct/2014-10-07-stop-chatting-start-coding %})
on this very subject and says "OK, I got it."

In half an hour Mario submits a ticket to another (!) repository. The title
says "The problem" and the description says "Help me understand the project."
What do I do, as an architect of the project? I close the ticket with a quick
message: "Please, make your tickets more specific." My response is just one
step away from "Get lost," but what else can I say? Mario doesn't know
how to use ticketing system. He most probably was working all his life
in a cozzy office, where everybody around was his friend. He wasn't even using
chats, he was just asking questions across the table. I'm asking him to
do something he has never done before. Of course, he doesn't know how.
He feels ashamed, I believe.

What happens next? He is right back at me in the Messenger, with the same
set of questions. Actually, his reaction will depend on his personality.
It may either be anger, or confusion, or
[something else]({% pst 2018/jan/2018-01-09-micro-budgeting %}). But the bottom line
is that Mario is not a software developer, he is a coder.
He doesn't understand the dynamics of a modern software project, he doesn't
know how to use its
[communication]({% pst 2016/aug/2016-08-23-communication-maturity %})
instruments, he has no socio-technical skills:

* Searching and finding information
* Submitting questions, collecting answers
* Adding knowledge to the repository
* Submitting code changes
* Arguing in writing, reviewing changes
* Closing tickets and preventing them from closing
* Maintaining discipline in repositories

The same happens to almost everybody who joins us, unfortunately.

A modern software project is much more a social activity than code writing.
Knowing how to interact with the team and deal with information
is much more important than knowing how use design patterns. The only
way to earn that skills is practice. I've [said it](https://www.facebook.com/yegor256/videos/10214943124281537/)
[many times](https://www.youtube.com/watch?v=GS45LzE3LPQ),
let me repeat it again: If you are not an open source and StackOverflow activist, you most
likely won't have those skills.


0 comments on commit 4438ffb

Please sign in to comment.