今後エンジニアに必要な能力はこの4つ

f:id:Ichiei:20180809095110j:plain

今後エンジニアに必要な能力はこの4つ

(たぶん)

1.クラウドを前提としたDevOps

2.MLを前提とした最適化・自動化

3.愛を前提としたUI・UXの作り込み

4.全てを掌握するプロダクトマネジメント能力

 

順を追って説明します。

 

まず基本的なシステムの構成は下記です。

 

システムは、ユーザが見えるところを開発するフロントエンドエンジニア、ロジックを作成するサーバサイドエンジニア、データベースを設計・構築するデータベースエンジニア、インフラを整備するインフラエンジニアによって作られています。

f:id:Ichiei:20190612190142p:plain

 

どうせ作るならさっさと作って世の中に出した方がいいんじゃね???って感じでアジャイル開発及びDevOpsが発展してきました。

 

f:id:Ichiei:20190612190225p:plain

 

 

そのあと、ダサいシステムよりカッコいいシステムの方がいいに決まってんじゃん!ってことでUI/UXの概念が広まります。

f:id:Ichiei:20190612190206p:plain

 

そしたら、AIはなんかすごい!!!ってことで「AIだ。AIだ。AIだ。」祭りが開催されます。

 

f:id:Ichiei:20190612190207p:plain

AI祭りの横でクラウドが発展しすぎて、サーバなんていらなくね???ってなり各クラウドベンダーがサーバレスの機能をリリース。

 

f:id:Ichiei:20190612190247p:plain

AI祭りの横で、みんなよくAIのことわかってないから、単なる自動化にかっこいい名前(その名も「RPA!!!」)をつけて普及させようとしたら本当に普及しちゃった。。。

f:id:Ichiei:20190612190308p:plain

 

こんな流れを持って誕生したのが下記の構成。

ざっくり言うと、高速で開発してデプロイして、クラウドもコストのことを考えながらいい感じに使って、AIもRPAも使って効率化・自動化させて、UI/UXもめちゃくちゃこだわって作ってれば、システム開発はOKなんじゃね???

って感じになりました。

f:id:Ichiei:20190612190313p:plain

 

 

さて、落ち着いて考えるとシステム開発にこれ以上のことはない

ここまで本当にできるかは別として本当にない

 

そこでエンジニア達が考え出したのが「ビジネスへの貢献」である。

f:id:Ichiei:20190612190320p:plain

 

まず、意思決定を助けようとしてBIツールが発達、そしてデータサイエンティストという仕事も普及。遂にタブローは1.7兆円で買収されるまでにもなった。今後ビジネスのロジックがわかった上で意思決定がしやすいようにデータをいい感じにまとめる仕事はますます増えるはず。

f:id:Ichiei:20190612190326p:plain

 

 

そして、そして、おそらくまだまだ安定して高速で開発することは求められる。

(エンジニアとしてはダラダラできなくて辛い)

f:id:Ichiei:20190612190331p:plain

 

また、AIもまだちゃんと全然実装されていないし天才達がみんなやっているのでもっと全然すごくなるはず。

f:id:Ichiei:20190612190337p:plain

 

UI/UXも同じくwebの2Dの世界が3Dになるくらいまでは発達するはず。

f:id:Ichiei:20190612190343p:plain

 

そして、なんと言っても全部わかっている人が必要全部いい感じにできる人は必要になる。

f:id:Ichiei:20190612190347p:plain

 

 

すなわち、以下4つスキルが必要です。(たぶん今後3~5年は)

1.クラウドを前提としたDevOps

2.MLを前提とした最適化・自動化

3.愛を前提としたUI・UXの作り込み

4.全てを掌握するプロダクトマネジメント能力(意思決定能力)

  

さて、みんな頑張ろう!

 

 

凄くないことを淡々とたくさんやりたい

f:id:Ichiei:20171224144019j:plain


仕事が少し落ち着いたので、最近思っていることをつらつらと書きたいと思います。

 

私は、働くことを考え始めた約10年前からIT業界について注視し、実際に今IT業界で働いています。

この10年のIT業界をざっくり振り返ると、スマホクラウド、ビックデータ、IoTAR/VRAIブロックチェーン、デジタルトランスフォーメーションといった具合かと思います。

 

もともと、数学を猛烈に勉強していたこともあり、ビックデータ・AIにとても興味がありましたし、今もあります。

AIを使った誰もが知っているようなサービスを作りたいと思っております。

 

