Page List

Search on the blog

ラベル ビジネス の投稿を表示しています。 すべての投稿を表示
ラベル ビジネス の投稿を表示しています。 すべての投稿を表示

2017年7月18日火曜日

[Blog Reading] Hiring SREs at LinkedIn

 SREの採用プロセスに関する話。SREに限らずエンジニアの採用プロセスについてのいい話が書いてある。

https://engineering.linkedin.com/blog/2017/07/hiring-sres-at-linkedin

  • 人を雇いたいときは、その人に満たしてほしい特定のニーズがある
    • その特定のニーズを満たすために必要なスキルはなにか
    • 採用試験ではそのスキルだけをテストする
  • まず電話・オンラインで試験をする(スケールしやすい)
    • オンサイトでの試験は受験者/採用者ともにコストがかかる
  • 複数回のオンライン試験をパスした有望な求職者のみをオンサイト試験に招待する
    • オンサイト試験ではオンライン試験でやらなかったことをやる

2014年11月27日木曜日

商社は何をやっているのか

 商社は何をやっているのか?どうやって儲けているのか?
半年くらい働いてみて分かったことをまとめておく。
商社の規模や扱っている商品によって違いはあるかもしれないが、基本的な部分はだいたい共通していると思う。

販売額 - 仕入れ額のマージンが儲け
商社の利益は、販売額と仕入れ額の差から生まれる。メーカーから商品を仕入れて、それに値段を上乗せして、消費者や小売業者に販売する。このとき上乗せした値段が利益になる。

 ここまでは前から知っていた。いまいち分かっていなかったのは商社の存在意義。メーカーが直接売ればいいじゃん。なんか商社って楽して儲けてるだけで何の価値も創造していないような・・と思っていた。

いいモノを作れば売れるというわけではない
商社の存在意義を考えるうえでポイントとなるのが、「いいモノを作れば必ず売れる」というのは間違いということ。いいモノを作っても宣伝しなければ売れない。当たり前だ。

 そこで登場するのが商社。商社は持ち前の営業力でモノを上手に宣伝し、顧客に売り込む。もちろん現代においては、ITを駆使した顧客分析、商品分析なども行う。今はこういう商品が人気だから、今度はこういう商品を開発しましょう!というように商品企画に関与することもある。

 つまり商社はメーカーが作ったいいモノを世の中により広く流通させるために営業力の面からサポートを行う仲介業者みたいなイメージ。これが分かったとき、商社は楽して儲けているだけというイメージは完全に無くなった。

モノは買い手にすぐ届くわけではない
モノを買いたい人が見つかったらそれで終わりというわけではない。
モノを顧客の元に届けなければならない。そのためには配送ルートが必要だ。それからモノを格納しておく倉庫も必要だ。何をいつどれだけ作ればいいかを考える生産計画も必要だ。

 こういう物流まわりも商社がやっている。メーカーが作ったモノを営業して売り込み、顧客のもとに届けるまで面倒をみる。これが商社。商品の総合プロデューサーという感じだろうか。

2014年2月11日火曜日

What Is Software Design?

表題の「What Is Software Design?」というエッセイを読みました。

"最終的なソースコードこそが真のソフトウェア設計である"と仮定すると、どのようなことが考えられるかについて書かれています。

以下の段落が目に止まりました。
all programmers know that writing the software design documents after the code instead of before, produces much more accurate documents. The reason is now obvious. Only the final design, as reflected in code, is the only one refined during the build/test cycle.

(和訳)すべてのプログラマたちは知っている。コーディングの前に設計ドキュメントを書くより、コーディングの後にドキュメントを書いたほうがよいと。
理由は明白だ。最終的な設計は、ビルド・テストサイクルを通して洗練されたもの --それらはソースコードに反映される -- だけだからだ。

それはみんな分かってることだと思いますが、なぜ実践されないんでしょうね。

設計ドキュメントはソースコードを書くために参照するドキュメントではなく、お客様に説明するためのドキュメントである。要件を抑えて、開発方針の合意を早い段階で取るためにこれらの資料はソースコードを書き始める前に作らなければならない。

ということなのかなと自分を納得させているものの、モヤモヤ感は残っています。
上の方法を行うと、"ソースコード作成 = 真の設計"であることを認めてしまうことになり、それだと困る人たちが多いのではないかなとか思ったり。。

