気の抜けたラムネ

エンジニアの筆者が書く雑多ブログです。

プログラムは技術だけでは動かない -人に求められるプログラマーに必要なもの

社員の方から一冊の本を貸していただきました。

 

www.amazon.co.jp

 

開発言語にくわしい。
さまざまなアルゴリズムを理解している。
開発環境を使いこなせる。
ミドルウェアなどの情報を知っている。
OSやネットワークなどの知識がある。

そんな「技術力がある人」なのに、なぜ仕事では通用しないのでしょうか?

引用:小俣 光之 著『プログラムは技術だけでは動かない プログラミングで食べていくために知っておくべきこと』より

 

プログラムを動かすのに必要なのはプログラムだけではなく、様々な人との繋がり・信用もあるという内容の一冊です。

私は会社でアルバイトをしている以上、社員の方から仕事を頂く機会があります。その際に起きたトラブルはいくつかあったのですが、その原因の大元をあまり把握しておらずモヤモヤしていました。

 

この本を読んでそんな私のモヤモヤが解消されたような気がします。そのモヤモヤとは「依頼主との理解の相違」でした。

例えば仕事を請け負う時、依頼主は「こういうものを作って欲しい」という漠然とした状態で(もちろんきちんと考えた上で依頼して来る方もいますが)依頼してきます。もしくは依頼してしばらく経った後に仕様を変更して欲しい、と考えることがあります。

 

「自分の完璧」と

「他人の完璧」は違う

 

私は依頼主から受けた依頼を、自分では完璧だと思って提出し改善点を多数指摘されるという事があり、納期ギリギリに休日返上で終わらせることがありました。当然完成した物は不安定だったりどこか不具合があったりしました。

 

そんな大きなミスの根本的な理由は「依頼主とのコミュニケーション不足」でした。

依頼を受けて少しでも不明な部分があればその都度質問し、共通理解の元で作業をすすめる。そのコミュニケーションが私には不足していたと思いました。

荒削りの状態では見せられない!と自分では思っていても、依頼主に定期的に見せることで改善点や理解の違いが分かるため、非常にスムーズに作業を進められるそうです。

 

時間が経つほど、相手の要求水準は高くなる

 

上記のように、依頼主は請負からの連絡がないと「忙しいのかな」「きっと沢山動作テストをしているのだろう」と、どんどん不安とともに要求水準は高くなるものだそうです。確かに時間を掛けて出してきたものが動かない、自分の思っていたものと違うものだった場合、依頼主は非常に困惑するでしょう。「もうこの仕事を頼まない!」と思われてしまうかもしれません。

そんな状況にならないためにも仕事を請け負うときはなるべく依頼主と話し合い、共通理解の元で仕事を進行したいと思いました。本書ではそのような相手とのコミュニケーションの重要さが一貫して書かれています。

 

そのほかにも信用を得るために必要なのは"知識"ではなく"実績"であること、必要な機能だけを実装したプロトタイプを迅速に作成することの重要さ、そしてその迅速に実装するために必要なこと 等プログラマーとして、技術者として必要な"技術以外に必要なこと"が書かれた一冊でした。

どんな凄い技術や実績があっても、人との繋がりを疎かにしてはいけない。プログラマーや技術者の方はぜひ一読を。おすすめです。

 

 

www.amazon.co.jp