しかしながら、ITエンジニアとして仕事をする上で大切にすべきことは、別にAIを使うことではないと最近常々思っております。

 

確かにAIというかDeepLearningとかMachineLearningを使ってゴリゴリの理論と実装で社会的な問題に取り組むには最高にイケていると思います。

 

しかし、AIを使わずしてもITを使うだけでできることはたくさんあると思っています。

例えば、スマホ対応していないWebサービスをスマホ対応させる、既存の検索機能を少しだけリッチにする、データを抽出してパッとグラフを描く、等々です。

 

これらは10年前の技術でできますし、ゴリゴリの理論も複雑な実装も必要ありません。

しかしながらITエンジニアとして生きていくにはこういった細かいことや面倒なことを避けず取り組んでいく必要があると思っています。こういう小さいな積み重ねによって世の中がよくなると思ってもいます。

 

 

AI使ってかっこいいこともやりたいけど、

 

10年以上前からある技術を使って、

 

凄くないことを淡々とたくさんやりたい。

 

きっと、なんでも淡々と早くたくさんできるITエンジニアは優秀なエンジニアなはず...

 

tekitouu.hatenadiary.jp

 

ーーーーーーーーーーーーーーーーーーーーーー

 

さて、以上はすべて前フリでして、

今まで全くと言っていいほど何もやっていなかったOSS的なことをやろうと思っています。

 

その第一弾として、スクリプトを埋め込むだけで表の中にある特定の数字に色をつけてカウントしてくれるコードを作りました。こういうのって大切だと思っております。

https://github.com/barcarunrun/tableChangeColor

(我ながら、凄くない!)

 

今後色々作っていくつもりでして、直近OSSでダイナミックプライシングのAPIおよび付随するECサイトを作る予定です。チェケラ!!

 

ITエンジニアの単価が高すぎるのはいかがなものかと思う

f:id:Ichiei:20190320013458j:image

 

ITエンジニアの単価が高すぎるのはいかがなものかと思う.

 


最近だとindeedが新卒に対して1,000万~1,500万払うとして話題になった.

 


正直、一つの企業が新卒に対していくら払おうと別によいのだが、業界全体として高すぎると思う.

 


なにを懸念しているかというと、

高いが故に新しいサービスや機能が実装できず、

古いレガシーなシステムも手がつけられず、

IT自体が十分に世の中に実装されないことだ.

 


起業がそうであるように、

社内でどれほど承認され評価されたとしてもマーケットに出してみないとわからない.

社内フローを通すために時間とお金を使い、いざ実装しようとしたらお金が足りないのでは本末転倒であると考える.

 


マクロで見た時に実装数が減ることが、いかがだと思うひとつの原因である.

 


また、これとは別の問題もあると思っている.

 


エンジニアの単価が高いことを利用して稼いでる企業が無数にあることだ.

 


具体的には、一部のプログラミング 教室やSESのことだ.

 


一部のプログラミング 教室は、エンジニアの単価が高いことを利用して人を集め、受講料をぼったくっているし、

一部のSESは、エンジニアの単価が高くエンジニアがいないことを利用して全然使えない人材を企業に送り込んでいる.

 


そもそもとして、ITエンジニアの単価は多種多様でありそれぞれのレベルに応じた値段が必要なのではないだろうか.

 


補足.

IT業界では見積もりを1人月(人ひとりが1ヶ月働く)単位で出すのが一般的でどんなに細かくしても0.1人月より小さくならない.通常は1人月100万とかで見積もる.

 


参考.

SEの人月単価100万円は高いのか

https://nyumon-info.com/tanka/100.html

 


---------

 


さて、余談になりますが

このエントリーで「当社は安くてしっかりしてますよ~」と言いたいわけではないです.

 


むしろ当社は高いです.

 


そんなことではなく、

高くて実装できないとドンドン実装力がなくなってマクロ的に見てヤバいし、

そもそも実装しないと意味がない(サービスとしてローンチできない)ので、そんな丁寧なデザインモックもそんなパワポ資料も必要なくてちゃっちゃと実装しようと言いたい.

 


ぶっちゃけると

「2-3日でこんな機能を作ってくれ」

と言われるのは凄く有り難くて、

納期短いから単価高くしやすいし、何よりも即実装される.

 

即実装されることのメリットは計り知れなくて、

エンジニアは実装したいからエンジニアをやっているわけでモチベーションになるし、

即できるからあなたも嬉しいだろうし、

