2020年4月17日金曜日

SESのメリット・デメリット


こんにちは。

今日は、SESのメリット・デメリットについて書いてみます。

私は、プログラマーとして社会に出てからずっと派遣でお客様の事務所に常駐して開発を行っていました。

当時は、特定派遣でしたが今はもうないですね。

今は、SES(システム・エンジニアリング・サービス)としてお客様先に常駐して開発するスタイルになっています。

SESの契約形態は、準委任契約になります。

私も、最近までSESでお客様先に常駐していました。

経験年数でいうと、10年以上自分の会社ではなく、お客様先にいたことになります。

もちろん、同じお客様ではないですけど、自分が勤める会社の中で開発するという経験の方がトータルでは少ないです。

SESの経験は十分にあるので、そのメリットやデメリットは十分に理解しているつもりです。

これから、プログラマーとして働きたいと考えている方や就職活動中の方には、SESは選択肢の一つになるとなる業務でもあると思います。

なぜかと言うと、中小のシステム企業は、ほとんどがSES業務を取り入れているからです。

これから、プログラマーを目指すのでしたら、以下の記事でIT業界について理解を深めてからの方がいいかもしれません。


前置きが長くなってしまったので、早速説明していきますね。

デメリット

「いきなりデメリットかよ」と言う声も聞こえてきそうですが、実際に長くSESでお客様先へ常駐しているプログラマーに聞くと、デメリットしか聞こえてきません。

なので、先によく聞かれるデメリットを説明しておきます。

結論を言うと以下の3点です。
  1. 技術力が偏る
  2. 自分のポートフォリオとして公開できない
  3. 契約更新が近づくと不安
この他にもデメリットは聞かれるのですが、デメリットとしてのよく聞くのはこの3点です。

1. 技術力が偏る

まず、長期でお客様先に常駐すると、その企業の開発手法はできるが、他では通用しないようになります。

よく使われる開発手法は、ウォータフォールモデルとアジャイル開発です。

以下の記事でそれぞれの詳細を書いてますので、読んでみてください。



企業は、上の開発手法をベースに、いろいろと改善を繰り返し、独自の開発手法を持っています。

そのため、SESとして長期で同じ企業に常駐すると、その企業の独自の開発手法に慣れてしまい、他の開発手法での開発が難しくなったりします。

特に、ベースとなる上の2つの手法が異なると、プログラマーとしては、その開発手法に慣れるのに苦労するでしょう。

と言うか、私は両方とも経験してきたので、ベースとなる開発手法が変わった時の苦労はよく分かります。

技術力が偏ると言うと聞こえが悪いですが、その企業での開発には精通していることになるので、その企業での開発に必要なプログラマーになっていると言うことなので、そんなにデメリットではないと私は思っています。

ただ、SESのデメリットとしては、一般的によく聞かれることです。

2. 自分のポートフォリオとして公開できない

SESで常駐する企業は、大手のシステム企業、もしくは、大手のシステム開発を請け負っている企業が多いです。

そうなると、業務につく際、守秘義務契約を結ぶ必要があります。

契約内容には、システムに関する一切の口外が禁止されています。

この契約は、契約終了後も有効になるように記載されていることが多いため、自分のポートフォリオとして公開できないのです。

大きなシステムの開発や有名なシステムの開発に携わったとしても、そのことを公開できないのです。

できるのは、そこで培ったプログラム言語能力のみとなります。

自分のポートフォリオに公開することができないのですから、「そのプログラム言語使えますよ」としか言えないのです。

守秘義務契約を結んでシステムの話を口外すると、大変なことになりますので注意してくださいね。

数年に1度程度ですが、守秘義務違反で問題になるケースを耳にしますので、これからプログラマーになる人は、しっかり注意してください。

3. 契約更新が近づくと不安

同じお客様先に長期で常駐していると、お客様とも仲良くなり、契約満了で次のお客様先へ移動となるのが不安になる人がいます。

それに、SESでシステム開発をした場合、納品までそのシステムに関われずに移動となることが多いです。