少し脱線してしまった感がありますが、エッセイの概要は以下のとおりです。早い段階でのプロトタイピングとテストによる設計の検証を支持するような内容です。
  • ソースコードはソフトウェアの設計成果物である。コンパイラ・リンカは設計をもとにソフトウェアを製造する。
  • そのため、他の工学分野と比べて製造工程が非常に簡単で安価である。(飛行機や橋を作る場合の設計と製造の関係と比べてみると分かる)
  • ソースコードという表現技法を用いて設計を行うと、設計のミスに気づきやすい。
  • ソフトウェアのビルドはとても簡単なので、設計に対してフォーマルなバリデーション(例えば橋をつくる場合は、コンピュータシミュレーションをしたり、模型を作ったりすること)を行うことはあまり実用的ではない。ビルドしてテストして設計が正しいかどうか確認した方が簡単だからだ。
  • テスト・デバッグは設計活動である。よい設計工程はこのことを認識しておくべきである。
  • すべての設計は相互的である。よいソフトウェア設計は設計が変更になることを寛容する。(detailed designの設計ミスがtop level designに影響するのであれば、素直にtop level designも変更する方がいい。)
  • 設計の成果物はソースコードの他に補助的なドキュメントも必要。そのドキュメントには以下が挙げられる。
    •  設計(ソースコード)には直接落とし込まれなかった問題領域(ドメイン)の重要な情報
    • ソースコードにコメントとして書けないような、図で書くと分かりやすい横断的情報
  • ただし補助的な資料はあくまでも補助で、ソースコードこそが真の設計成果物である。補助資料はツールを利用してソースコードから自動生成することが望ましい。

2011年9月3日土曜日

本当にユーザーが欲しいものは何か?

youtubeで興味深いビデオを見つけた。



簡単に要約すると、こんかんじ。

「アイディアはいろんなところからやってくる。ユーザー、技術者、役員、分析から。

そして、アイディアが出たら、次はプロトタイプだ。きちんとアイディアを実証できるものがつくれるか?どうやってユーザーのイメージを正確にとらえるか。

イノベーションをもたらすのに一番大切なのは、イタレーションである。何かを試す、フィードバックをもらう、また新しい何かを試す。これの繰り返し。そして、ユーザーが本当に求めているものに近づいていく。

googleが成功している理由は、いいアイディアを持っているから、いいアイディアをうまく実行しているから、そしてとても小さなチームで働いているからだ。

その小さなチームの中で、技術者たちは、決断をする。何がこのサービスの一番の売りなのか?
本当にユーザーが必要としているのは何か?最高の製品をどのようにつくりあげるのか?と。」

  • ユーザーが本当に欲しいものをきちんと考える。
  • 小さいチームが、決断権を持って仕事を進めていく
というのは非常に考えさせられるものがあった。

以前いたプロジェクトで以下のような話を聞いた。

「お客さんがどうしても作ってほしいっていうシステムがあった。難しい案件だったけど、なんとかがんばって作った。そのシステムの構築には、数千万円かかったらしい。でも、そのシステムができて、1年くらい経つけど、実際に使われたのって2回しかないらしいんだよね」

先輩の話によると、お客さん側のシステム部とユーザーの間で認識が違っていたらしく、システム部や経営陣が作って欲しいと言っていたシステムは、実はユーザーからすると本当は必要なシステムではなかったらしい。

おそらくシステム屋さんであれば、よく聞く話だと思う。
  • 実際にものを作る人
  • 実際にものを使う人
  • 決定を下す人
これらの間で、綿密なやりとりが無ければ、作ってみて実は要りませんでした~ってことに成りかねない。そして、これらの3種類の人間が一堂に会する機会というのはほとんどないというのが現実だと思う。

例えば、実際にものをつくる私たちシステム屋が、お客さんのユーザーと話す機会や、お客さんの意思決定権を持つひとと話すことは、ほぼない。お客さん側のシステム部という部署の人たちから要件をいただく。

細かいやりとりを抜かせば、コミュニケーションの大きな流れは以下の2つだと思う。
  • ユーザー -> (開発依頼) -> システム部 -> (意思決定依頼) -> 経営陣 -> (意思決定) -> システム部 -> (開発依頼)->開発者
  • 開発者 -> (要件、仕様確認) -> システム部 -> (確認) -> ユーザー -> (返答) -> システム部 -> (返答) -> 開発者
