実践的な開発スキルを身につけられるよう、初級から指導します。
できること
これまで、20年以上独立してシステム開発を行ってきました。
その経験を、これからこの業界に足を踏み入れる方、この業界でやっていこうと思っている方に対して、何か役立てられればと思い登録しました。
開発が本当にできる人とそうでない人との差は、この業界ではかなり大きな隔たりがあるように思います。
やる気さえあれば一流の水準にいずれ至れると思っていますが、現在置かれている環境がそうでない時、出来る人が何を見ているのか、どう考えているのかに全く触れることが出来ません。結果、埋もれて終わってしまう事もあるでしょう。
過去にオフショア開発をやっていましたが、東南アジアのDeveloperに全く及ばない日本人開発者も多くいます。
残念な事です。
あの強いエネルギーを日本人も持てたなら、きっとIT先進国にもなれるであろうに、グローバル化の波に呑み込まれて日本人の力が埋もれて衰退していくのは危機とも言えます。
プログラムを書ける事は最低限です。早い人で数ヶ月、人によって数年程度でしょうか。
しかし現実にはそれだけでは不十分です。
動くものが作れても、熟練者と初心者では天と地ほど差があります。
しかし動くものだけ見てしまうと、そんなに大きな差はないのではないか、と思えてしまうので難しいものです。
その場限りの使い捨てアプリケーションであればどんなコードでも良いかもしれません。
しかし、実際のビジネスの現場ではあまり多くないです。
とりあえず普通に動かせて公開できるようにしたい、という要望があったとしても、汚いコードではその後が困ります。
その次の展開で機能を追加したり変更したりする際に、場合によっては0から作り直す方が早い、ということもよくあるのです。
こういう場合、だいたいある程度サービスが実際に使用されている事が多く、作り直した方が良いというケースを何回も見てきました。0からで無かったとしても、悪いコードはバグが起きやすく、問題点の追求もしにくいため、事実の理解に至った事業部や経営者からするとそれが大きな学習コストだった、と後に悟るわけです。
動けばそれでいいではなく、バグが起きにくいコードで、保守しやすいコードであって欲しいのです。
しかし難しい事に、常に最善のコードを作ればそれで良いかというとそうでもありません。
開発スケジュールに間に合わなければ事業が失敗に終わることもありますし、個人的にも、与えられたスケジュール・決めたスケジュール通りに開発出来ないことは自信を失ったり、負担が大きくなったり、モチベーションも下がり、負の連鎖に陥ったりします。
その為、バランスが大切です。
開発現場では適切に処する事が必要となってきます。
プロジェクトマネージャーとしても同様です。
開発するのは機械ではなく人です。
時々、合理性のみに走って人を見ていない人、コードレビューとして個人の理想の押しつけを他者へ強いる人、属人性を省き形式的プロセスを理想と思っている人、チームメンバーを見ずに周りでやってる事をそのままやれば良いと考える人、などなど「人」を機械か何かと考え判断材料に含めないケースが見られます。
私の考えは全く正反対で、ソフトウェア開発は人に依存するべきと考えています。
人依存していかなければ、最高峰のソフトウェアなど作れるわけがありませんし、スピードも効率も上げることは叶いません。
良いコードはメンテナンスしやすくバグが起きにくいです。ある程度のスキルがあれば、むしろ馴染みます。
人依存で問題が出てくるとしたら、どこかに別の問題が潜んでいた・起きている可能性があると思います。
また、私は教科書的な形式性を良しとしていません。
全て意味があるからその選択をするべきです。形があるからそうする、のではなく。
私にできることは「人を中心とした合理的・実践的なソフトウェア開発」であり、その方向へ指導していくことです。
事の初めは、プログラムが書けるようになること、です。
メンタープロフィール
レビュー
とてもわかりやすかったです。
ほんとにありがとうございました。
Githubのコミット履歴復元の際は本当にありがとうございました。
解決だけではなく、作業している対象ファイルの役割を分かり易く、噛み砕いて説明して頂けたので初心者の私でも理解しながら作業を行うことが出来ました。 本当にありがとうございます。
ブランチに新しい試みをする際、作業前に念のためブランチをコピーしておいた方が無難ですね。