開発日記 #3 プログラム開発って難しい
作ってみないとわからない
開発を始める前には、自分なりにしっかり考える。画面の流れ、データの持ち方、ユーザーがどう使うか。頭の中ではちゃんと動いてるし、「これで完璧だろう」と思って作り始める。
でも、実際に動くものを作ってみると、全然違う。
「あ、ここはボタンよりプルダウンの方が使いやすいな」とか、「この順番で入力するの、めんどくさくない?」とか。頭の中で想像してた「使いやすさ」と、実際に手を動かしたときの「使いやすさ」って、思った以上にズレてる。
設計段階でユーザー目線に立ったつもりでも、作ってみて初めて気づくことが山ほどある。結局、手を動かさないとわからない。
バグとの終わりなき戦い
そして何より大変なのが、バグの処理。
自分が想定した操作だけをしてくれるなら問題ない。でも現実はそうじゃない。空のままボタンを押す人もいるし、想定外の値を入れる人もいる。ネットワークが途中で切れることもある。
素人の自分にとって、すべての穴をふさぐのはほぼ不可能に感じる。「この画面でこの操作をしたら正しく動く」ことを確認しても、ちょっと違う手順を踏むだけで壊れたりする。
全てのパターンを洗い出して、1つずつ穴埋めしていくような作業。しかもその穴が、どこに空いてるのか自分では気づけなかったりする。
「この時どうなる?」という感覚
ただ、少しずつ変化も感じてる。
コードを書いてるときに、「ここ、この変数が null だったらどうなるんだろう」とか、「この処理、ログインしてない状態で呼ばれたらまずいよな」みたいな、嫌な予感が働くようになってきた。
まだ完璧には程遠いけど、「正常に動くパターン」だけじゃなくて「壊れるパターン」を想像する癖がついてきた気がする。
経験を積んだエンジニアは、きっとこの感覚がもっと鋭いんだと思う。コードを書いた瞬間に「あ、ここ危ないな」って見えるようになるんだろうか。
それでも前に進む
正直、難しい。自分で考えた設計が使いにくかったり、直したと思ったバグが別の場所で再発したり。「本当にこれ完成するのか?」って思う瞬間もある。
でも、動いた瞬間の嬉しさは確実にある。昨日できなかったことが今日できるようになってる。その積み重ねが、少しずつ形になっていく感覚。
完璧じゃなくていい。全部の穴をふさげなくてもいい。気づいたところから1つずつ埋めていけば、ちゃんと前に進んでる。
ちょっと難しいけど、頑張っていこう。