ITエンジニア https://techgrowup.net エンジニアを強くする Sun, 30 May 2021 15:15:05 +0000 ja hourly 1 https://wordpress.org/?v=7.0 https://techgrowup.net/wp-content/uploads/2021/05/hp-icon-150x150.png ITエンジニア https://techgrowup.net 32 32 DX(デジタルトランスフォーメーション)とは何か。何を推進すればいいの? https://techgrowup.net/dx/ https://techgrowup.net/dx/?noamp=mobile#respond Tue, 18 May 2021 12:29:35 +0000 https://techgrowup.net/?p=643 DXとは何か
DXの定義

DXの定義

 経産省のDXレポートによると、下記と記述されています。

 企業が外部エコシステム(顧客、市場)の破壊的な変化に対応しつつ、内部エコシステム(組織、文化、従業員)の変革を索引しながら、第3のプラットフォーム(クラウド、モビリティ、ビックデータ/アナリティクス、ソーシャル技術)を利用して、新しい製品やサービス、新しいビジネス・モデルを通して、ネットとリアルの両面での顧客エクスペリエンスの変革を図ることで価値を創出し、競争上の優位性を確立すること

Japan IT Market 2018 Top 10 Predictions: デジタルネイティブ企業への変革 – DXエコノミーにおいてイノベーションを飛躍的に拡大せよ, IDC Japan プレスリリース 2017年12月14日

 要約すると、新しい技術を使ってネットとリアルを繋げていこうよ!という話ですね。
実際にDXに取り組んでいる会社はいくつもあり、事業のDXに達成している企業が、事業拡大やコスト削減を達成したり、市場でも優位性を持っていることが多いです。
 

DXの流れ

 現在日本でもDXが進んできてはいますが、IPAの調査によると、2016年から2018年にかけて、DXに取り組まないことによる影響が出ていると回答した企業は、0%から15.8%まで高まっています。実際に2020年4月に起こったコロナウイルスで影響が出たという方もかなり多いのではないでしょうか。

 昨今多くの企業ではコロナ下におけるリモートワークが推し進められ、出社をしない方も増えてきたというデータもある一方で、中小企業や一部の大企業では未だに通勤電車に満員で乗っているような状態もあり、DXによる格差が増々高まっている状態です。

 一方海外のテレワーク普及率をを見てみると、テレワーク総合ポータルサイトによると、2019年時点でアメリカは85%、英国では38.2%と、日本の19.1%とかなり差が付けられている状態です。もちろんコロナ下では東京で45%程度のテレワーク率だったそうですが、まだまだDXへの取り組みは完全ではないと言えます。

日本のDXは遅れている

DXの捉え方

 DXは単に、日々の業務をIT化すれば良い、というわけではなく経営課題として捉える必要があります。例えば「FAXを使っていたが、全てメールに切り替えた」というのは単なるIT化であり、DXではありません。
 DXは「内部のエコシステム」を変革することにあるので、自社ビジネスを抜本から見直し、デジタル化をしなければなりません。例えばコールセンターがあるような企業では、通常だと何十分も電話を待たされるようなケースがあると思いますが、これらを「AI音声」、「チャットボット」、「FAQ検索システムの刷新」など次世代の技術を用いて、コスト削減をしつつ、よりユーザービリティの高いサービスに変えていくことがDXとなります。

 そのため、DXは開発部署の単なる業務ではなく、経営と結びついた経営課題として、経営者が捉えなければDXを推進することは困難を極めます。

DXは経営課題!

DX推進における現状の課題

DXの課題