ガッツリそのシステムの開発に携わると、システムに情がわくこともあります。

「えっ!」って引かれるかもしれませんが、自分で作り上げたシステムは可愛いのですよ。

そのシステムが社会へ投入されるとことを見れないと言うのも、不安になる原因の場合があります。

私がSESで常駐していた頃も、契約更新の時期になると不安になってました。

特に、プロジェクトの工程の境目の時期は、次の工程がどの程度の規模かで人を入れ替えるお客様が多いので不安になってましたね。

ブラックな企業だど、契約更新の数日前に継続が決まったり、契約更新を忘れられたりします。

通常は、1ヶ月前までに継続するのか、移動するのか決まります。

契約更新が数日前にならないと分からないような企業は、ブラックな企業と思って問題ないと思いますので、ちょっと考えた方がいいかもしれませんね。

メリット

実は、SESでお客様先へ常駐してシステム開発することには、結構メリットがあります。

私が、ずっとお客様先で常駐してシステム開発していたのも、メリットが大きいと思うところがあったからです。

先に結論を言ってしまうと、以下の3点になります。
  1. 経験を積める
  2. いろんな人に会える
  3. いろんなシステム開発に携わることができる
この3点は、私が長年お客様先に常駐してシステム開発をやっていて、メリットだと思ったうちのトップ3です。

1. 経験を積める

SESの1番のメリットは、これでしょう。

プログラマーの経験が浅いうちは、いくらプログラミングができると言っても、経験が浅かったらあまり仕事をもらえません。

まずは、経験を積むことです。

自分が勤める会社で請負開発をやっているのなら、そこで経験を積めると思います。

しかし、請負開発って結構リスクがあるんですよね。

システムの品質の問題とか、セキュリティの問題とか、考えないといけないことがあるので、それなりに経験を積んだ人がいないと難しいと思います。

それに比べて、SESでお客様先へ常駐してシステム開発していると、その企業には、開発するシステムに精通した人がたくさんいます。

つまり、自分が経験の浅いプログラマーであったとしても、聞ける人がたくさんいるんです。

経験者がたくさんいるって安心しますよね。

そこで、経験者の知識を吸収しながら経験を積むと言うことは、経験の浅いプログラマーには格好の環境だと思います。

SESで常駐し3年もシステム開発を行っていると、結構な経験を積むことができます。

経験を積むと、自分のできる範囲が広がるので、だんだんと面白くなってきます。

ただし、長期で同じ企業に常駐していると、次第に上に書いたようなデメリットが目についてくるので、ある程度できる範囲が広がったところで常駐先の企業を移動することをお勧めします。

2. いろんな人に会える

SESでプログラマーを入れている企業は、ある程度の規模を持った企業です。

そのため、同じようにSESで集められたプログラマーがたくさんいます。

経験を積んだ人や、経験が浅い人、それに、面白い経験を持った人などがたくさんいます。

そういう人たちと会えると言うのは、SESのメリットの一つだと私は思っています。

特に、いろんな経験を積んだ人の話を聞くのは面白いですよ。

いろんな人たちに囲まれて作業していると、開発経験だけでなく、人生経験も学べたりします。

私の場合だと、フリーランスのプログラマーに多く会いました。

フリーランス のプログラマーには、結構苦労している人や、月に結構な額を稼いでいる人もいました。

私は、大手の企業へ常駐していたので、たまに有名な方とばったりと言う経験もありました。

いろんな人と会えると言うことは、いろんな意味で刺激になるんですよね。

将来、どんなプログラマーになりたいとか、どんな人生を送りたいとか、結構参考になることが多いです。

また、いろんな人と知り合いになっておくと、仕事がその方を通じて入ってくることもあるので大事にした方がいいと思います。

3. いろんなシステム開発に携わることができる

長期で同じお客様先に常駐していると、上に書いたようなデメリットが顕在化してきます。

そのため、私は、長くても1年程度で常駐先の企業を移動するようにしていました。

でも、常駐する企業によっては、開発のスパンが短くて、いろんな開発に携わることができます。