ヤバいこと(そもそもの設計ミスとか)があると即わかる(なんせ締め切りがヤバいから)、何よりもその実装により即ビジネスを回せる.

 


また、実態のないプログラミング 教室やSESはさっさとなくなって頂きたい.

周りに別の業界からエンジニアになろうと50万払っちゃった人もいるし、明らかにぼったくっているSESに騙されて可愛そうな人がいて、個人的に虚しい.

 


ITエンジニアおよびその関係者は、真摯さを持たないと業界ごと無くなるのではないだろうか.

備忘:

日々過ごしていると「なんで今の仕事をしているのか」とか、「なんで今日このタスクをやらないといけないのか」わからなくなることがある。

 

自分はなんなのか。

 

プロフェッショナルITエンジニアである。

補足1

 

エンジニアリングの定義は

数学自然科学を基礎とし、ときには人文社会科学知見を用いて、公共の安全健康福祉のために有用な事物や快適な環境を構築することを目的とする学問

 

ITエンジニアの定義はこんな感じであろう。

数学自然科学を基礎とし、ときには人文社会科学知見を用いて、公共の安全健康福祉のために有用な事物や快適な環境を構築すること人のこと」

 

ここにプロフェッショナルが付くとこんな感じであろう。

「ある目的にコミットし、数学自然科学を基礎とし、ときには人文社会科学知見を用いて、公共の安全健康福祉のために有用な事物や快適な環境を構築すること人のこと」

 

なんでこんなことをやっているのか

「新しいことをはじめる瞬間」と「何かができた瞬間」が好きだから。

補足2

 

「新しいことをはじめる瞬間」と「何かができた瞬間」を多く体験するには「IT業界」にいるのが最適であると思っている。

 

やりたいことができているか

 

できているが、スキルが足りないし、あと4段階くらいは進化できると思っている。

補足3

 

自分は何ができて、何ができないか

できること

PJをぶん回す(自ら)

・要件定義する

 

この2つはかなり自信がある

補足4

 

できないこと

・ビジネスすること(営業すること)

・開発能力

・インフラ構築能力

 

 

どうなってできないことをできるようになるのか、どうやって進化していくつもりなのか

 

….

 

(具体的にはわからないが、)

 

プロダクトマネジメント的なこと(ビジネスすることマーケ回すこと含む)をやりつつ、インフラ構築(というかInfrastructure as Code)の経験を積まなければいけないと思っている

補足5

 

補足

補足1:たぶん

補足2:他のことはだいたい嫌いか興味がない

補足3:悟空って何段階進化するんだっけ???

補足4:ほんまかいな。井の中の蛙

補足5:自分のモチベーションはかなり贅沢であると思っている。たぶん、建築に例えると「とにかく建物を作るのが好き」と言っていて、営業から設計から大工まで全てやろうとしている。たぶん本当に倒れるまでこの感覚から逃れられない。

 

 

 

IT企業に就職する際に考えるべきこと

f:id:Ichiei:20180104205536j:plain


はじめに

完全に個人的な意見です。

絶対こうみたいなことはありません。

 

IT企業の仕事について

そもそもですが、IT企業はざっくりですが以下3つの仕事しかありません。

1.コーポレート

2.システム開発

3.マーケット開拓&マーケットフィット

 

1.コーポレート

社長業、広報、人事、経理、法務等です。

 

2.システム開発

システムを作くる仕事です。

さらに細かく分類すると、PM、業務系(上流)、技術系(設計~コーディング)、運用・保守になります。

 

3.マーケット開拓&マーケットフィット

営業、マーケッター、デザイナー等です。

 

IT企業へエンジニアとして就職することについて

エンジニアとして就職することすなわちシステム開発をするわけです。

一体自分は何がしたくてシステム開発をしたいのか、というかそもそもシステム開発をどういった軸で分解して考えるのがよいか。

 

ざっくりですが、下記の3つで分類してはいかがでしょうか。

1.技術要素

2.サービス

3.開発言語・プラットフォーム

 

1.技術要素

技術要素とは、フロントエンドなのか、サーバサイドなのか、インフラなのか、はたまた、クラウドなのか、それともAIブロックチェーンAR/VRなのか。

 

2.サービス

ひたすらデザイン性の高いLPを作りたいのか、それとも業務系な管理システムがいいのか、〇〇のプラットフォームがいいのか、とにかく大きいサービスがいいのか等々。

 

3.開発言語・プラットフォーム

