2014年5月27日火曜日

年収1000万を超えるために

私は、システムエンジニアで年収1000万を超える人に会ったことがありません。

バブルの頃ならたくさん居たのかもしれませんが、今では、嫌煙される職業になってしまいました。

先日、ある記事で、今後消えていく職業として、システムエンジニアやプログラマが含まれているのを見ました。

しかし、既にITは、生活に欠かせないものになっているので、システムエンジニアやプログラマは必要とされると考えています。ただし、システムエンジニアやプログラマを職業とする人の数は減るでしょう。

つまり、上級のシステムエンジニアやプログラマは、高収入を得ながら残っていけるけど、それ以外の、その他大勢は、必要なくなるという事です。

私も、このままでは、その他大勢になってしまいます。

そうならないため、『年収1,000万円に届く人、届かない人、超える人』(千田琢哉著)を読んでみました。

はっきり言って、私は、「年収400万の人」でした。

読み始めた時は、その内容にちょっと腹が立ちましたが、読み進めていくに連れて、自分に何が足りないのかが見えてきました。

特に、読書については、自分でも改めようと思ったので、ここに記載させて頂きます。

年収400万は、「本を読んで「勉強になった」で完結。」
年収1000万は、「本を読んだらとりあえず1つ試す。」
年収3000万は、「自分が本の著者になる。」

私も、よく本を読みますが、「勉強になった」で終わっていた気がします。

今後は、少なくとも1つ試して、それを積み重ねることで、その他大勢から脱却していこうと思いました。

2014年5月18日日曜日

コンテンツ感覚

今『ネット経営逆転の法則』(菅谷信一著)という本を読んでいます。

この本の中で、ホームページ作成は、「コンテンツ感覚」が必要と書かれています。

私もこれまでに、コンテンツを表示するシステムの開発を行ったことが何度かあります。その度に、「システムの出来てはなく、中身で勝負しないといけないんじゃないの」と感じていました。

ホームページ作成の依頼をするお客様の中には、画面の色やボタンの形、最新機能をといった事を中心に話される方がいます。しかし、そのお客様に必要なのは、「ホームページを作成することにより何をしたいか」ではないでしょうか。

私も、転職活動中にいろいろな企業のホームページを見てきました。どのページも、漠然としな内容で、具体的に何を得意としているのか分からなかった記憶があります。

私達のような、システム会社にお金を出してホームページを作成する以上は、それに値いする効果を追求する必要があるのではないでしょうか。

私は、今は組み込みの作業をしているので、直接エンドユーザと会話することはありませんが、上に書いたようなことは、常に心に置いて作業したいと思いました。

2014年5月17日土曜日

エンジニアとビジネス

私は、サラリーマンのエンジニアです。
ある企業に所属し、その企業から給与を得ています。
なのでサラリーマンなのです。

しかし、エンジニアである以上、何かを創りだし、収入を得たいを思うのは当然です。

エンジニア仲間の中には、サラリーマンであることを忘れて、自分で作り上げたものと勘違いする人もいます。

でも、やはり、企業に属し、何も創りださなくても、収入を得ることができる以上、サラリーマンなのです。

そう考えると、自分で何かを作り出すには、企業から飛び出す必要があるのかもしれません。実際、企業を飛び出し、フリーランスとして活躍している人も多くいます。

一度、そういう環境へ身を置くのも、いい経験になるのかもしれないな。

2014年5月15日木曜日

残業について思うこと

最近、残業が半端ない。

毎日、帰り着くのは、日をまたいでいるのです。

先日、経営者の多くは、社員の「残業を評価しない」という記事を読みました。私も、残業は評価されるものではないと思っています。残業は、作業者が時間配分を間違えたか、社員を統括するリーダーが作業量を考えきれていないものと思っています。

時間は、平等に与えられた資産です。
時間をもっと自分のために使えたらいいのですが・・・

この状況、どうしたらいいと思いますか?

2014年5月11日日曜日

こんなプロジェクトやってみたい

これまで携わったプロジェクトは、どれも「やりたい」と思えるプロジェクトではなかったような気がします。

じゃあ、どんなプロジェクトをやりたいのかと聞かれると、困ってしまうのですが、使ってくれる人のライフスタイルが変わるようなシステム開発ができたらいいなと思っています。

例えば、このシステムを使うと、従来の作業時間が短縮されて、残業しなくてすむような誰かのライフスタイルが変わるようなシステム開発ですかね。

これまでのプロジェクトで作ったものも、実際に使ってくれた人のライフスタイルを変えたものがあるかもしれません。でも、実際に開発した私達には、それが伝わって来ないんです。

派遣契約で他社のプロジェクトに入っている場合は、作ったものが世の中に出る頃には、そのプロジェクトには居なかったり、世に出たのかさえ分からないこともよくあります。

