Posts

ITエンジニア必須の再審用語解説

 ノーコード・ローコード開発 ノーコード・ローコードとは何か? 近年、アプリケーション開発の現場において「ノーコード」や「ローコード」というキーワードをよく耳にするようになりました。「ノーコード」とはプログラムのコードを一切書かずにアプリケーションを開発することを指します。一方で「ローコード」は必要最小限のコードでアプリケーションを開発します。 ノーコード開発において、プログラミング言語に関する知識がほとんど必要とされません。コードを記述する代わりに、開発ツールのUIを操作してアプリケーションのロジックを表現することになります。サイボウズが提供するKintoneなどに代表されるノーコードのプラットフォームには、アプリケーションに必要となる様々なパーツが予めモジュールとして用意されています。それらを組み合わせることによって、様々な機能を実現できます。 一方で、ローコード開発はノーコード開発とは異なり、コードを記述することが前提となる開発手法になります。ただし、開発ツールのサポートなどによって記述するコードの量を最小限に抑えるというのがローコード開発の考え方です。ローコード開発では開発ツールやフレームワークにより提供される様々な機能をAPI経由で呼び出して組み合わせることでアプリケーションを構築します。 ノーコード・ローコードのニーズが急増してきている背景には、ビジネス市場における要件の変化やITシステムの高機能化に対して、IT技術者側にそれに対応するためのリソースが足りていないという事情が挙げられます。特にクラウドサービスを活用したアプリケーションは開発に広範な知識が必要となり、人材の確保が難しいという課題があります。 これに対してクラウドプラットフォームのベンダーは、それぞれのサービスを活用するためのノーコード・ローコード開発ツールの提供を始めています。代表的なものとしてはAmazonのAmazonHoneyや、MicrosoftのPowerPlatformや、GoogleのAppSheetなどが挙げられます。

ソフトウェア開発の仕事は本当に将来性がないでしょうか?理由も教えてください。

Original ソフトウェア開発の仕事と一口に言っても多数の分野・職種があります。また、国によって状況はまちまちです。 日本で現在主流なのはいわゆるSIerと呼ばれる受託システム開発会社(例えばNTTデータ、野村総研など)ですが、これらの組織が転換しない限り明るい将来はないでしょう。理由は2点です。 ビジネスモデルが世界主流から時代遅れである ソフトウェア開発者が評価されない組織体質であり古臭いゼネコン構造である 1に関して、日本企業はITのことがよく分かっておらず、またその価値を見誤ってきたために、ソフトウェア開発は外注するのが一般化しています。そのため、色々なシステム開発を一手に引き受けてくれるSIと呼ばれる業界が肥大化してしまいました。一方の米国では現在どんな企業もソフトウェアは内製しようと必死です。外部に発注してしまうとコミュニケーションコストがかかってしまいビジネスのスピードにブレーキがかかってしまうからです。優秀なエンジニアを高給で雇った方が速いし、長い目でトータルで見ると安いという極めて合理的な観点からそのような構造になっています。この流れはGoogleやAmazonのようなITで有名な企業だけには止まらず、その他の様々な業種・業界の企業が取り入れています。例えば、世界最強の投資銀行の一つである ゴールドマン・サックスも今や社員の25%はソフトウェアエンジニアです。この内製化の流れに反している日本企業はどんどん競争力を失うことでしょう。それに伴い、SI企業も縮小することでしょう。

私は36歳です。Google, Facebook, Microsoft, Appleにソフトエンジニアとして入社するには私は年を取り過ぎているでしょうか?

46歳の時にGoogleに入社して、もう7年間になります。2つのことを覚えておいてください。 面接のプロセスは、経験豊富なエンジニアよりも学校を出たばかりな人を採用することに重点が置かれており、フロントエンドよりもバックエンドの人を採用することに重点が置かれています。私が知っている多くの優秀な人材にとっては、この問題を乗り越えることは大きな障害となっています。 年齢差別は稀ですが、同僚のほとんどが自分よりもずっと若いので、居場所がないと感じることがあるかもしれません。これは技術的な場面よりも社会的な場面でよく起こります。

日本の会社にもっと優秀な海外の技術者を呼び寄せたい場合、給料以外にどんな策を講じる必要あると思いますか?

米国の IT企業で働いているものです。東京で5年弱働いてました。日本人ではありますが、サンフランシスコで働く技術者の視点に限りなく近いと思いますので、書いてみます。 例えば: 世界で戦える技術を1つでも持っている 去る者を追わず、出戻りも大歓迎(風通しが良い) 優先度付けの徹底(10の仕事に対して8の時間しかない場合、落とす2を戦略的に選べる。残業して10をやるとかは論外) 結果重視でリモートもOK(自宅勤務の部下の業績を測れない上司はアウト) 労働時間よりプロジェクトに貢献度で評価 関係が拗れた顧客と上手に断ち切れだけの技量と営業ー技術の信頼関係がある(ズルズルいかない) 複数の部門で外国人マネージャが活躍している(公平チャンスがある) 書類がすべて英語化(日本語できない人はハンデにならない) 車内で移動しやすい 上司と部下が相互評価する 給料は市場価格(相場次第で技術者がマネージャーより稼げる) トレーニングも業務の一環として費用及び時間を確保できる VISAが取りやすい ありえないと思うかもしれませんが、ITに限ればこのうち大半を満たせる会社は普通にあります。最後の一点は米国がバツですが。 もちろん、ほとんど満たしてなくても「日本に住みたい」という人は沢山いると思います。圧倒的に飯が安くて美味しいし。でも、例えば「リモートはダメよ」とかと言われると、どんなに働きたい会社でも「子供が風邪ひいたらどうするの?親としての最低限の義務を果たせないのでは…」となります。所帯持ちの経験豊富の人材は本人がどんなに来日したくても家族が納得しません。

テストコードを書かないメリットありますか?

一番のメリットは、テストコードを書く時間を省くことが出来ることです。その時間を別なプロダクト開発に利用することができます。 なので、非エンジニア(ビジネス側)の方にとって、エンジニアがテストコードを書く事に対して、疑問を持っている方が多いと思います。 ただ、長期的に見ると開発・保守効率が下がるため、テストコードを書いているに越したことありません。(テストコードを書きすぎてもテストコードの保守が大変になるので、良い塩梅を見つけないといけないですが)

優秀なプログラマーは何故Stackoverflowを使用しているのですか?

Stackoverflowは技術分野の質問・回答サービスですが、Quoraと同様に質問や回答の品質を維持するための仕掛けがいくつかあります。 過去に同様の質問があればそちらへ誘導することができますし、誤った回答であれば評価を下げることで、検索のランキングが落ち込むように設計されています。くだらない質問や回答に時間を取られなくても良いわけです。 今の所効果的に機能しており、トラブルや疑問の多くは解決することができます。 優秀なプログラマーによる的を射た質問や的確な回答により、見た人もより優秀なプログラマーになれるでしょう?

windowsのOSは32bit版と64bit版があります。64bit版の方が処理が速くて、使いやすいと捉えて大丈夫ですか?

基本的に、32bitの方が良いとか、32bitじゃないといけない人は結構限られているので、大抵の人は64bitを選ぶべきです。 速度については、メモリが最低でも8GBあるという前提ならば、64bitの方が有利なことが多いです。反対に、32bitではシステムメモリが4GBまでしか認識出来ない代わりに、アプリのメモリ効率は64bitよりも良いので(ざっくり半分強で済む)、メモリ4GBやそれ未満で使う場合は、32bitの方が快適です。 また、32bitは過去のアプリ(XPや98など)との互換性をある程度持つので、そうしたアプリを使いたい場合に有利です。