上記では、システム構築者を開発者としてまとめたが、実はこのシステム構築者も一次受け、二次受け、三次受け、・・・、オフショアなどと細かく階層化されている。

問題点は、2つある。1つは、情報の伝達が遅くなってしまうこと。2つ目は、ユーザーの真意が開発者に直接伝わらないことだ。大きい企業だと、このように階層化された情報伝達は仕方ないのだろうか?

私は、学生時代にアルバイトで社内システム(住所録管理、在庫管理、部品発注システムなど)を作ったことがある。
そのときは、「窓がぱっと出てきて、ボタンぽんって押したら、シュッてこの項目が別画面に飛んでボタン押したら、こうなって、・・・みたいなの作って欲しんだけど?」と言われ、「はい、分かりました。」というかんじで要件が確定し、早ければその日のうちに試作バージョンを作って、「こんな感じだけどどうでしょう?」と聞いて、「うーん、ここはもうちょっとこうなってた方がいいなー」と言われ、また作りなおして、・・
という感じで進めていた。

このやり方だとスピード感が全然違う。開発者である私と、ユーザーと、そして意思決定権のある社長。3人が画面を見て、どうするのかをその場で決める。そして、要件定義書や設計書というイメージしにくい文書で話をするのではなくて、実際にものを作って、それを改良していくので、ユーザー、開発者間の認識の差異が生まれにくい。

”アジャイル開発”という言葉が先進的な開発スタイルみたいな感じで語られることが多いが、私はこれが本来あるべき普通のシステム開発の姿のように思う。

2011年5月18日水曜日

チームワークは必要か?理想のチーム像とは?

今日、面白いarticleをいくつか読んだので紹介。
技術者や研究職に身を置かれる方々には是非とも読んでいただきたいです。
あと、マネージメントや経営陣の方々にもお勧めです。


と、読んでみて確かにその通りだなと思う点が多々あった。
チームワーク、チームワークとよく言うが本当のチームワークって何なのか?
考えてみました。

 私が至った結論から先に言うと、
「チームワークは所詮手段であって、目標ではない。チームワークの目標は生産性をあげることである。
生産性があがらないなら、チームは必要ない。会社は生産性をあげるチーム作りに細心の注意を払わないといけない。」です。

 上3つのarticleに書かれていた内容を部分的に説明します。(注:私の解釈が含まれている可能性があります)
①環境は個人の裁量にまかせる
 世の中にはチーム内で力を発揮する人、一人で働くことで力を発揮する人など様々です。
研究によると、自分の好きな環境で働いた場合は、環境を強制された場合と比べ、83%も高いパフォーマンスを発揮したそうです。
 画一的なチーム管理に疑問符を投げかける良いデータだと思います。
個人プレイヤは個人で、チームプレイヤはチームで仕事をできる環境というものを会社は用意しなければならないと思います。

②1つの仕事は1人に責任を持たせる
 人は誰かが同じタスクをしている場合には、無意識のうちに自分一人でやっている場合より手を抜くらしいです。また、誰かと同じタスクをしている場合は、他の人はどうやってるんだろう?自分よりうまくやっているのかな?などと余計なことを考えてしまい集中力が落ちるそうです。

③強力なリーダーはチームをダメにする
 スマートな人が集まると良いチームはできません。なぜなら個人の知性とチームのパフォーマンスは直結しないからです。チームワークに必要なのはむしろEQです。
 また、強力な個性はパフォーマンスを悪化させます。チームの決定権を握った強力な支配者がいる場合はチームはうまく機能しません。

①②は大きく賛成。
③は部分的に賛成。確かにチームを活かすにはコミュニケーションスキルが必要。
ただし、コミュニケーションスキルだけ得意な(他は何の専門性もない)人が10人集まって何かcreativeなものが生まれるだろうか?No。チームには専門家とEQにたけた人、両方必要だと思う。
 強力な個性~~の部分は賛成。チームリーダーにはEQ力の高い人を選ぶべき。