ITプロジェクトは、よく建設業と同じでように見られます。しかし、実際のところは、全く違っています。建設業では、作ったのもが目に見える形で残ります。しかし、ITでは、作ったのもは、目に見える形で残るとは限りません。

作業工程も、同じように見えて違っています。

建設業では、設計段階に入ることには、顧客の要求は、ほぼまとめられていて、それを、設計図として起こしていく作業だと思います。

しかし、ITでは、設計段階に入っても、顧客の要求は、まとまっていません。まとまっていない要求をもとに見積もりをし、設計に入ります。そのため、要求がどんどん膨らみ、見積もり範囲を超えてしまうというのはよくある話です。

ITは、もの作りの業界ですが、建設業とは、全く違う考えのもと、作業の進め方や価値を追い求めていく必要があると思います。

何となく、まとまりのない内容となってしまいましたが、結局、ITは、ITとしての価値をまだ見い出せてないのではないでしょうか。その価値を見出だせるようなプロジェクトをやってみなたいなと思っています。

2014年5月10日土曜日

[IT]WebRTC

WebRTCについて調べているので、内容をここにまとめてみます。

●定義

WebRTC (Web Real-Time Communication)とはWorld Wide Web Consortium (W3C)が提唱するリアルタイムコミュニケーション用のAPIの定義で、プラグイン無しでウェブブラウザ間のボイスチャットビデオチャットファイル共有ができる。
(参照1より)

●ブラウザ

  • Chrome
  • Firefox
  • Opera
(参照3より)

●必要なサーバー

  • Signalingサーバー:PC間で交換するサーバー
  • ICEサーバー:NAT超えの情報を管理するサーバー
(参照4より)



rtcと付いているのでP2Pで接続が必要になるのだと思います。
そのために、上記のようなサーバを設置する必要があるのでしょう。

参照4のサイトには、それぞれのサーバに使用できるソフトが紹介されています。
また、クラウドサービスもあるようです。

それで、実際にWebRTCを使用するには、どうすればいいかというと、残念ながらまだ分かりません。先駆者のサイトを見ながらやってみる価値はありそうです。


[参照]
[1]http://ja.wikipedia.org/wiki/WebRTC
[2]http://www.w3.org/TR/webrtc/
[3]http://www.webrtc.org/
[4]http://qiita.com/atskimura/items/97b2cc04e19781f4a4e6
[5]http://peerjs.com/
[6]https://code.google.com/p/rfc5766-turn-server/

2014年5月8日木曜日

[vi]便利な操作

以前viの基本操作について書きました。
今回は、viでソースコードを編集するうえで便利な操作について記載します。

  • タブ
  • 画面分割
  • シェル画面への変更

タブ
viでは、タブ機能を使用することができます。
エディタにタブ機能が付いたのは、viが最初だと何かに書かれているのを以前目にしたことがあります。

:tabnew ファイル名
これで、新しいタブで指定したファイルが開きます。
タブを移動するときは、次のコマンドです。
:tabnext
このコマンドで次のタブへ移動することができます。
また、コマンドの後に数字を入力すると、指定したタブへ直接移動することができます。

画面分割
viでは、画面を上下に分割して作業することができます。
:split
 このコマンドで画面を上下に分割し作業できます。

画面を左右に分割することもできるようです。
:vsplit
私が使っているバージョン(?)ではできませんでした。
※上下に分割するよりも、左右に分割できた方が作業しやすいので、もう少し調べてみようと思います。

シェル画面への移動
viで作業していて、シェルを実行したい時は次のコマンドです。
:shell
ソースコードを書いて、コンパイルするときなどよくあります。
このコマンドでターミナルの画面が、シェル入力画面へと切り替わります。
戻るときは、exitコマンドで終了すると、viの画面へ戻ってきます。


2014年5月6日火曜日

[IT]見積もり

私達、技術者の見積もりには、人月がよく使われます。
何人でやると1月で出来るという単位です。

例えば、3人月だと3人で1ヶ月かかるから、3人分の人件費と諸費用がかかりますよということです。

しかし、この見積もりですが、よく仕様が確定する前に行われます。そのため、見積もりの段階で前提としていた機能を大幅に超えた場合は、見積もりが意味をなさなくなるのです。

スゲジュールもこの見積もりをもとに作成されます。3人月の仕事を1人でするから3ヶ月かけて行うといった感じです。

IT業界は、モノ作りの仕事なので、建築業や製造業と同じように考えられます。建設業や製造業は、仕様や設計がある状態で見積もりを出すのに対して、IT業界では、漠然としたアイデアをもとに見積もりを出します。

そのため、見積もりを出して、実際に作業に入り、仕様を詰めていくと、想定以上に機能が多かったり、複雑だったりします。

それに加えて、追加で機能が増えたり、想定以上に仕様を詰めるのに時間がかかってしまい、設計、製造、テストの工程時間を削減する必要に迫られたりします。

私は、この見積もり方法は、IT業界では間違っているのではないかと考えています。