既存システムの課題

 DXを推進する時に最も課題としてあげられるのが、現状システムの課題です。いわゆるレガシーシステムがDX化を妨げる要因になることが多く、例えば「ドキュメントが全く整備されていない」、「レガシーシステムとデータ連携が困難」、「影響が大きすぎて、試験に時間がかかる」など、実際の現場ではDX化に伴いシステムを刷新しようとすると、上記のような課題が生じてしまいます。

 また、調査によると IT関連費用のうち、8割以上が既存システムの運用・保守に当てられているとされています。最近で想像しやすいのは、みずほ銀行のシステムでしょうか。総開発費4000億という莫大な金額を使って開発したものですが、未だにバグや障害が起き、それを守るためのIT人材がたくさんいることが想像できると思います。

 その他にも各企業で開発した独自のシステムが、永遠と保守・運用されているという状態で、このシステムを刷新できなければDX化が難しいとなると、DXを始めるためのハードルになっているのでしょう。

レガシーシステムの複雑さがDXを妨げる!

ユーザー企業の課題

 続いて、ユーザー企業側の課題です。まず最も重要な点が経営者自身が、DXに対して積極的な心構えを持つことが必要です。前項でも説明しましたが、DX化は経営課題そのものなので、1つの情報システム部門がどうこうする問題ではなく、組織全体の問題です。

 また実際に現場のシステムを刷新したり、組織を横断的に改革していく必要があるので、情報システム部門だけでなく事業部門とも積極的にコミュニケーションを取らなければならないため、プロジェクトオーナーがリーダーシップを持って勧めていくことが大切です。

 一方ユーザー企業の最も大きな課題として、IT人材不足があげられます。従来の開発はユーザー企業がベンダー企業に対して、システム開発を丸投げするような形で行われていることが多いため、システム開発を理解するユーザー企業の担当者が不足しているという状況です。
 エンジニアの比率を見てみると、米国では5:5の割合で技術者がユーザー企業とベンダー企業に分かれているのに対し、現状日本では3:7の割合で、多くの技術者はベンダー企業にいるとされています。
 そのためユーザー企業ではITエンジニアの育成・確保が急務となっています。

ユーザー企業のIT人材不足

ユーザー企業とベンダー企業の関係の課題

 前項でも説明したように、従来はユーザー企業が要件定義からベンダーに丸投げすることも少なくありませんでした。また、請負開発で行われることが多いため、自分たちで作るシステムをベンダーに決めてもらい、作ってもらったものをただ使っているという状態になっています。

 この状態を変えるために、アジャイル開発という手法が近年用いられていますが、そこで課題となるのが責任関係です。アジャイル開発の場合、開発期間中にエンドーユーザーのニーズに合わせて機能を変えていく手法を取るため、成果物が決められておらず準委任契約が一般的です。そのためユーザー企業自身が現行の仕様に対しての理解不足やITスキルの低さに伴う、ベンダーとの認識齟齬が生まれてしまっています。


 また、情報システム部門と事業部門、経営企画部門との十分な連携が行われず、必要とされる要件が明確化出来ていない状態で、開発を始めてしまい、結果的にユーザー企業が意図していないものをベンダー企業が作り上げてしまうといった課題があります。

DX推進をするには何をしていくべきか

DX推進

組織的な経営課題として認識

 まず最も重要な点として既に何度か述べさせていただきましたが、DX化をしないことによるリスクを認識すべきです。DX化をしないことで競争力の低下、コスト圧迫、サービスレベルの低下など様々な点で脅威があることを組織的に認識することが必要です。

DX専門組織の設置

 続いてDXを推進していくために、現状の情報システム部門は既存システムの運用・保守が続くため、DX化と並行すると上手く行かないケースが多いため、DX専門の部門や組織を設置すべきです。コミュニケーションコストは増えますが、専門的にDX化を推進していくことで、DX化の課題に対して積極的に取り組んでいけるはずです。

DX人材の育成

 最後にDX人材の育成です。ユーザー企業のITスキル不足を挙げましたが、実際にDX化を行っていくときは、様々な職種を用意することが推奨されており、プロデューサー、ビジネスデザイナー、アーキテクト、データサイエンティスト/AIエンジニア、UXデザイナー、エンジニア/プログラマなど、DXを進める上での段階でそれぞれが活躍できる職位を用意します。
 その上で、開発フェーズに従って、既存システムと業務フローを見直しながら、各位がDX化に対して取り組む必要があります。

 また、IT教育における投資も必要で、人材が不足している以上、外部から雇用するだけでなく既存業務を理解しているようなプロパー社員も積極的に育成していくことで、DX化の成功確率がより高まるでしょう。