そう言う場合は、少し長くいてもいいかもしれません。

私も、開発スパンが半年とか3ヶ月とか回転の早い開発を行っている企業にいたことがあるのですが、その企業には5年ほどお世話になりました。

でも、やはり、長期で同じ企業に常駐するのはお勧めできません。

開発手法は同じなので、やはり技術力に偏りが出てしまいます。

経験を積んでいろんなシステム開発をしていくと、たまに、すごく大きなシステム開発に携わることができる時があります。

詳しくは書けないのですが、大手企業の有名なシステムの開発とか、みんなが普通に使っているアレの開発とかですね。

有名なシステムの開発に携わって、そのシステムを使っている人を見たりすると、結構嬉しかったりします。

自分が作ったこの機能が、今目の前の人が使ってるとかなると、微笑んでしまっていたりします。

つまり、SESでお客様先へ常駐してシステム開発をしていると、いろんな経験ができるのです。

まとめ

SES業務には、確かにデメリットがあります。

でもそれは、長期で同じ企業に常駐した場合の話です。

経験の浅いプログラマーにとっては、経験を積めて、いろんなシステム開発で、経験を積んだ人とコミュニケーションをとることができるのです。

そう考えると、デメリットだけに目を向け、SES業務を避けるのではなく、ある程度の経験を積む間、SESで経験を積むことは、今度、プログラマーとして働くための十分な経験になると私は思っています。

これからプログラマーを目指す人や現在就活中の人は、中小のシステム企業で、あえてSESで常駐することを考えてもいいと私は思います。

現在は、転職をすることは、普通にあることです。

SESで十分に経験を積んだ後で、転職をして大手のシステム企業へ入ることも選択肢としてもいいと私は思います。

最終的に自分の人生を選択するのは、あなた次第です。

このブログがあなたの選択の参考に慣ればと思っています。

では、今日はこの辺で。










2020年4月10日金曜日

プログラマーに向いている人は?


こんにちは。

数年前、新卒で入社した新人プログラマーに「私はプログラマーに向いてないみたいです。」と相談されたことがあります。

私も、プログラマーとして働き出したばかりの頃は、「自分にはプログラマーという仕事は向いてないな」と思いながま働いていました。

そして、気づけば約20年プログラマーとして働いています。

約20年働いていても、たまに、「自分には向いていない」と思うことがあります。

では、プログラマーに向いている人は、どういう人なのでしょうか。

結論を言ってしまうと以下になります。
  • PCを使うことが好きな人
  • 物作りが好きな人
  • 諦めないで続けられる人
おそらく、この3つを持っている人が、プログラマーに向いているのではないかと私は思います。

では、以下でそれぞれについて詳細に説明しますね。

PCを使うのが好きな人

私が初めてPCを使ったのは、大学に入ってからです。

もう20数年前のことです。

当時は、windows95で大学内にある情報室でWebサイトを見るのが大好きでした。

時間があれば、情報室に行ってWebサイトを見ていました。

今では、生まれた時には、すでに家にPCがあって、小さい頃からPCを触ってきた世代なんですよね。

人によっては、小さいことからPCでゲームをしていて、ゲームのチャットで仲間と話すことでタイピング力を磨いてきた人もいます。

つまり、最近の新人でPCを使うのが苦手という人は少なかったりします。

もう少しすると、PCを使うのは苦手だけど、携帯やタブレットなら抵抗がないという世代が入ってくるようになるのでしょうね。

ただ、プログラマーとして働くとなると、携帯やタブレットではなく、PCが好きでないと結構辛い作業になってしまうかもしれません。

実際の作業は、PCを使ってプログラミングする作業なので、キーボードに慣れていないとプログラミングするだけでストレスになるかもしれません。

物作りが好きな人

次に必要となるのは、物作りが好きかどうかではないでしょうか。

プログラマーの仕事は、結局、今ないシステムを開発する作業となるので、物作りが好きな人が向いているでしょう。

ただ、プログラミングができないと向いていないのかというと、そうは言えません。

結論を言ってしまえば、プラモデルを作るのが好きな人でもいいのです。