仕様が漠然としているのであれば、まず、それを詰める期間を前提として、仕様確定までの見積もりを出したほうが現実てきなのではないでしょうか。

そうは言っても、依頼する企業側も、せっかくIT専門家を雇ってシステムを作成するのだから、これまで問題となっていた機能を修正したいと考えているでしょう。

そこで、win-winの関係になれる方法が、アジャイル開発です。

アジャイル開発は、各機能ごとに作成していきます。もちろん、見積もりも各機能毎です。機能が大きい場合は、可能な範囲で区切ることもできます。

アジャイル開発は、まだまだ導入されている企業は少ないのが現状です。

しかし、アジャイル開発は、上記したIT業界での見積もり問題を解決できると私は考えています。仕様を詰める段階での見積もりは、想定する機能やスケジュールを超える場合は、別見積もりとしたり、次の開発に回すことができるからです。

私が務める企業では、派遣と請負の業務を行っています。

請負の業務には、アジャイル開発を行えないかを、まず検討していますが、まだまだ、うまくいっていないのが現状です。でも、手探りでやっているうちに、それなりのルールを作ることが出来るのではないかと期待しています。

それに比べで、派遣業務は難しいです。

派遣は、作業指示が派遣先にあるため、アジャイルを組み入れるのは難しくなります。派遣先が、従来の作業方法をしている場合、それに従わなくてはならないからです。

アジャイル開発が今後浸透してくことを期待しています。

2014年5月4日日曜日

[vi]基本操作

最近、仕事でviを使うことが多いので、基本的な使い方をまとめておきます。
(詳しい人にとっては当たり前の事も私にとっては新鮮)


モード

他のテキストエディタと違うのはモードがあることです。
  • コマンドモード
  • 入力モード
  • ビジュアルモード
基本的にはこの3つのモードを使い分けれればいいようです。

コマンドモード

コマンド入力で編集を行うためのモードです。
テキストを開いた直後はこのモードで表示されています。
他のモードからコマンドモードに戻るには、ESCキーでもどれます。

入力モード

文字の入力が可能なモードです。
iキーを押すことでカーソルのある位置に入力が出来るようになります。
aキーを押すことでカーソルの1文字後ろから入力が出来るようになります。
注意しないといけないことは、同じviでも↑→↓←キーやBackSpaceキーが使えない場合があることです。
押した瞬間文字化けしてビックリなんてこともよくあります。
そんな時は慌てずに、ESCキーでコマンドモードに戻って、dキーまたはxキーで削除。

ビジュアルモード

最近のviにはこのモードが付いているみたいです。
Ctrl+vでビジュアルモードになります。
矢印キーで文字が選択できます。
選択した文字をコピーする場合は、選択した状態でyキーを押します。
その後、コマンドモードで、貼り付けたい場所へカーソルを移動しpキーを押すと貼り付けることができます。
ここでも注意が必要なのが、pキーで貼り付けると上書きされるんです。



その他に知っておいて得するのが、カーソル移動のキーです。
  • hキー:左へ移動
  • jキー:下へ移動
  • kキー:上へ移動
  • lキー:右へ移動

最後に必要なのが保存法です。
コマンドモードで:キーを押すとコマンドが入力出来るようになります。
ここでwキーで保存されます。

:qキーで画面押して終了です。
ちなみに、:q!で修正を保存せずに終了できます。

2014年5月3日土曜日

ビジネスと技術

経営者と技術者では考えることが異なっています。

経営者は、やはり売上を上げるようなアイデアを出してきます。
それに対して、私達、技術者は実装面で考えて答えてしまいます。

経営者が出してくるアイデアを、技術者は、新しい物を作るのではなく、既存である物やフリーで使える物で対応できないか考えてしまいます。

<経営者>
「このソフトみたいなもの作れる?」

<技術者>
「こういうソフトがありますよ」
「このソフトとこのソフトを使うとできそうです」

こんな感じの会話が出てくるのです。

しかし、経営者側は、既存のソフトを使うのではなく、自分たちで作り育て、自社開発ソフトとして出したいのだと思います。そうすることで、会社の宣伝効果、売上向上を狙っているのでしょう。

私達、技術者側から見ると、アイデアの出し方を工夫してもらいたいと思います。自分たちで作るしかないと思えるような問いかけをお願いしたいです。

「このソフトじゃこんな点で物足りないから作れないかな?」
「今のソフトにこんな機能を入れたいけど作れる?」

こんな問いかけから、問題の本質を解いて、ソフトを改良することは、私達、技術者の得意とするとこなのです。

しかし、既存であるソフトと同じものを、イチから作ろうといったアイデアには、どうしても興味がわかないし、そのソフトを超えるソフトを作れる気がしないんですよね。
正直。

この経営者と技術者の認識の溝を埋めるには、どうしたらいいのだろうと、最近よく考えています。