まとめ

 本記事ではDX(デジタルトランスフォーメーション)とは何かについてから、現状抱えているDX化における課題、DXを推進していくときには何をしていくべきなのかを説明しました。
 時代の潮流が変わっていくに伴い、企業や個人が変化を受け入れて行かなければならない時代ですので、ぜひDX化について理解しておきましょう。

]]>
https://techgrowup.net/dx/feed/ 0
「未経験」から「ITエンジニア」へ、必要な能力とオススメの勉強方法 https://techgrowup.net/it-engineer/ https://techgrowup.net/it-engineer/?noamp=mobile#respond Sun, 09 May 2021 12:04:06 +0000 https://techgrowup.net/?p=433 はじめに

本記事ではITエンジニアになりたい方向けに、「ITエンジニアとは」、「エンジニアの仕事内容」、「必要な能力・スキル」、「勉強方法」などを紹介しています。

ITエンジニアとは

 ITエンジニアとはInformation Technologyの技術者たちの総称を指す職業です。多くの方がエンジニア=理系とイメージされる方多いですが、文系出身も3,4割近く働いています。ITエンジニアは主にコンピューターを使ってシステムを構築するのが主な仕事になりますが、実際に全員がプログラミングを駆使してプログラムを構築しているわけではなく、「要件をまとめる人」「設計をする人」「プログラムを書く人」「試験をする人」「システム運用をする人」などに分かれて仕事をしています。

システムの種類

 システム構築と言っても幅広く、多くのエンジニアは特定の領域のシステム構築ができるのみで、汎用的に多くのことが出来るわけではありません。例えばサーバーサイドエンジニアがモバイルアプリを作ることは少ないといった感じです。
 ここではどのような領域があるかいくつか紹介します。

【Webエンジニア】
 Webエンジニアは、WebサイトやWebアプリケーションなどの設計や開発、運用や保守を担当するエンジニアです。日頃みなさんがSafariやChromeなどからアクセスするWebサイトを構築している方たちです。実際にユーザーに目に見えるものを作るので、Webアプリとしての「検索機能」「決済機能」「投稿機能」のような機能開発だけでなく、「見やすさ」「分かりやすさ」「使いやすさ」など、ユーザーにとって良いものを考える必要があります。

【サーバーサイドエンジニア】
 サーバーサイドエンジニアは、サーバーの設計や開発、運用、保守などを担当するエンジニアです。Webエンジニアはユーザーの目に見える部分を担当することが多いですが、サーバーサイドエンジニアは、ユーザーに安定的に利用してもらうためにいる縁の下の力持ちのような存在すです。
 具体的にはWebエンジニアが検索機能を作る時に、サーバ側に検索システムを起き、Webサイトからの検索要求に従ってサーバーは結果を返します。このようなサーバがある時に、もしこのサーバが不具合で落ちてしまうと、ユーザーは検索機能を使えなくなってしまいますので、24時間365日安定して運用させることが必要になります。

【モバイルアプリエンジニア】
 モバイルアプリエンジニアは皆さんがお持ちのiPhoneやAndroidスマホの上で動作するアプリを設計、開発、保守、運用するエンジニアです。最近はアプリでSNSや銀行振込、チャット、ゲームなど、電話としての使われ方以外がかなり増えてきていると思います。モバイルアプリエンジニアはiOS(iphone),AndroidのOSを理解して、アプリを作り上げることが仕事になります。
 基本的には多くのアプリではWeb版のサイトと並行して運用されることが多いですが、Webを毎回開くよりもアプリを開くほうが簡単で、なおかつアプリの方が分かりやすいUI設計にできるので、Webエンジニアと同様にユーザーにとって使いやすいアプリを作ることが必要です。