新卒ではまず問われませんが、Swiftのエンジニアとして生きていくのか、それともAWSを使ってインフラやる等々。

 

具体的には、

とにかくAIが好きでAIが世界を変えると思っていれば技術要素であるAIを軸に会社を探せばいいでしょう。

また、とにかくスポーツが好きでスポーツに関わることがしたいと考えているならばDAZNのような会社が候補になるでしょう。

他にも、俺はAWSについて極めたいのだとなれば自ずと会社は決まるでしょう。

 

全てはやりたいこと次第。

 

因みに私は、「とにかく作りたい。社会実装したい。」と思っているのでシステム開発会社を経営しています。

 

ぶっちゃけITエンジニアってどうよ???

日本の話になりますが、ブラックです。

(ブラックじゃない職場もありますが、その人はブラックなのが嫌なのでセーブして働いています。)

ITエンジニア自体の数が少ないですし、一定以上のスキルがある人に仕事が集中します。

地位もあまり高くないと感じます。

 

では、なんでITエンジニアやってんの???

理由はたくさんありますが列挙すると下記になります。

1.そもそも左脳的に論理を積み上げることが好き

2.論理の積み重ねなんだけど時に爆発的な進歩があることがとても好き

(サッカーとか将棋とか)

3.実力主義で年齢があまり関係ない

4.年齢によらないので稼ぎやすい

5.新しいものを作ろうとする瞬間、新しいものができた瞬間がとても好き

6.チーム作って何かするのも好き

7.技術的関心がある(数理的関心がある)

 

 

まとめ

個人的な意見として、IT企業はブラックなので、サービスへの愛もしくは技術的関心がないのならばエンジニアになるべきではないと思います。

なりたければそこそこ簡単になれると思いますよ。

 

 

きっと仮説って重要

きっと仮説って重要なんで思いついたものを書いておく

 

1.コンウェイの法則はすべてを支配する

 

2.システム開発は2人で行うのが最も効率が良い

 

3.システム開発は必ず3人で行うべきである

 

4.デザインとは、デザインとクリエイティブに分けられる

 

5.ITサービス企業は優秀な人財を惹きつけるために自社サービスを作成する必要がある(ビジョナリーなものを)

IT業界って◯◯だと思う。

f:id:Ichiei:20171224144019j:plain

常にIT業界についてどうのように伝えたら互いにお客さんと我々がWinWInになるのかを考えています。

 

1つの仮説が思いつきましたので書きます。

 

仮説

IT業界って、スポーツ業界・医療業界・ファッション業界を全部足して2で割った感じ(割り切れない)」

 

 

説明します。

 

1.スポーツ

『経験とメンタルによるところが多い。そしてチームが存在する。』

 

スポーツが人間のメンタルに大きく影響するようにITエンジニアの生産性は大きくメンタルに影響します。

1つのミスで試合に負けるのと同じように1つのミスでバグは発生します。

 

また、必ずチームが存在してポジションや役割が存在します。

もちろんなんでもできるポリバレントITエンジニアもいます。

 

2.医療

『医学くらい専門分野が広い。』

 

ITにものすごく詳しい方は確かにいます。

しかし、OSについてばぁ~ってしゃべれる人も、案外GoogleAnalyticsの使い方は全く知らなかったりと、知識が広すぎて一人が認知できる量を確実に超えております。

 

耳鼻科と産婦人科があるのと同じです。

 

3.ファンション

『なにがナウいか、何が流行っているかを常に考えている。』

 

2010年くらいはクラウド、ビックデータ、AIブロックチェーンと流行りがあって、次は量子コンピューターだし、実はDevOpsとかマイクロサービスが流行っているといった具合に普通の人が聞いては???みたいな流行があります。

 

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

上記を踏まえて一般人やシステム担当者(エンジニアではない方)どうすればいいのか。

エンゲージメントの高いエンジニアを探してポジションを与えて最低限の管理をしつつ好き勝手やらせるのがいいのではないでしょうか。

 

具体的には、現状ほぼエンジニアがいない状態であれば、長谷部誠井原正巳のようにリーダーシップがあるオールラウンダーを採用すべきですし、エンジニアが少数で品質が上がらないのであればひたすらアップダウンを繰り返してくれる長友佑都のような人を採用すべきでしょう。

(因みに、優秀な選手がどんな戦術でもどんな監督でもレギュラーをはれるように、優秀なエンジニアはどんなチームにも適応できます)

 

※個人の見解です。