実はエンジニアにとって重要な意味を持っているのです。してエンジニアに営業スキルが必要なのでしょうか?ひとつの仕事が新しい仕事を生む先日、ある老夫婦の話を聞きました。銀行の営業マンの話を楽しそうに話すのが印象的でした。減額できる可能性を指摘したところ住宅ローンの減額に成功したそうです。自分の子供たちに営業マンの銀行のローンなどを紹介して多くの契約にまで至ったそうです。自分たちのことを考えて行動してくれている。この姿勢が老夫婦が営業マンを気に入った理由でした。この営業マンの例ではユーザーに対する対応の仕方によって小さな定期預金だけの取引から、ローンなどの他の契約につながっています。「ひとつの仕事が新しい仕事を生む」...という特徴があるのです。エンジニアにも営業力は必要ひとつの仕事から別の仕事に繋がるケースは営業系の職種だけの話ではありません。中小SIerの場合は短期間の案件が非常に多いのが現状です。その案件が終わると次の案件があるとも限りませんので次の案件につながるようにユーザーに対して営業するケースもあります。開発案件を持ち帰って自社内で開発を行おうとするSIerは多いです。売上額が大きいのはもちろんですが...自社内であれば開発要員の計画を立てやすいですし新人教育の一環として新人を開発に参加させることもできます。その為に必要なのはユーザーとの信頼関係です。信頼関係がなければ案件を持ち帰らせて開発させてくれません。銀行マンの例のように顧客のためになる対応を心がけることが大切です。営業は目に見えない効果も生む営業力が必要なのはSIerだけではありません。自社で開発をしているエンジニアにも必要なスキルだといえます。対応に問題があるとそれだけの関係で終わってしまいます。あるのはアフターフォローでのトラブルです。今でもかなり多くのユーザーから聞きます。信頼関係を深めるアフターフォローが必要です。社内システム開発でも同じです。社内での信頼関係や部署間の連携を良くするなど目に見えない効果はたくさんあります。社内外を問わずシステムを利用する人はすべてユーザーなのです。ユーザーを大切なパートナーと考えよう基本的にビジネスはユーザーがいないと成立しないものです。コミュニケーションが発生します。どれだけ優れた技術があってもコミュニケーションの質が低ければ「今後も付き合ってゆきたいエンジニア」...とは思ってくれません。「営業」と考えてしまうから敬遠してしまうエンジニアもいるのも確かです。ユーザーのことを...「大切なパートナー」と考えることから始めましょう。あなたが開発したシステムを利用する人はあなたの大切なパートナーです。そのパートナーのために...・どれだけ質の良い対応ができるか?・相手の目線で考えることができるか?・どうすれば一緒に課題を解決できるか?...ということを心がけて接してみましょう。それだけであなたとパートナーとの信頼関係は今よりも大きく育まれることでしょう。松田PSパートナーの喜びは嬉しいものです。当校にとってのパートナーはこれからエンジニアになろうとするあなたです。あなたの一歩を万全のサポート体制で応援します。新宿本校にて、、、エンジニアとしてやってゆきたいならLinuxを学べばいい。2000年代に入るとIT業界ではそんな言葉が聞こえ始めました。それは今でも変わらない事実です。今なお世界のIT業界で必要とされるLinuxエンジニアの求人事情についてお伝えしましょう。私たちの身近なところで利用されています。私たちは知らない間にLinuxテクノロジーを使っているのです。Linuxは多くの企業が導入を進めている技術であり、Linux技術者の需要も高まっています。「Linux技術者の需要が高い!」...と言われています。「Linux技術者が圧倒的に不足している!」...ということになるのです。Linux技術者の需要は海外でも高いLinux技術者の需要の高さは日本だけでなく海外でも同じです。BEST100」...があります。しての今後の展望...など7つの項目に対して有力な職業をランキングしたものですが、ソフトウェアエンジニアが第3位にランクインされています。「LinuxなどのOSに特化したエンジニア」...という点です。単なるソフトウェアエンジニアではなく、Linuxスキルを持つエンジニアが有力とされています。求人状況については、アメリカの求人情報サイト「Dice.com」が行ったLinux技術者に対する求人調査結果があります。「Linux技術者の雇用は最優先事項」...と回答しています。前年の調査では70%であったことから毎年その需要が高まっているのが見られますね。「Linuxの知識が就転職の機会を与えてくれた」...と答えています。Linux技術者のほとんどが、Linuxを習得することによって新しいチャンスを手にしているのですね。ここでも日本と同じ問題があります。「Linux技術者を見つけるのは難しい」...と答えています。正しい専門知識を持つ技術者が不足しているのが現状です。日本でも同じ問題が起きています。過去2年間でLinuxを導入した企業は75%以上にのぼり、Linux技術者の採用を強化する企業が増えています。ところがアメリカと同じく肝心のLinux技術者の数が不足しているのです。ITエンジニアを目指す方にとって、ここにチャンスがあります。企業が求めているのは正しい専門知識を持つ技術者です。「Linux技術者認定資格(LPIC)」...があります。世界中で50万人が受験しておりLinuxスキルを保障するグローバルスタンダートです。このLPICを取得することで就転職に圧倒的に有利になることは間違いありません。Associate)」...を取得することをおすすめします。ネットワークエンジニアとしてのキャリアが確実に広がることでしょう。Linux技術者が求められる今、Linuxスキルを習得することはチャンスに繋がります。エンジニアを目指しているのであれば、Linuxの習得をオススメします。新宿本校にて、、、ほとんどのプログラムで必ず使われるアルゴリズムがあります。それは「変数と配列」です。理解している人は読み飛ばしましょう。そもそも、変数と配列って何?...というところから話してゆきましょう。変数は中学生の時に習っています変数というのはみなさん中学生の数学で習っています。10そう、方程式ですね。この「x」と言うのがアルゴリズムで言うところの変数にあたります。8変数xという箱に8という値が入っていると考えるとわかりやすいでしょう。変数xという箱の中身は必ず数字になります。実際のプログラムでは数字だけでなく、いろいろなデータを扱わなければいけません。いろいろなデータの形式を「データ型」と呼び、それぞれのデータ型にあった変数(箱)があります。FALSE)このようなデータ型を使い分けた変数を使って、プログラムは動いているのです。ややこしいので、ここまでの話をまとめておきましょう。・変数はデータを入れる箱のこと。・変数には整数や文字列など、さまざまな「データ型」がある。ここではこれだけ覚えておいてください。配列は整列された変数の箱それではもうひとつの配列について説明してゆきましょう。変数の場合は、1つの変数につき1つのデータしか入りません。8この場合はxという箱に既に8という値が入っている状態です。10...として別の値を入れてしまうと、8という値は消えてなくなってしまいます。多くのデータを扱う必要がある時に登場するのが配列です。変数は値を入れる箱でしたが配列は変数の箱を整理して並べた状態をイメージしてください。[4]のカッコの中の4という数字は...配列Aには変数の箱が4個ありますよという意味です。400...というように、1つの配列に複数のデータを入れることができます。縦横に箱を並べた配列もあります。配列には変数の箱の並べ方によっていろんなデータの整理方法があると考えてください。配列についてもまとめておきましょう。・配列は変数という箱を整理して並べたもの。・配列の箱は番号で管理されている。・配列には横整列、縦横整列などの整理方法がある。変数や配列はプログラムを効率よく書くのに必要なものです。最後にそれぞれの変数を足して画面に表示する以下のようなプログラムがあるとします。変数C)ここで、それぞれの変数に足している100という値が間違っていることが発覚しました。200という値が正しい値だった!という場合、100と書かれている場所すべてを修正しなければなりません。この場合は1行目~3行目に修正が必要ですね。100という数字を最初から変数として持っていれば修正箇所は1箇所で済みます。200...と1行目だけを修正すれば良い訳です。変数を100個も用意しなければいけません。配列A[100]...このように1行で済みます。変数や配列はプログラムの余分な記述を減らしてくれます。後からプログラム修正が必要になった時、プログラムを解析しやすくする効果もあるのです。誰が見てもわかりやすいプログラミングを!変数と配列について初歩的な知識をお伝えしましたが...これらはプログラムを書くにあたって大切なことです。データはできるだけ変数や配列などを使ってプログラムを書くという事を覚えておいてください。後から修正する時に内容がわかりにくくなる場合もあります。プログラムを作る人は1人だけかも知れません。そのプログラムを修正するのは作った本人であるとは限らないのです。修正しやすいプログラムを作ること。修正後のバグ発生防止にもつながるのです。松田PSあるプログラマーから聞いた話ですが...変数を使わずに数値や文字をプログラムに直接書くプログラマーは今でもけっこう多いそうです。誰が読んでもわかるプログラムを心がけましょう。新宿本校にて、、、クラウドの利用者が増える一方でデータセンターを活用する企業も増えています。データセンターという言葉は誰でも一度は聞いたことがあると思いますが...このデータセンターとは一体何をするところなのでしょうか。今回はデータセンターについてお話ししましょう。データセンターってどんなところ?データセンターとはサーバーやネットワークといった機器を設置・運用する施設のことです。通信回線や電源などが提供されます。大きく分けて以下の7種類になります。機器を設置するための土地を提供します。自然災害や盗難などに備えた安全性の高い建物を提供します。(3)ファシリティ(設備)、コネクティビティ(通信)サーバーを設置するラックや電力設備、インターネットなどの通信回線などを提供します。(4)ハードウェアサーバーなどのハードウェアを提供します。(5)OS、ソフトウェアLinuxなどのOSやソフトウェアを提供します。(6)ミドルウェア/Webサービスなどに必要なソフトやデータベースなどのミドルウェアなどを提供します。(7)アプリケーション実際に使用するアプリケーションを提供します。「インターネットデータセンター(iDC)」...とも呼ばれています。使う人が管理・運用するかが分かれます。データセンターで提供しているサービスとは?それでは、データセンターで提供されているサービスをご紹介しましょう。安全性の高いデータセンターに預けますが、サーバーの設定や運用、管理は自社で行いたい場合に最適なサービスです。利用者はサーバーの設置場所や電源などハード面に関する問題を解決することができ、サーバーにリモート接続することで自由にサーバーをカスタマイズできます。運用や管理などもデータセンターに任せるサービスです。運用・管理のコストも削減することができます。■ホスティングサービスデータセンターに設置されたサーバーやネットワーク機器を購入することなく利用したい場合に最適なサービスです。代表的なものとして、レンタルサーバーやクラウドなどがあげられますね。仮想的に作られたサーバーを利用することを共有サーバーサービスと言います。■バックアップサービス重要なファイルをデータセンターにバックアップできるサービスです。増え続けるバックアップファイルは多くのハードディスク容量を必要としますが...バックアップサービスを利用すれば利用者はハードディスクを気にすることなく、バックアップすることができます。ハウジングやホスティングなどと併用されることが多いですが、バックアップサービスだけを利用することもできます。データセンターが増えている訳とは?データセンターが増えている背景にはさまざまな理由があるのですが、そのうちのひとつに企業が抱えている「ある問題」があります。それは...「事業継続性(BCP)」...という問題です。自然災害などが発生した時でも事業を中断することなく行えるようにすることで...仮に事業が中断したとても、すぐに復旧できるように日頃から備えておくことです。早めに事業を再開することができるのです。積極的にデータセンターを利用する企業が増えています。データセンターの普及はチャンス!IT業界ではデータセンターの普及に伴って、インフラ系スキルを持ったエンジニアを求めています。ニーズの割にできる方が少なく、どの企業でも常に求めています。(本当です)ハードウェアやネットワークなど、インフラ系エンジニアを目指す方にはチャンスです。自社開発であってもクラウドを利用して開発を進める企業もあり、どのようなエンジニアでもデータセンターに接する機会はあります。提供するサービスなどといった知識を知っておく価値はあると言えるでしょう。松田PS多くのデータセンターでは、サーバーOSにLinuxが採用されています。これからのクラウド時代、Linuxはエンジニアにとってなくてはならないスキルなのです。新宿本校にて、、、システムの開発中やリリース後に何らかのトラブルが起きることはあります。早めに問題を修正するのが重要なポイントです。トラブルの原因を調査して解決することをトラブルシューティングと言います。今回はトラブルシューティング方法についてお伝えしましょう。作った通りにはきちんと動いてくれるものです。作った通りに動くということはトラブルの原因は必ずどこかにあるのです。プログラムの例で言えばバグの種類は大まかに分けて2種類あります。特定の処理ができなくなったり最悪の場合はシステム全体が止まってしまいます。実はこちらの方がトラブルとしては怖いのです。請求書の金額やデータベースの登録内容が間違ってしまいます。このような場合はエラーが出ないので、バグに気付くのが遅くなってしまうのです。プログラムでもサーバー構築でも、テストをしっかりと行うことが大切ですが...それでも起きてしまったトラブルは、どうやって解決してゆくのでしょうか?トラブルシューティングってどうやるの?プログラムの場合は、エラーが発生している場合はエラーメッセージやログファイルを見ます。これらには、どこでどのような原因でエラーが発生したのかが詳しく記録されており、その情報をもとにエラーの原因を解析するのが基本です。エラーの発生場所とエラーの原因を生み出している場所が必ず同じという訳ではありません。エラーが発生するもっと前の処理でエラーの原因を作ってしまっている場合もあります。その時に行うのが「ステップ実行」という開発ツールの機能で、プログラムを1行ずつ実行させて、データの内容や処理結果を確認しながら実行できます。エラーが発生しない種類のバグだと、ステップ実行で確認しないと原因がつかめません。基本的にはログファイルの解析から始まります。...Webサーバーがうまく動かない!メールを送っても送信されていない!...などといった場合、Webやメールサービスのログファイルを確認します。プログラムの場合と同じで、ログファイルにエラー内容が書かれていますのでそこから原因を調査してゆくのが基本です。サーバーの場合は物理的なトラブルが原因となる場合もあります。物理的な原因も含めて調査しなければいけません。問題がない...一見すると原因不明のトラブルが発生する場合もあります。プログラムの場合だとAさんのPCだと問題なく動くのですが、BさんのPCだと計算結果が違うといったケースですね。正しいものを使っているかどうか調べましょう。バージョンが違っていると動きが変わってくるケースもありえます。他にも調査ポイントはありますが、それでも原因不明の場合はベンダーにサポートを依頼して原因を究明しましょう。原因がわかるまでに時間がかかります。早急にトラブルを解決しなければいけません。代わりのサーバーを用意するなどの対策が必要です。エンジニアの価値を高めるトラブルシューティングスキルバグやエラーの対処方法はエンジニアが習得しておきたいスキルのひとつ。トラブルシューティングのスキルが高いのと低いのでは、エンジニアとしての価値が格段に変わってきます。発生するだけで損失を与えてしまっているのです。損失を最小限に抑え、トラブルをできるだけ早く解決して通常の業務を進めてもらう...それが生産性の向上に繋がるのです。松田PSどんな機械でも使っているとあちこち痛んできます。システムでもそれは同じこと。万一の時は素早く対処できる方がいいですし、ユーザーの信頼も失わずに済みます。新宿本校にて、、、これまで、ウォーターフォールモデル開発(以下「WF」)とアジャイル開発(以下「アジャイル」)についてご紹介しました。それぞれに特徴はありますがではどのような点が異なっているのでしょうか?今回はWFのアジャイルの違いについて説明しましょう。最近ではWFとアジャイルそれぞれのメリットを活かせる...「ハイブリッド型開発」...という開発手法も注目されています。ハイブリッド型とはどのような開発手法なのでしょうか?ウォーターフォールとアジャイルの違いWFとアジャイルの違いについて表にまとめました。1.開発文化WFはプロジェクトの制御や命令系統を重視しますがアジャイルはプロジェクトチームの協力を重視します。組織的な統制を重視するのがWFであり協業による自由な結合を重視するのがアジャイルです。開発計画を立てやすくプロジェクト管理が行いやすい。対してアジャイルは柔軟な変化に対応すべく案件や規模に応じての管理を行うため、管理方法には工夫が必要です。3.仕様変更WFは基本的に仕様変更しないことが前提。変更が発生すると後工程に大きな影響を与えますが、アジャイルは柔軟な仕様変更にも対応できるような手法です。4.ドキュメントWFは工程別に成果物としてドキュメントの作成が必須要件になっています。対してアジャイルでは不必要なドキュメントは極力作りません。「アジャイルではドキュメントを全く作らない」という誤解を持っている方もいるのですが実際には開発において最低限必要なドキュメントは作成します。いうより、きちんとしたアジャイル開発では、ドキュメントは必須です。開発費用の支払はユーザー承認のタイミングで行われる事が多いですが、WFはドキュメント等の成果物をもって承認を受けます。対してアジャイルでは実際に動作するアプリケーションをもって承認を受けます。6.プログラムWFでは要件定義~詳細設計の上流工程で設計された全機能を一気にプログラミングします。アジャイルではあらかじめ優先順位で定められた機能を順番にプログラミングします。小規模な開発案件の場合は一気にプログラミングを行うケースもあります。7.リリースWFでは原則的に全機能を一度にリリースします。リリース計画によってはサブシステム単位にリリースするケースも。アジャイルではイテレーション毎にリリースを行い、ユーザーからのフィードバックを受け、次のイテレーションに移ります。8.開発規模WFは計画、管理のしやすさや指揮系統が重視されることから大規模開発に向いています。アジャイルは小規模開発向きですが最近では管理方法なども工夫されつつあり大規模なシステム開発にも採用される傾向にあります。見える開発、見えない開発WFとアジャイルの違いをまとめましたがもうひとつ大きな違いとして...「ユーザーから見える開発・見えない開発」...という特徴があります。WFでは要件定義や基本設計、そして総合テストやユーザーテストなど上流工程と下流工程においては開発の動きが見えやすいですが...詳細設計や製造、単体テストなど開発チームが主体となってしまうフェーズではどのような開発を行っているのかユーザーからは見えにくいのです。開発中でもどのような開発を行っているのかが見えやすい。製造などの中流工程になるとユーザーによっては...「ちゃんと開発は進んでいるのだろうか?」...といった不安を抱くケースも。開発やテスト内容が見えないというのは変わりありません。ユーザーは後から成果物で開発結果やテスト結果を知るのみです。アジャイルの方がユーザーにとって安心かというと、そうでもありません。他機能との整合性が取れなくなったりするケースも。総合テストなど、他機能と連携したテストを行いにくいという特徴も。このような理由により、アジャイルは小規模開発向きと言われているのです。それぞれのメリットを最大限に発揮するハイブリッド型開発とは?WFは上流工程と下流工程、アジャイルは中流工程における変化に強い。最近では、それぞれのメリットを活かした手法として...「ハイブリッド型開発」...という開発手法があります。これは要件定義や基本設計、総合テストなどWFが得意とする上流工程や下流工程はWFで行い...詳細設計や製造、単体テストなど、アジャイルが得意とする中流工程はアジャイルで開発するというもの。ユーザーフィードバック...<(3)は必要に応じてイテレートを行う>...(4)結合テスト(5)総合テスト・ユーザーテスト(6)リリース...といった流れで開発が進みます。弱いハイブリッド型においてはこのようなWFとアジャイルのデメリットをカバーし、それぞれのメリットを活かした開発を行えるのが特徴です。企業におけるビジネススピードは加速しており、システム開発側もそのスピードに対応すべく、さまざまな開発手法が検討されています。ハイブリッド型もそのような風潮から生まれた手法のひとつであり、アジャイル体制を構築しにくいと言われるSIerでも注目されています。WFが良い、アジャイルが良い...というように開発手法にばかり目が行ってしまうのも問題です。開発の進め方についてはユーザーに提案し、きちんと説明することが大切。不透明な部分ができるだけないように進めることも重要です。内部のエンジニアの総意を汲み取って決めるべきでしょう。アジャイルはひとりが理解していないと、その時点で崩壊しがちです。・スピード...などといった...「トータル的な品質」であるという事を忘れないでください。松田PSどの業界でもそうですがユーザーに提供するのはトータル的な品質です。品物が良くても売り手の対応が良くなければ、それはユーザーにご提供するサービスとして品質が低いと言わざるを得ません。『デスマーチ』という言葉は知っていますか?今回はデスマーチについて話をしましょう。IT業界だけではない社会問題化しているデスマーチ「デスマーチ」というのはアメリカのプログラマーが提唱したプロジェクトマネジメントに問題が発生している状態。日本では略して「デスマ」とも言われています。進んでも進んでも解決しない...つまり、どれだけ開発を行ってもなかなかシステムが完成しない状況を意味します。具体的に言えば、以下の様な状況に陥っています。進まないことが問題でしょうか。自らの意思がないことも。