私も、小さい頃から何かを作るという作業は好きでした。

父親が大工だったので、作業場で端材をもらって釘を打ったり、ノコで切ったりしていました。

また、ミニ四駆を作ったり改造したりするのも好きでしたね。

そのような環境で育ってきたので、そもそも物作りが私に取っては楽しいものだったのです。

プログラマーが物作りを好きでないといけない理由は、システムを作るだけでなく、その先を考えられるかということにつながると思います。

物作りが好きな人は、作ったものでどう遊ぶかまで考えて作ります。

同じように、プログラマーも、システムを作りながら、そのシステムをどう使うと面白いか、どれくらいの速度で動作したら面白いか、といったことを考える必要があります。

プログラマーの中には、システムを作ることよりも、既にあるシステムの使い方を考える方が面白くなって、営業へ転職していく人もいます。

まあ、それも分からないわけではありません。

自分でプログラミングして作るよりも、既にあるシステムを組み合わせて新しいものを作って売った方が利益にもなりますし、システムの改修も自分でする必要がないですもんね。

諦めないで続けられる人

ここまで、いろいろと書いてきましたが、結局は、諦めないで続けられる人がプログラマーには向いていると思います。

これは、プログラマーに限らずどの業界でも同じですよね。

私も、冒頭で書いたように、今だに「自分には向いていない」と思ってしまうのですが、結局は、諦めないで続けてきたというのが、今の自分がある理由だと思っています。

向いてる、向いてないというのは置いといて、諦めないで続けられる人ってどの業界でも一人前になっていくものです。

なので、向いてる、向いてないを考える時間があるくらいなら、目の前の仕事をどんどんこなしていきましょう。

目の前の仕事に集中していると、時間はすぐに過ぎていきます。

気づけば、経験が積み上げられて、いつの間にかプロになっているものです。

諦めて辞めてしまうことはいつでもできます。

いつでもできる事は、あとでもいいじゃないですか。

まずは、今積み上げられる経験を積み上げていけば、転職したとしてもやっていけると思うのです。

逆に、経験を積み上げる前に辞めてしまう人は、どの業界でもやっていけないのではないでしょうか。

そういう人って、人から仕事が与えられるのを待っている人が多いんですよね。

本気でプログラマーになりたいと思っている人は、仕事を与えてもらうのではなくて、自分から取りに行ってるんですよね。

まとめ

上でも書いたように、プログラマーに向いている人は、諦めないで続けられる人なのです。

諦めないで続けていれば、知らないうちに一人前になっているのです。

ちなみに、私に相談してきた人は、今でもプログラマーとして働いています。

今では、プログラマーとして独り立ちして、現場でバリバリ働いています。

では、今日はこの辺で。

2020年4月8日水曜日

プログラマーになるのに資格を取る必要はない


こんにちは。

よく後輩などに、「仕事できるようになるには、何か資格を取った方がいいですか?」みたいな質問をされます。

このような質問をしてくる後輩は、大体、ある程度のプログラミングができるけど、独り立ちにはまだ早い人が多いです。

たまに、ベテランの人でもこのような質問をしてくる人がいますが。。。

ということで、今日は、プログラマーに資格は必要かについて書いてみようと思います。

結論から言うと以下になります。
  • 資格を取る必要はない
  • 机上で勉強するくらいなら毎日PCを扱いましょう
  • どんどん挑戦すると独り立ちも早くなります
と言うことになります。

ベテランから「資格を取った方がいいですか?」なんて聞かれても、正直「知りません」と言う感じなんですけれど、後輩とかだと上の3つをよく説明しています。

資格を取る必要はない

プログラマーとして仕事をするのに資格は必要ありません。

就職や転職するときに、面接で「資格何か持ってますか?」と聞かれますが、これって資格を持っている人がいると営業しやすいからなんですよね。

「うちには、こういう資格を持っている人がいますよ」って言うことで、資格を持ってない人と持っている人では、営業の仕方が違ってくるんですよね。

それに、会社のアピールにもなるんですよ。

