-
Notifications
You must be signed in to change notification settings - Fork 0
/
team-language-dialects.html
71 lines (60 loc) · 5.25 KB
/
team-language-dialects.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta id="keywords" name="keywords" content="">
<link id="stylesheet" rel="stylesheet" type="text/css" href="https://oskipa.github.io/theme/css/code.css"></link>
<link id="stylesheet" rel="stylesheet" type="text/css" href="https://oskipa.github.io/theme/css/site.css"></link>
</head>
<body>
<header class="header">
<h1 class="site-name">
<a class="home-link" href="https://oskipa.github.io">Dada</a><br />
|> Structures<br />
|> Algorithms</h1>
<nav>
<menu class="minimal-menu">
<li><a href="https://oskipa.github.io/pages/today-i-learned.html">til</a></li>
<li><a href="https://oskipa.github.io/short_index.html">index</a></li>
<!--
<li><a href="category/log.html">web log<a></li>
<li><a href="">about<a></li>
<li><a href="">site map<a></li>
-->
</menu>
</nav>
</header>
<div class="container">
<div class="row">
<div class="col-md-8">
<h2>Your Team is your Village</h2>
<h3>Increase productivity by being aware of your your work team as a small society</h3>
<label>02 March, 2022</label>
<p>Software has a tech bias. Our culture emphasizes technology while ignoring social dynamics. We choose to lose ourselves in technological details. This gives us the option to ignore the social dynamics. Some of us do it more than others. Our current culture pushes us in that direction.</p>
<p>This bias creates a problem for developer teams. It distorts our perceptions of reality. Because of this distortion, teams will often talk about cultural issues in technical language. Ironically, it often leads to making the wrong technical decisions, because social decisions are cloaked as technical discussions.</p>
<p>Let me illustrate with a common example. A new CTO joins a company. The company is currently using Ruby on Rails to develop the main product. The CTO believes that Java is a superior technology. He can point out at benchmark tests matching Ruby vs Java, showing that Java is faster. He can point out that Java has true threads, unlike Ruby, who has a workaround to simulates threads. He also says that it is easier to hire Java developers than Ruby developers.</p>
<p>Within the context of this discussion, Java is the superior technology. It follows that transitioning to Java is the best decision.</p>
<p>I would wager to say that, in most cases, this is a bad technology and business decision. A top-down change of languages implies a rewrite. Rewrites are notorious for being expensive, take longer than expensive, and for failing. Your team goes from having 100 years of experience as Ruby developers to go down to 0 years of experience. Everyone has to be trained into the new language, which requires training expenses, either explicitly by sending people to seminars and courses, or implicitly, via slower development cycles.</p>
<p>The team also loses its programming language dialect. A dialect is a social variation of a language. Natural languages, like English, Spanish, Korean, have regional dialects. As anyone who has studied Spanish knows, the accent, the grammar, and the vocabulary used in Spain, is different from the one spoken in Mexico or Bolivia. Most language learners are aware of the existence of dialects.</p>
<p>Computer languages also have dialects, yet we don't fully acknowledge them. We are aware of them, yet the technical bias tends to push our discussions of dialects as style or correctness discussions. Another way to talk about it is when we say that we need some time to ramp up on the codebase, even when we already know the language.</p>
<p>Dialects are a social phenomenon. We need to discuss my team's python dialect the same way we talk about Canadian English versus American English.</p>
<p>Dialects allow teams to be highly productive. Everyone is actually writing the same language.</p>
<p>There is no such thing as readable code. There is only readable code in the context of a specific team. What is readable an understandable in one team can be this weird, unintelligable mess for someone else.</p>
<p>Culture matters as well. </p>
<p>This also shows what the problem of "best practices" entails. It needs the social context for us to decide whether the practice makes sense in this team or not.</p>
<p>Some of you would say that switching the company language hides some other motives. Maybe the CTO's real goal is for all of the current team to leave, so that he can hand-pick a new team. </p>
</div>
</div>
</div>
<footer class="footer">
<!-- <p class="about"><a href="http://hugoestr.github.io/blog/manifesto.html">About</a> --> <a href="https://oskipa.github.io/pages/about.html" >I am</a> a software developer. I code in Ruby, Elixir, Python, C#, and many other languages. I like poetry, museums, and ukuleles. I try to guide my life on principles of dadaism and nonviolence.</p>
<p>
<a href="feeds/all.atom.xml">atom</a>
<a href="http://github.com/oskipa/">github</a>
</p>
<p>Artisanally built with <a href="https://blog.getpelican.com/">Pelican</a>. Content handcrafted in <a href="https://www.vim.org/" >Vim</a></p>
</footer>
</body>
</html>