人間って変わるのが嫌いですよね。変えるのなんてもっと嫌い。それはなぜかって?面倒だからです。まぁ本能といってしまえばそれまでですけど。
うちの会社も変わるのが嫌いな人が多いです。そもそも何かを変えるという発想がない。もちろん、マイナーチェンジはしょっちゅうあります。でも、根本的に何かを変えるということはありません。
一方で、私の課長は変えた方が良いものに全然気づかいない部下(私の先輩)達についてよく苦言を呈します。私に変えてほしいともよく言います。私も何か変えられたらな、と思うことがよくあります。というぐらいに社内は問題点で満ち満ちています。
直接顧客に関係する業務を優先するあまり、組織としてやっていくための土台作りがおざなりになっているんです。一人一人は優秀だから、応急処理、リカバリでなんとか運営している、そんな感じです。
でも、これは私の問題発見能力が高い、というわけではありません。皆気づいているんです。何のためかもわからない打ち合わせ、部署のノウハウが全く継承されない運用ルール、形骸化してしまった管理ルール。みんな問題意識は持っているんです。
ただ、わかっているけど、自分はやらない。だって面倒くさいですからね。何か一つを変えると色んなところを変えないといけなくなるからです。組織規模が大きいと、一つの修正による影響箇所は格段に肥大します。結局、自分1人では到底変えきれず、色んな人を巻き込まなければならなくなるんですね。
例えば、プログラムの処理にしてもそうです。例えば、HTML言語の雛形って、だいたい下記のようになっています。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="〜.css">
<title>タイトル名</title>
</head>
<body>
</body>
</html>
でもHTML言語で出力できる画面は一つなんですよね。つまり、複数の画面を作ろうと思うと、毎回上記の雛形を記述しないといけないわけです。私の作った簡易なアプリでも15画面ぐらいあるので、業務用アプリのように画面遷移パターンの多いWebシステムを作ろうとすると結構面倒臭いです。
私もこれが結構面倒だったので、今はphp言語からHTML言語の記述自体を関数として呼び出す方法を使っています。(もっといい方法があるのかもしれませんが。)
具体的に言うと、
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="〜.css">
<title>タイトル名</title>
の部分を別の一つのファイルで定義してしまうんですね。
function setHead($titlename) {
print '<meta charset="utf-8">';
print '<link rel="stylesheet" type="text/css" href="〜.css">';
print '<title>$titlename</title>';
}
このようにすれば、画面を新たに追加するとなっても、
<!DOCTYPE html>
<html>
<head>
<?php
setHead(”タイトル名”);
?>
</head>
<body>
</body>
</html>
と、記述を簡略化できるわけです。つまり長期的に記述にかかる手間を考えれば後者の方が絶対に良いわけです。
しかし、です。もう既に、100個の画面で長ったるい記述がされていたとしたら、それを全て変えるのも相当な手間がかかるわけです。だからとりあえず、既存通りで、という話になる。今後のことを考えれば、変えた方がいいんだけど、今変えるのは面倒だからとりあえずペンディングする。ペンディングするとますます変えにくくなるんだけど。
こうやって日々の業務フレームワークについてもペンディングを繰返してきた結果、もはやスパゲッティコードのような組織体系が出来上がってしまっている。それが私の会社です。もしかするとうちだけではないのかもしれない。自分たちの組織の業務すら効率化できないのに、なぜお客さんにシステムを提供できているのかがはっきりいって不思議でなりません。
かと言って、それを変えるほどの力は今の私にはないんですね。そして、それを変える力をつけた頃には、もうそんなことはどうでもよくなってしまう。そういう風土なんでしょうね。
影響度なんか考えずに、何か一つぐらい変えてみたい。