IT企業のサイトとかを見てみると、「この資格持っている人が何名」とか書かれていて、有名な資格だと結構アピールにもなるんです。

でも、実際の作業で資格の勉強で得た知識が使えるかというと、ほとんど使えないんですよ。

特にSES(システム・エンジニアリング・サービス)とかで、客先に常駐して作業するプログラマーとかは、マニュアルに沿った開発をすることが多いので、資格がなくても作業を進められるんですよね。

そういう企業じゃないとSESで人を入れて開発なんてできないですもんね。

社内SEとかで仕事する場合も、現状動いているシステムに対して改修をしたり、機能を追加したりという作業が多いので、そうなると全く資格で勉強した知識を使わないというようなことになります。

じゃあ、全く意味がないかというと、そうとも言い切れないです。

システムの基礎については、机上で勉強しておく必要があるので、資格を取る勉強というより、必要な知識を身に付ける勉強をすればいいと思います。

資格まで取ろうと頑張ってしまうと、必要のない知識も頭に入れないといけないので、正直、時間と労力の無駄遣いになってしまいます。

机上で勉強するくらいなら毎日PCを扱いましょう

本を読んでもプログラマーとしての資質にはなりません。

それよりも、毎日PCを扱いましょう。

「プログラマーとして毎日仕事でPC扱っているから、大丈夫でしょう」と思うかもしれませんが、ここでPCを扱うというのは、日常生活でということです。

仕事とは別にプログラミングするのもいいですし、ブログを書くのでもいいです。

つまり、仕事とは別にプライベートでもPCを扱いましょう。

今では、PCさえあれば、動画も音楽も聞けますし、情報も収集することができます。

常にPCを扱っていると、実際、仕事でプログラミングする時に、情報の収集とかでも断然差が出ます。

常にPCを扱っていると、自分が使っているソフトウェアにどういう機能があるのかも分かってきます。

一般的な機能というのは、どのソフトウェアも統一されていたりします。

そのため、実際にソフトウェアを作るときにも、「こういう機能は普通についてるよね」と組み込むことができます。

実際、ソフトウェアを使い慣れている人が作ったソフトウェアと、使い慣れていない人が作ったソフトウェアでは、使いやすさに大きさ差が出てきます。

その辺を意識できるかどうかが、初心者プログラマーが独り立ちできるかどうかの境目になっていたりします。

どんどん挑戦すると独り立ちも早くなります

結局、最終的には、これが大事なことになります。

初心者でプログラミングに自信がない人って、自分から作業をしようとしていないんですよね。

でも、勉強ばかりしていても、実際に仕事としてプログラミングをして、経験を積んでいかないとプログラマーとして独り立ちすることは無理なんです。

任されるのを待っていても、できる人に仕事は集まっていくんですよね。

時間があるプロジェクトや大企業なんかだと、先輩と一緒に作業することで経験を積むこともできるかもしれませんが、ほとんどの企業ではそこまで余裕はないですよね。

だから、自分から作業を取りに行かないと、経験なんて積めないんですよ。

じっと待っていても、経験の浅いプログラマーにくる仕事なんて、雑用に近い仕事だったり、プログラミングとは程遠いテスターとしての仕事しか来ないんです。

逆に、自分から作業を取りに行くと、ベテランのプログラマーは、「大丈夫かな。。。」ってちょこちょこと見に来てくれたりします。

なので、詰まっていても、すぐに聞けたり、自分の知らないようなことを先輩から学んだりと、その作業が終わる頃には、かなり成長できていると思うのです。

そうやって、何度も挑戦していくうちに、先輩からも信頼されるようになり、独り立ちできるのです。

初めて作業を取りに行く時は、怖いと思います。

自分に自信もないので、できないんじゃないかと言った不安が出てくるのは当たり前です。

でも、そこを乗り越えることで、プログラマーとして独り立ちできるのですから、ちょっと勇気を出して「その作業やらせてください」と言ってみましょう。

先輩も、本当に無理と思ったら渡しませんから大丈夫です。

でも、その場合は、別作業をもらえると思いますよ。

