みなさん日々楽しくプログラミングしてますかー?
楽しくプログラミングをするためには何が必要でしょうか?
そもそも人によってどこが楽しいのかのポイントは違います。
- アルゴリズムを考えるのが楽しい
- 設計をするのが楽しい
- 新しい技術を使えることが楽しい
などなど、、、
僕はプログラミングが楽しいと思える状態でプログラミングをするには、プログラミングをする、という行為そのものよりも、プログラミングをするための環境が重要だと思っています。
そこで環境として重要な下記の項目から考えてみます。
- 事業
- 人
- 開発体制
- システム
基本的にはWebサービスを開発する前提です。
事業からみた楽しいプログラミング
いきなり少し大きめの話になってしまいますが、要はどんなサービスをつくるかという点です。
ECサイトなのか、メディアサイトなのか、コーポレートサイトなのか
プログラミングに関わらないのですが、そのサービスそのものへの興味や、サービスの目指す方向性を理解して共感できるのであれば、楽しくできるかと思います。逆にそれがないと、主体的な仕事ができず、どちらかというと言われ仕事になりがちなので、あまり楽しくできない(´・ω・`)
なんだかよくわからないサービスのなんだかよくわからない機能をつくるよりも、自分がつくることで世の中にどう影響が出るのかを考えることをできる方がやりがいはありますよね。
人からみた楽しいプラグラミング
これはどんな人と一緒に働きたいのか、というところです。
「嫌われる勇気」でお馴染みのアドラー心理学では人間の悩みはいきつくところ全て人間関係にあるといってます。
それぐらい一緒に働く人というのは重要です。
やっぱりプログラマーなら、
「みてみて、このページめっちゃ表示早くなった」
「え、どうやったん?」
「あーして、こーして、httpリクエストへらして、無駄なテーブル結合なくしたらはやくなった」
みたいな話をしたいですよね!?
自分の苦労ポイントや頑張ったポイントを共感できないとつまらないですよね!?
つくったモノ自体の評価は、それを使うユーザーがするのですが、ソースコード自体の評価はプログラマーでしかできません。なんかいいコード書けたなーっていうときにドヤれる相手がいるかどうかは楽しくプログラミングができるかどうかに大きく影響することだと思います。
もうちょっとだけ表向き?な言い方だと、やっぱりプログラマーとして一緒に働きたいのは「成長意欲がある」人です。
成長というのはベーシックでは「できることが増えること」とよく言われてまして、それをエンジニアで言えばいままでやったことのないようなことに対して積極的に取り組んでいけるような人です。
新しい技術的な話ができたり、新しいツールなどをつかって運用改善案を常に考えていけるような人といっしょだと楽しくプログラミングできるとおもいます。
開発体制からみた楽しいプログラミング
いけてるエンジニアであれば、楽しいプログラミングをするためには、きちんとした開発体制でプログラミングをしたいと考えるものです。
きちんとした開発体制というのはバージョン管理がきちんとされていたりとか、テスト環境があったりとか、、、、そりゃそうだろって感じですが。(ベーシックの開発体制の歴史についてはこちら)
モノをつくる以外の余計なことを考える必要がでてきて、プログラミングに集中できる状態がつくれないと楽しくプログラミングはできなくなってしまいます。
システムからみた楽しいプログラミング
Webサービスの開発をしていると、新規に1からつくるということは、なかなかありません。基本的には既存のシステムに新規機能を追加したり、システムのバグを直したりといったことが主になります。
既存のシステムの改修を続けていくと、当初の想定にはなかった仕様の追加や急ぎでの改修等で、どうしても理想とするシステムのプログラムからはかけ離れていってしまいます。
いわゆる技術的負債というやつです。
エレガントなプログラムを書くコードを思いついても、今までのつくりがこうだから・・・っていう理由で、思いついたエレガントなコードがかけないとテンションが下がってしまいます。
こうしたことを防ぐために、ある程度のタイミングでリファクタリングをしていき、技術的負債をちゃんと返済できている状態をきーぷできることで楽しいプログラミングをすることができます。
おわりに
事業の話とか、人の話は別にプログラマーに限った話ではなく営業でも、ディレクターでも同じような点は多いとおもいます。
プログラマーの考えていることはよくわからないーっていっても実際そんなに重要なポイントは変わらなかったりします。
株式会社ベーシックではつくっているサービスに誇りをもっている、新しいことが好きなプログラミング大好きなエンジニアが集まっています。そんなプログラミング大好きベーシックで一緒に働いてみませんか?