【クラウドエンジニア】
 クラウドエンジニアは最近出てきた職種で、主にAWSやGCPといったクラウドサービスを活用してシステムを構築するエンジニアです。クラウドサービスを利用することでネットワーク構成やサーバを運用するためのインフラ構築を、より安く安定したものに作り上げることが可能です。一方ネットワーク、インフラ、各サービスの知識、アプリなど多くの知識を必要するため、ある程度エンジニアとしての素養も必要になってきます。
 大事なこととしては、クラウドサービスを利用することで、より早く低価格で安全なシステムを構築することを意識することが大切です。

その他にも「データベースエンジニア」「セールスエンジニア」「ITコンサルタント」など幅広いITエンジニアとしての業務がありますので、全てを網羅する必要はなくどれか一つを特化するのがおすすめです。

エンジニアとして1つの領域に特化することが大切!

ITエンジニアに必要な能力

ITスキル

 まず最も大事なものとしてITスキルです。これは言わずもがなですが、ITというと「プログラミング」をイメージされる方が多いですが、プログラミングも確かに重要ですが、「情報理論」「コンピュータの仕組み」「インターネットの仕組み」「OSの知識」「アルゴリズム」などの土台になっている知識をまずはつけると良いです。

 上記に加えて、ネットワーク、データーベース、プログラミング、セキュリティ、システム構築手法などワンラックアップした内容の基礎知識を蓄えましょう。全体的なシステム構築の基礎が理解できたら、専門的に1つの領域を極めるのがよいでしょう。

ITスキルの基礎をしっかり固めよう!

コミュニケーションスキル

 こちらは他の職業でも同じだと思いますので、既に兼ね備えている方は多くいるかも知れませんが、エンジニアと言っても家にこもってひたすらプログラムを書くわけではありません。もちろん1人で黙々と作業することが他業種よりは多いと思いますが、お客様の要望を確認したり、システムの仕様の確認、プロジェクトマネージャへ進捗報告など、一般的な仕事同様にコミュニケーションが多々発生します。

 エンジニアをしていて一番難しいのが、多くの一般の方はエンジニアの専門用語を知らないですし、常識的なスマホ知識でさえ知らないかもしれません。こうしたときに分かりやすく、また親身になって教えてあげたり交流を取って、プロジェクトを進める必要があるのもエンジニアとして大事なポイントになります。

エンジニアでもコミュニケーションは大事!

ヒアリング力

 ヒアリング力とは相手の要望を正確に聞き出す力のことです。具体的にはシステム構築をするときには多くの場合、お客様がいます。接客業をしたことがある方であれば、お客様に「ビール3つ!」や「袋ください」など言われたことがあると思います。システム開発も同様に、「こんなシステムほしいんだけど。。。」という要望が来ます。
 ここで難しいのが、システムは基本的に目に見えるものがありませんので、お客様は頭の中のイメージで要望してくるか文章だけで依頼してきます。また、専門的な知識を知らないため「うちの商品が売れやすいサイトを作りたいんだけど、、」みたいなアバウトな要望あります。
 こうしたときにエンジニアとしては、サイトを作るためにどんな事が必要で、何を作るべきなのかを考える必要があるのでお客様がやりたいことをヒアリングする必要があります。ヒアリングをきちんとしないと、作り終わった後にお客様から「イメージと違う」と言われかねませんのでご注意ください。

お客様の要望をしっかりヒアリングしよう!

説明能力

 説明能力はプログラマーだと必要なケースが限られてきますが、エンジニアとして働く場合にはお客様や上司、プロジェクトメンバーと適切にプロジェクトを進める上で必須の能力になります。前項のヒアリングでもお話しましたが、お客様は専門用語やシステムのことはよく分からないという方が多いです。また、上司でさえも現場を離れて長い方であれば分からないこともあるでしょう。
 そうした場合に、いま自らが作っているものの状態や問題点、仕組みなどを適切に説明し理解してもらうことが必要です。また、他のプロジェクトメンバーと一緒に進んでいくためにも、お互いに理解する必要があるので、状況などを適切に説明できる能力をつけましょう。
 ※基本的には場数を踏めば上手くなっていくとは思います。