まとめ

まとめると、経験の浅いプログラマーが独り立ちするには、資格勉強ばかりしていても意味がないのです。

PCを使い慣れて、一般的なソフトウェアに着いている機能に慣れておくこと。

仕事は、自分から作業を取りに行くこと。

これを繰り返すことで、プログラマーとして独り立ちしていくのではないでしょうか。

つまり、今回紹介した3点を繰り返すことで、周りよりも早くプログラマーとして独り立ちできると思いますよ。

では、今日はこの辺で。

2020年4月5日日曜日

コーディング規約の重要性

こんにちは。

今日は、コーディング規約の重要性について書いてみようと思います。

結論から言うと以下になります。
  • コーディング規約を無視したソースコードは読み辛い
  • フレームワークを使う場合はフレームワークのコーディング規約を使う
  • 独自コーディング規約よりも公式のコーディング規約を使おう
個人でWebサービスやソフトウェアを作っている時は、コーディング規約なんて気にしないと思います。

でも、チームで開発する時は、コーディング規約はとても重要です。

この辺を、私の経験を踏まえながら書いていきますね。

コーディング規約を無視したソースコードは読み辛い

チームで開発をしていると、コードレビューをします。

私も何度もチームメンバーのコードレビューをしてきました。

でも、コーディング規約を無視して書かれたソースコードは本当に読み辛いです。

コーディング規約を無視してコーディングする方は、大体がソースコードは動けばいい、くらいにしか考えていない方が多いです。

でも、考えてください。

システムは、一度作ってしまえは終わりと言う時代は昔の話です。

今は、システムは、育てていく時代です。

つまり、自分が書いたソースコードは、いつかは修正されるのです。

読み辛いソースコードを書いていると、修正をする方がとても苦労します。

苦労するだけじゃなくて、修正に時間がかかってしまい、修正する方へ大きなストレスを与えるのです。

私も、プログラマとして働き出したばかりの頃は、コーディング規約を重視していませんでした。

でも、時間がたった後で、自分のソースコードを修正する時、自分ソースコードなのに読み辛く、修正に多くの時間が必要でした。

自分の作ったソースコードに対して、「誰だこんなソースコードを書いたのは」と突っ込んでいたくらいです。

なので、チームを持つようになってからは、コーディング規約に沿ってないソースコードは、時間がなくても書き直してもらうようにしています。

若いプログラマの中には、不平・不満を言う方もいます。

そういうプログラマには、コーディング規約の重要性と、今のシステムを育てて、今後もっといいシステムにしたい意思を伝えるようにしています。

フレームワークを使う場合はフレームワークのコーディング規約を使う

仕事としてシステム開発をしていると、フレームワークをよく使います。

最近では、いちからスクラッチで開発することはほぼありません。

フルスクラッチで開発する時も、laravelやreactなどのフレームワークを使用します。

その場合は、laravelやreactのコーディング規約に沿ってコーディングを行うことで、読みやすいソースコードになります。

例えば、Wordpressのプラグイン開発をする場合を考えてみましょう。

Wordpressのプラグインを開発する場合、Wordpressで公開されている関数をよく使います。

そんな時、Wordpressのコーディング規約を知っていると、公開されている関数や変数を探しやすくなります。

また、他のプラグインと連携するのも容易になります。

これが、全く違うコーディング規約を使ったらどうなるでしょうか。

まず、Wordpressで公開されている関数を見つけるのに時間がかかってしまいます。

もしかすると、同じような処理をする関数を1から作ることになるかもしれません。

でも、自作した関数は、セキュリティ的に大丈夫か、想定外のデータを取得した場合の処理は適切かなど、検討しなければいけないことが増えてしまいます。

他のプラグインとの連携でも同じことが考えられます。

Wordpressのコーディング規約に沿って開発するだけで、少しでも手間が省けるのです。

以下にワードプレースのコーディング規約へのリンクを貼っておきますね。

Wordpressコーディング規約 (外部リンク)

独自コーディング規約よりも公式のコーディング規約を使おう

