雑記
開発チームの中で学んだ事
ishikuro
私がアプリケーション開発のバイトをしようと思った理由は、そもそも開発が苦手だったからです。
コンピュータの分野と言えど、様々なレイヤーがあります。ハードウェア、アルゴリズム、ネットワーク、情報理論、数学、宇宙や医療など応用分野、ソフトウェアを作るための工学など、全てを網羅する知識をもつことはなかなか大変です。これは会津大学の部門を見ると明らかです(http://www.u-aizu.ac.jp/intro/faculty.html )。
Linuxが元々好きだったのでコンピュータのシステム側の知識(低いレイヤー)は放っておいても勉強するだろうということで、あえて苦手な開発分野(高いレイヤー)をやってみようと挑戦していました。両端からサンドイッチしてしまおうということです。
この試みの成果は個人的にですが少しずつ出ていて、開発手法自体に興味を強く持つようになりました。アジャイルやTDD, BDDなど何が流行だったのかなども見えてきた所です。
一方で、Connecting dotsじゃないですが、低いレイヤーへの興味にも意味が出てきました。マシンパワーがいくらあがっても、モバイルやネットワークアプリケーションの時代なのでリソース管理をきちんと考える必要があります。このとき、どのような開発フレームワークを選択するか?システムの構成は?という部分でコンピュータの基礎知識が必須だと思いました。開発技法だけ知っていてもダメなのです。言語やツールを使えるだけでは例えばNode.jsと従来のApache+PHPのパフォーマンスの差の意味がわかりません。
これはおまけですが、実生活でもアウトプットをする時の考え方を見直すようになりました。たとえば講義を板書するとき、ブログを書くときなど、常に[目的]と[持っているリソース]を意識して”設計”するというメタ的にしています。これは結構面白いです。デザイナーがあらゆることを”デザイン”というように、エンジニアは同じようなことを”設計”と捉え直すと、いろんなことが楽しく思えるようになるはずです。