”EQ=自己主張能力”と勘違いされがちだけど、本当のEQとは、記事にあるようにsocially sensitiveとかcommunally-mindedといった能力だと思う。
 おそらくすべての会社は、自己主張が強い人達をマネージメント層に採用していると思うけど、この研究結果を見て早く気付くべきだ。自己主張の強いリーダーはチームの生産性を落としているだけだ(会社に不利益をもたらしている)と。

以下、私の中の理想チーム像が満たすべき条件。。

・個人が独立して機能し、
・各個人が専門の分野を有しており、
・自分の担当領域においては自分が裁量権を持っており、
・コミュニケーションは、主に、他の領域の専門家であるチームメンバーに意見を求めることから構成される

この条件をみたすには、具体的に何をすればいいか?
 まず、Doerレベルの人は、自分が誰にも負けない専門分野を身につけることです。
それは、技術的なスキルでもいいですし、コミュニケーションスキルでもいいです。
この分野ならチームの誰にも負けないというものを作ることです。
 Managementレベルの人は、チームメンバーにもっと裁量権を持たせるべき。
資料を作ったら、課長に見せて、OKもらったら、部長に見せて、OKだったら、役員に見せて、・・・
こういうのは新人教育の場合以外は止めた方がいい。時間の無駄だし、個人の成長を抑制している。
 加えて、このような縦割り(ヒエラルキー型)の分業のコミュニケーションは、立場が上の人の自己満足に終わることが多く、どうでもいいことに言及しがち。
(例;ここのフォントはこの方がいいね。このシートのデザインだけどさ・・。ここの文章の表現だけどね・・。ここ図の色だけど・・。)
対して、横割りの分業(つまり個々の専門性を活かし、かつ、個々に裁量権を持たせた仕事配分)を行った場合、コミュニケーションは本質的なものになりやすい。
(例:プログラムの観点からはA案よりB案がいいのですが、DB構成の観点から見るとどうですか?)

 で、私の理想とするチームが身近なところにありました。
それはワンピースのルフィー海賊団です(なんとっ)。それぞれのキャラクターは誰にも負けない得意分野があります。そして、リーダーであるルフィーは、それぞれの専門家に適切な裁量権を与えています。
(ルフィーは、ナミの航海術に反対しませんし、サンジの調理方法に細かく口出ししません。)
 また、病人がでたらチョッパーに診断をお願いし、古代の文章が出てきたらロビンに教えを請う。これこそが専門性をベースにしたコミュニケーションだと思います。
 かつ、ルフィーは独裁的なリーダーじゃありません。どこか抜けているリーダーのもとでメンバーは、思い思いに自分の好きなことをやっているように見えます。そして彼らにはメンバーに対して絶対の信頼を持っています。
これこそ理想のチーム像では?

2010年10月19日火曜日

久々の仕事でコーディング

約1年ぶりの仕事でコーディング。

VC++を使った保守開発が始まった。ちょっとした疑問があったのでここに纏めておく。
.h と .libおよび .dllの違いについて。(以下他サイトからの引用)

A header file contains declaration of something (constants, classes, ...), usually ends with a .h or hpp extension.

A DLL (dynamically linked library) is a binary file (with .dll, .ocx, .a, ... extentions), containing functions, resources, ... and can be linked to your program at run-time. In order to use a DLL you need to include the corresponding header file, which declares things in the DLL, so that your program gets compiled. The DLL file is automatically loaded (by system) at run-time when your executable program invokes functions and asks for resources.

A library file (also called static library, with .lib extension usually) is a binary file which alsocontains functions and variables like DLL, but resolved at compile-time, meaning they need to be provided at link-time.

Dynamic and static libraries are often provided together with header file (but no source file, which contains the implementation) when the provider lets you use his/her functions/services but doesnt give you access to the implementation.

簡単にまとめると、
  • libファイルは、コンパイル時にリンクされる。実行時にexeファイル単体で実行できるけど、ファイル容量が重くなる。
  • dllファイルは、実行時に動的にリンクする。ファイル容量を小さくできるが、実行時に参照しているdllファイルを配置しなければならない。複数アプリから同様の機能を使用する場合は、dllファイルを用いるとメモリの節約ができる。
  • hファイルは、宣言のみ書いたファイル。libファイルやdllファイルを使用する場合は、使用するファイル内に含まれるクラス、関数を宣言しておかなければならない。