大手のシステム企業では、独自のコーディング規約を設けている所もあります。

でも、これからコーディング規約を作るのであれば、公式のコーディング規約を使いましょう。

何故かというと、コーディング規約を作ることが、あなたの企業の業務ではないからです。

そこに、時間をかけるくらいなら、システム開発をすることに注力した方が充分に利益につながります。

何度も同じコーディング規約を使用していると、少しずつ足りないなと思う点が見えてきます。

足りない点を既存のコーディング規約に追加していけばいいだけなのです。

私が勤めている会社でも、数年前に独自のコーディング規約を作ろうとした時期がありました。

いろんなコーディング規約のいいとこ取りをしようと考えていたのですが、結局、公式のコーディング規約を使用することになりました。

理由は簡単で、いろんなコーディング規約を読んでまとめる充分な時間が取れないというのが理由でした。

また、公式のコーディング規約には、基本的なことは定義されています。

基本的な規約に沿ってソースコードをコーディングするだけでも、読みやすいソースコードになりますし、システム全体の統一性も保たれます。

以下に、私が勤める会社で使用しているコーディング規約のリンクを貼っておきますね。

PHP Standards Recommendations(外部リンク)

まとめ

コーディング規約は、チームで開発する時には、とても重要です。

でも、ベテランのプログラマでも、コーディング規約を軽視している方が結構いるように思います。

ただ、自分が書いたソースコードを、後々、誰かが読んで、もっといいソースコードに書き換えてくれると考えると、コーディング規約に沿ってコーディングする大切さが分かるのではないでしょうか。

では、今日はこの辺で。

おまけ

システム開発ついて書いた過去のブログを以下に紹介します。




2020年4月3日金曜日

企業で働くエンジニアが注意しないといけない言葉


こんにちは。

今日は、企業で働くエンジニアが注意しないといけない言葉について書いていこうと思います。

結論から言うと以下になります。
  • できません
  • 簡単です
  • すぐできます
この3点については注意しましょう。

お客様とミーティングしていると、つい言ってしまいそうになる言葉です。

しかし、このような言葉に注意しないと、無駄な作業が増えることになりますよ。

私も、何度もこのような言葉で失敗してきましたので、その経験も含めて書いていきます。

できません

お客様からしてみると、企業で働くエンジニア はプロです。

なので、欲しい機能をどんどん言ってきます。

簡単な機能ならばまだしも、難しい機能になると、つい「それはできません」と言ってしまいそうになります。

でも、よく考えてください。

論理的な機能であれば、手間がかかるかもしれませんが、ほとんどが作り込むことが可能なのです。

私の場合、つい「できません」とその場で言ってしまったばかりに、仕事を失注してしまったことがあります。

あとで知ったのですが、そこまで手間をかけずに作ることができたのです。

論理的な機能なら作り込む事もできますし、一般的な機能ならばWebで調べると簡単にロジックやプラグインがあったりします。

なので、「できません」と言う言葉は控えるようにしましょう。

では、難しい機能の場合どう対応するかと言うと、「難しいです」と言うことを正直に行った上で、「検討させてください」と伝えましょう。

あとは、必死に調べる、または、聞き回ることで、簡単に作り込む方法を考えましょう。

簡単です

システムを発注する企業は、ITの知識が低いことがよくあります。

そのため、どうでもいいような機能をどんどん追加してきます。

その大半は、エンジニア にとっては簡単に作り込むことができます。

ただし、企業でエンジニアをしているということは、自分がプログラミングしている時間はビジネスの時間なのです。

作っているシステムは、企業の商品なのですよね。

私も、「その機能簡単にできるので追加しましょう」と言って、最終的に時間が足りなくなったことがあります。

そしてどうなったかと言うと、開発チームから外されることになりました。

結局、開発チームの利益を使ったことになるんですよね。

ただ、個人的には、お客様が欲しいと言っている機能は、できるだけ組み込みたいと思っています。

すぐできます

この言葉も気をつけた方がいいです。

自分の裁量で判断できるくらいの簡単な機能なら、私もこっそりと組み込んだりもします。