プロジェクトを進めるために、周りの人に説明できる能力をつけよう!

マネジメント力

 こちらは全てのエンジニアに必要な項目ではないかもしれませんが、エンジニアとして数年も働くとエンジニアをマネジメントしていく力も必要になります。私もそうですが、かつて新人で働いていた頃は右も左も分からないようなエンジニアが来るわけですから、適切に指導し、管理をし、教えながらシステムを作っていくことが必要になります。
 また、さらに年次があがれば、プロジェクトリーダやプロジェクトマネージャーとして、システム構築のプロジェクト全体を見渡し、コスト、スケジュール、品質、戦略、管理など、マネジメントスキルが更に必要になっていきます。もし将来的にエンジニアとしてだけでなくマネージャーとしても働きたい方は、初めのうちから上司のマネジメントを見ておくと役に立つと思います。
 ※生涯プログラマーをやるんだ!という方は、あまり必要ないかもしれません。。。

将来的に新人やプロジェクトをマネジメントすることも意識しよう

英語力

 最後に英語力です。こちらは全エンジニアが持つべき必須項目だと言えます。といってもエンジニアがペラペラ英語を話す必要があるかというわけではなく(私もあまり話せません。。)、英語に対する抵抗と、英語を読むことができるようになればOKです。
 ITは基本的に日本は遅れていますので、先進的な情報は中国やアメリカなど海外からの情報が新しいです。また、プログラミング言語の多くが英語で書かれており、日本人だけで書くときも英語に訳して「sendMessage」など英語で記述します。
 なので実際に話せる必要はありませんが、基本的な中学生レベルの英語と、英語への抵抗、英語を読むという習慣をつけていきましょう。

ITは英語がメインなので、英語への抵抗をなくそう!

ITエンジニア向けのオススメ資格

 ここではITエンジニアになるために、もしくは既になっている方へオススメの資格を紹介します。時々資格なんていらない、という方も見かけますが、確かに資格そのものだけで実務がこなせるかというとそうではないことの方が多いです。
 一方、資格の多くが幅広い分野に対して体系的に整理されており、エンジニアの基礎から応用まで幅広いテーマを学べます。業務をしていると基本的には狭い領域の知識しか身につかないため、知識を点ではなく面で広げていくという意味では資格はかなりおすすめです。
 また、未経験の方からしてもまずは全体像を掴むことができるため、実際の業務をこなしながら体系的に学ぶことでより業務の理解度や汎用性を高めることが可能になります。

未経験向け

【ITパスポート】

【ITパスポート試験】情報処理推進機構

 ITパスポートは以下と定義されています。

iパスは、ITを利活用するすべての社会人・これから社会人となる学生が備えておくべき、ITに関する基礎的な知識が証明できる国家試験です。

引用 : https://www3.jitec.ipa.go.jp/JitesCbt/html/about/about.html

 ITエンジニアを目指す方だけでなくビジネスマンとして全業種の方が身につけておくべきものとなります。内容としてはストラテジ系、マネジメント系、テクノロジ系と分かれており、4択の問題で基礎的な内容がメインになります。

初級者向け

【基本情報処理技術者試験】

https://www.jitec.ipa.go.jp/1_11seido/fe.html

 基本情報処理技術者試験は、ITエンジニアの登竜門と言われる試験で、ITパスポートよりも難易度が高く設定されており、午前と午後試験の2つを突破する必要があります。午前試験では一般的な基礎知識がメインで問われ、午後ではプログラミングなどの実務的な内容も出てくるため、こちらはエンジニアになるために知識レベルとしては必須の資格となります。

中級者向け

【応用情報処理技術者試験】