てな感じでしょうか。

引用元:

2010年10月7日木曜日

スマートグリッド、そしてスマートシティへ

恥ずかしながら、『スマートグリッド』と初めて聞いた時はグリッドコンピューティングみたいなものだと思っていた。全然違う。
スマートグリッドとは日本語に訳すと『次世代伝送網』のことで、電力の配送システムを供給・需要の両側から制御し最適化しようという試みである。経済面からも環境面からも有益なソリューションであるため、産官学が協力し研究・計画を実施している。
スマートグリッドをさらに発展させて、『スマートシティ』という概念も現れた。これは伝送網だけではなく、街そのものをスマート化しましょうというアイディアである。
簡単に言うと、“自然に優しく、無駄遣いをしないような賢い街づくりをコンピュータを使ってやってみましょう!”ということだ。具体例を挙げれば、
  • 太陽光発電を自宅に取り入れて、
  • 自動車は電気自動車に変えて、
  • 交通渋滞が起こらないように交通量を制御して、
  • 配電はもちろんスマートグリッドで、
  • 電気の使用状況は常時モニタリングして
  • ・・・
という感じ。最近IBMがテレビCMやってますよね。(参考ページ参照)
日本では、横浜(参考ページ参照)、豊田市、京都府、北九州市がスマートシティのモデル都市として選ばれました。うちの会社もがんばってるみたい!ガンバレー!!!

もともとスマートグリッド構想は、オバマ政権がグリーンニューディール政策の柱として打ち出したもの。さらに起源をたどれば、2003年のアメリカ大停電を経験して、停電を起こしにくい配電網を構築しようというのがそもそもの動機付けだったのかもしれない。それが、エコブームの波に乗り、今日の“スマート○○”ブームを作り上げたのかも。。

とりあえず、この『スマートシティ』、IT関連の会社にとってはとてつもないビジネスチャンスです。市場規模は今後30年累計で3100兆円と言われている@_@
私の会社も、スマートグリッドを『IFRS』と並ぶ今後の二大ビジネスチャンスとして捉えているようです。もちろん、IT会社の他にも自動車会社、電力・ガス会社、電気機器メーカーにとっても大きなビジネスチャンスです。今後、“スマート○○”のパワーで日本の、そして世界の景気が上向くことを期待しましょう!
あーーー、給料あがれー、あがれーー笑。

引用:
http://www.kankyo-business.jp/topix/smartgrid_01.html
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%82%B0%E3%83%AA%E3%83%83%E3%83%89
http://blog.goo.ne.jp/thinklive/e/05b191a8ecf7f535934185843f745355

参考ページ:
http://www-06.ibm.com/innovation/jp/smarterplanet/cities/
http://www.jftc.or.jp/shoshaeye/contribute/contrib2010_07e.pdf

2010年9月18日土曜日

IFRS対応でITバブル!?

今日は巷を賑す(!?)「IFRS」について書こうと思います。

まず「IFRS」って何ぞや?ということで、簡単に説明します。
International Financial Reporting Standards( 国際会計基準)の略で、「アイファース」と読まれることが多いです。
読んで字の如く、「企業の財政状態や経営成績を表すための会計基準の世界標準」のことです。
現在、日本の企業は日本独自の会計基準に基づいてレポーティングを実施していますが、近い将来このIFRSが日本の上場企業に強制適用される可能性があります。

2012年を目途に、金融庁によって上場企業へのIFRS強制適用の是非が判断され、強制適用が決定した場合は早ければ2015年よりIFRSに準拠したレポーティングが必須となります。
お試し期間(?)として、2010年3月末より、一定の要件を満たす上場企業の連結財務諸表についてIFRSを任意に適用できるようになりました。既にIFRS取り入れている企業もあるみたいです。。

IFRSの適用されることになれば、決算・財務報告のプロセス及び関連する情報システムの大規模な改革が必要となります。
しかし、会計系システム以外にも影響を受ける部分は多くあります(下表参考)。

影響を受ける業務変更が必要なシステム
売上計上基準の変更販売管理システム
棚卸資産の範囲/原価算定方法の変更購買管理システム/在庫管理システム
固定資産の減価償却の扱いの変更固定資産管理システム
リース取引の根本的な変更リース管理システム
未消化有給休暇の費用計上人事給与システム