ただ、企業でエンジニアとして働いていると、スケジュールがありますよね。

スケジュールって、他の機能との兼ね合いもあるので、遅れると結構怒られます。

それが自分の技術不足によるものなら、まだスケジュールが悪かったと言えるのですが、こっそりと機能を組み込んだばかりに遅れると、かなり問題になります。

これは、私の経験です。

その時は、隠すことができずにバレてしまい、大目玉をくらいました。

なので、こっそり機能を追加するのであれば、スケジュールとの兼ね合いを十分に考えてから行いましょう。

企業で働くエンジニア としては、これも御法度なのですけれどね。

まとめ

企業でエンジニアとして働いている人は、このような言葉は使っていないと思います。

この3つの言葉、「できません」「簡単です」「すぐできます」は、結局企業の利益を潰しちゃうんですよね。

個人で仕事しているのであれば、普通に使っていいのかもしれません。

でも、企業でエンジニアとして働くのであれば、この3つの言葉には注意しましょう。

では、今日はこの辺で。

おまけ

エンジニア で働くのに役立つ過去の記事を紹介します。



2020年4月2日木曜日

社会人になって学ぶには


こんにちは。

今日は、社会人になって学ぶにはというテーマで書いてみようと思います。

結論から言うと以下になります。
  • 興味を持つ
  • 深掘りする
  • ビジネスを意識する
今日は、私が勤める会社でも入社式がありました。

新型コロナウィルスのため、みんなが集まって行う式は行いませんでした。

社会に出ると、学ぶ事も自由に決めることができます。

つまり、学ばないと言う自由もあるのです。

そのような中で、どのように学び続けていくかを考える必要があります。

興味を持つ

まずは、興味を持つことでしょう。

学ばないことを選択する自由も、社会人になると与えられます。

企業に入社する方は、その企業の事業に興味を持ったからでしょう。

どこに興味を持ったかは別として、興味を持ったところから、まず学んで見るといいのではないでしょうか。

私の場合は、最新の技術に興味があります。

なので、最新技術の情報は、すぐに目に飛び込んできます。

人によっては、アンテナを張るという言い方をする方もいますが、実際、私はアンテナを張れているのか分かりません。

でも、ネットニュースを見ていると、新しい技術はすぐに目に入ってきますね。

深掘りする

興味を持って学び出したら、さらに深掘りしてみるといいです。

深掘りすることで、さらに興味が湧き、学びたい欲求が増すことがよくあります。

また、深掘りすることで、詳細な知識が着き、先輩との話についていけるようになります。

すると、さらに面白くなってくるのではないでしょうか。

私が新人の頃、組み込みシステムの開発をしていたのですが、深掘りして学んでいて、先輩と話が合うようになり、さらにシステム開発が面白くなりました。

先輩と話が合うと、仕事も来るようになるので、同僚に少し差をつける事もできますよ。

ビジネスを意識する

やはり、学んでいることがビジネスに直結すると、学び意欲は湧きますよね。

学ぶことで、お金が稼げるのですから、一石二鳥でしょう。

さらに、ビジネスを意識しながら学び続けると、経営者と同じ意識に近づけます。

つまり、経営層の方々と話ができるようになるのです。

新しく社会人となった方にはピンと来ないと思いますが、経営層と話ができるというのは、かなり難しいのです。

例えば、システム企業の経営層は、システムを開発してどのようなビジネスを行うかを考えているのに対して、末端にいる私たちは、目の前の開発やシステムの機能のことしか考えていません。

つまり、見えている世界が違うため、話が噛み合わないのです。

まとめ

つまり、興味を持って深掘りし、どうやったら儲かるかを考えると、学ぶ速さも早くなるのです。

特に、ビジネスを意識するのは大切なことです。

たまに、知識をつけることが好きという方もいますが、知識を身に付けてもお金を稼げないと生活もできませんよね。

新しく社会人となった方は、学生時代と違って全てが自由です。

その自由を何に使うかによって、これからの人生が変わってきます。

頑張って学んでください。

では、今日はこの辺で。