タグ

ブックマーク / yshibata.blog.ss-blog.jp (6)

  • 伸ばすのが難しい能力: 柴田 芳樹 (Yoshiki Shibata)

    2018年6月1日に株式会社メルペイに入社して、4年が過ぎました。入社当時は、定年が60歳と聞いていたので、1年半の勤務だと思っていましたが、実際の定年は65歳であり定年まであと2年半です。 ソフトウェアエンジニアにとって重要な能力と(私は考えるが)、身に付けるのが難しいのが現実だと、この4年間で再認識したのは次の三つです。 開発の最初にAPI仕様をきちんと書けるソフトウェアエンジニアは少ない テストファースト開発を行っているソフトウェアエンジニアは少ないか、いない Tech Blogなどの執筆で、読み手を意識して、分かりやすい文章を書く、ソフトウェアエンジニアは少ない API仕様については、このブログでも何度か書いています(「API仕様を書く」)。テストファースト開発についても、「テストファースト開発」を書いています。分かりやすい文章については何も書いていないですが、「伝わる技術文書の書

    伸ばすのが難しい能力: 柴田 芳樹 (Yoshiki Shibata)
  • ソフトウェアエンジニアの成長カーブ: 柴田 芳樹 (Yoshiki Shibata)

    最近良く話していることなのですが、社会人として働き始めた新卒の技術者は、最初の数年は成長していきます。与えられた業務を遂行しながら、そのための学習もしていくからです。しかし、2、3年すると開発業務をこなせるようになり、特に新たな勉強をしなくても、日々、会社に行って開発業務が遂行できるようになります。 この状態、つまり、継続した学習をしなくなった状態で、10年とか経過すると、ソフトウェアの世界は大きく変化している可能性があり、新たな技術が登場し、その人の技量は相対的に今度は低下しはじめます。しかし、この時点で、新たなことを学習するのは困難だったりします。学習する習慣が無いわけですから、勉強しろと言っても、「なぜ、休みの日に勉強しなければならないのですか」ということになります。 そのような人に対して、マネジメントは、その人ができる仕事を与えて、何とか仕事をしてもらいますので、「新たなことを勉強

    ソフトウェアエンジニアの成長カーブ: 柴田 芳樹 (Yoshiki Shibata)
  • ソフトウェアエンジニアの成長カーブ(再掲載):柴田 芳樹 (Yoshiki Shibata):So-netブログ

    「ソフトウェアエンジニアの成長カーブ」 最近良く話していることなのですが、社会人として働き始めた新卒の技術者は、最初の数年は成長していきます。与えられた業務を遂行しながら、そのための学習もしていくからです。しかし、2、3年すると開発業務をこなせるようになり、特に新たな勉強をしなくても、日々、会社に行って開発業務が遂行できるようになります。 この状態、つまり、継続した学習をしなくなった状態で、10年とか経過すると、ソフトウェアの世界は大きく変化している可能性があり、新たな技術が登場し、その人の技量は相対的に今度は低下しはじめます。しかし、この時点で、新たなことを学習するのは困難だったりします。学習する習慣が無いわけですから、勉強しろと言っても、「なぜ、休みの日に勉強しなければならないのですか」ということになります。 そのような人に対して、マネジメントは、その人ができる仕事を与えて、何とか仕事

    ソフトウェアエンジニアの成長カーブ(再掲載):柴田 芳樹 (Yoshiki Shibata):So-netブログ
  • 業務を通した技術習得の落とし穴

    業務を通した学習の落とし穴 新たな技術を習得するのに最も効率的な方法は、業務で使用している技術について学習することです。業務で使用していますので、すぐに業務に役立ちますし、多くの時間その技術に接しているため、効果的に学習することができます。 業務を通じての知識の蓄積は効果的なのですが、落とし穴もあります。それは、業務をこなすのに最低限必要な事柄だけしか学ばないで終わってしまうことです。 たとえば、何年もC言語を使用して組込みシステムを作ってきたエンジニアで、ポインタの使用方法を知らない人がいるとは想像できないかもしれませんが、実際には知らない人がいます。なぜ知らないかというと、グローバル変数を多用した設計しかしたことがなく、構造体であっても、決してパラメータとしてそのポインタを渡す設計をしたことがないからです。 長年同じ種類の開発を行っていて、自分は何でもできると思っても、それは、「井の中

    業務を通した技術習得の落とし穴
  • 継続インテグレーションは強みではなくなった: 柴田 芳樹 (Yoshiki Shibata)

    Subversion/Gitなどを使用したソースコード管理、Jenkinsを使用した継続的インテグレーション、様々なxUnitフレームワークを使用した自動テストなどをソフトウェア開発組織として実践することは、今日では、その開発組織の技術的な強みではありません。 それらを実践しないことが、ソフトウェア開発組織の「弱み」なのです。また、組織としてそれらの実践を推進しない、あるいはサポートできないマネージャも「弱み」となります。さらに、大規模なソフトウェア開発組織においては、それらのためのインフラ整備をプロジェクトごとに立ち上げなければならず、サポート部門が存在しないことも弱みとなります。※1 ※1 プロジェクトを始めるごとに、ソースコード管理やJenkins用のサーバの調達、OSから様々なツールのインストールを一通り行うためには、それなりの時間を要します。したがって、バックアップをも含めて環境

    継続インテグレーションは強みではなくなった: 柴田 芳樹 (Yoshiki Shibata)
  • 継続した学習: 柴田 芳樹 (Yoshiki Shibata)

    ソフトウェアの世界は、ずっと変化してきており、今後もその変化は続きます。私が初めてコンピュータに触れてから31年が経過していますが、学ぶべきことや面白そうなことが毎年のように登場してきます。 一方で、2、3年以上を要するソフトウェア開発では、その開発で使用される技術は開発期間中は固定化されます。そのため、業務をこなすのに最低限必要な技術を学習しかしなくても、そのプロジェクトが続いている限り、問題なく仕事をこなしているような感覚になるかもしれません。 常に継続して学習しているかしていないかで、ソフトウェアエンジニアとして技量は大きく差が付きます。たとえば、JavaあるいはRubyを使用して開発しているプロジェクトであれば、長い開発期間中に『プログラミング言語Java』、『Effective Java』、『プログラミング言語Ruby』などの使用している技術に関したきちんとした書籍を並行して読む

    継続した学習: 柴田 芳樹 (Yoshiki Shibata)
  • 1