いや、これは大変ですね。。(ちょっと難しい経済用語が並んでいるので、その説明については参考サイトを参照下さい。)
上場企業にとっては、お金も時間もかかる一大事ですが、System IntegraterやIT Cosulting Firmにとっては大きなビジネスチャンスとなります。
実際に私の会社でもIFRSは今後もっとも重要視すべきビジネスチャンスとして捉えています。
2010年-2015年にかけてITバブルの再来を期待します。給料あがらないかなー(笑)


2010年8月27日金曜日

インタビュワーとして学んだこと

暫く、会社でインタビュワーのようなことをやっていた。

詳細はconfidentialなので紹介できないが、社内から複数の人間をピックアップし、彼らの過去の経験をインタビューするというもの。

今まで、面接を受ける立場の人間だった私が、面接をするのである。。
かわいい女の子だったら喜んだり、いかついおっさんだったら凹んだり、いろいろあった。

違う、違う、上の灰色の部分は無視して下さい。
今日整理して置きたかったのは、インタビュワーを経験して初めて分かったことだ。
まず、気付いたのが、話の上手い下手は正直そんなにない。ということだ。内容自体の善し悪しも個人差はそんなにない。

それでは、何が取材協力者の印象の良し悪しを決めたか。。
それは、「話の一貫性」「聞き手の意思をくみ取った話をしているか」ということだ。

まず、一つ目。これは言わずもがな。
入社試験のときも、よく言われますね。話は一貫性を持ちなさい。って。
まあその通りだ。一貫性のない話をする人の話し方の特徴に気付いた。

「○○○なんです。」
「あ、あと△△なんです。」
「あ、でも××なんです。」

継ぎ接ぎ的に話を進めていく。おそらくたくさん喋らないといけないと思ってくれてるのだろう。(インタビュワーとしてはたくさん喋って情報をくれるのは嬉しいですけど。。)しかし、こういう話し方をする人はたいてい最初に行ったことと最後に言ったことが矛盾している。
そして、聞き手側に最後に残ってしまう印象は「あれ???言ってること矛盾してる。結局何が言いたいんだろう・・」
そう、この場合、最初の「○○○なんです。」で話を終えておけば良いのである。そもそも”長く話さないといけない”っていうのも間違いだと思う。ビジネスの場では、simply and conciselyが基本だ。

そして二つ目。これは、相手が何を聞きたいのかを考えて答えを返しているかいないのかである。
例えば、こう言う感じ。

「この出来事の後、あなたの考え方は変わりましたか?」

この質問に対して、何と、7割の人は、「変わりました。」と答えて口を閉ざしてしまう。。
これには、正直ショックを覚えた。。。(しかし、もし自分が逆に取材協力者だったら、自分も彼らと同じだったと思う。)
そのあと、暫く沈黙があり、「具体的にどう変わりましたか?」と聞いてようやく、どう変わったのかを話してくれる。

これは、例えるとこんな感じだ。あなたは、道に迷ってしまった。駅までの道のりが分からない。そこで、通りがかりの人に勇気を出して尋ねた。
「あの、すいません。駅までどうやったら行けるか知ってますか?」
「はい。」



「・・・・・・」



「・・・・・・」


「・・・・・・」


「え、えっとどうやっていくか説明してもらってもいいですか??」

話を戻そう。「考え方は変わりましたか?」という質問は、closed questionだが、実質的にopen questionである。「変わった。」ということを前提にして、本当に聞きたいのは「どう変わったか」ということである。
このpractically open question(勝手に名前付けた笑)に対して、きちんと「どう変わったか」まで話してくれる人は、よい印象を残すと思う。
そして、インタビュワーはこう思う。あ、この人は、日頃から話すときは、ただ質問に答えるのではなくて相手が聞きたいことを意識しながら質問に答えるんだな。と。
日常の仕事の上でも、
  • 質問に答えるときは相手が何を意図しているのか意識すること
  • そして逆に、相手に何かを尋ねる時は、何故その質問をするのか、その質問の答えを知って「何をしたいのか」または「相手に何をして欲しいのか。」を伝えることが大切だと思う。

と、プログラマーとして入社したものの、とても貴重な体験をすることが出来たので、忘れないようにここに記録を残しておきます。。