Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. | ||
|
||
|