https://www.jitec.ipa.go.jp/1_11seido/ap.html

 応用情報処理技術者試験は、基本情報処理技術者試験よりも更に難易度が上がっている試験で、ITエンジニアとしてワンランク上に上がるための試験と位置付けられています。基本的なテクノロジーの要素だけでなくマネジメントやストラテジの高度レベルの内容まで問われるため、これぐらいの知識レベルを持っているとエンジニアとして業務をこなせないと思われれることは少なくなります。

上級者向け

【高度情報処理系資格】

https://www.jitec.ipa.go.jp/1_11seido/seido_gaiyo.html

 高度情報系資格とはIPAという団体が出している資格類のことで、ネットワークスペシャリストやITストラテジストなど1つの分野を専門的に学ぶことがが出来る資格になります。例えば私は安全確保支援士という資格を保持していますが、この場合セキュリティの知識であればエンジニアとしてかなり知識を保有していると見られることが多いです。
 これらは専門性が高い範囲なので、どれか1つに絞って取得すると良いと思いますが、ITエンジニアのエキスパートやマネージャーとして上がっていくためには、このレベルの知識は必須と考えられます。

資格まとめ

 いくつか資格を紹介しましたが、IT業界は日々進化が早い業界で、多くの研究者やエンジニアが新しいアルゴリズムや機能を作っていきます。そのため上級者向けの資格を持っているとしても、日々の情報のキャッチアップや学びは必須です。また、上級者のさらに上に行くためには自ら論文を発表したり、新しい画期的な仕組みを作ったりすることで、更にレベルアップしていけると思いますので、資格を取ったら終わりではなく、常に学びを求めていきましょう。

 また、下記記事では職種別に20代で取っておきたい資格をまとめていますので、ぜひ見てみてください!

ITエンジニアは常に学んでいく姿勢が大切!

ITエンジニアになるための勉強方法

資格取得を目指す

 未経験で知識が乏しい状態だと、まず何から手を付けるべきかということがあると思います。このようなときはまずはITパスポートから資格の取得を目指してみましょう。先にプログラミングを始めるというもモチベーションとしてはありですが、基礎的なことは今後必ず必要になっていきますので、基礎から学びたいという方はまずは資格取得を目指しましょう。

実際に何かを作ってみる

 最もモチベーションが湧きやすく、学びの経験値としてつきやすいのが、実際に作りたいものを作ってみるということだと思います。例えばでサーバーをレンタルサーバーやAWSで立てて、HTML、CSS、Javascript、React、Node.js等で、HPやWebアプリをつくるということです。
 私も初めて学んだときは、ゲームが好きだったのでAndroidアプリのゲームを作ってみたのがきっかけでした。やはりインプットだけでなくアウトプット経験というのは、経験値としてとても有用です。今ではドットインストールProgateなど学べるサイトもありますので、それらを活用しながら自分の作りたいものを作ってみるのが良いです。
 もしAndroidを学んでみたいという方は、本サイトでも学ぶことが出来ますので見てみてください。

ページが見つかりませんでした - 404 NOT FOUND – | 【TechGrowUp】
エンジニアを強くする

エンジニアとして会社に入る

 こちらは最も実務経験が付きやすい方法です。未経験だと中々採用されるのが難しい点ではありますが、プロジェクト単位で動く経験、レビュー、先輩エンジニアのスキルを学べるなどメリットは大いにあります。もし就職することが可能なのであれば、積極的に業界に入っていくことが良いと思います。

まとめ

 今回は未経験からエンジニアになりたい方向けに、エンジニアの業務、学べる資格、勉強方法などを説明しました。私もエンジニアとして働き始めてから5,6年程度になりますが、まだまだ分からない領域や、足りてない知識やスキルを痛感することがありますので、日々研鑽していきましょう。
 もし何か質問や相談などあれば、お気軽にお問い合わせページからご相談頂ければと思います。

]]>
https://techgrowup.net/it-engineer/feed/ 0