難しく考えすぎない、素直に考えてみる

久々に夢の中でプログラミングしました!以前は連日連夜忙しくて、最後の追い込み時期にどうしても潰れないバグがあったり、とても間に合いそうもないプログラムがあるとよく夢の中でプログラミングしてました。それが意外と現実的なコードを書いているんですよね・・・夢の中でバグを発見して「やったー!!」とか言ってますし…寝言で「やったー」とか笑顔で言ってたかもしれません(笑)

そんな夢プログラミングを今日してしまいました。その夢の中でタイトルにある事を感じました。私はとても悩みながらプログラミングしています。とてもとても複雑なロジックを組み立てていて、なかなか動かなくて困ってました。困って困って結局は長くて読みづらいソースコードになりました。そうするともう一人の自分が現れてなにやら文句を言ってます。

  • 「理論ばっかり学んで、しゃべって全てを難しく考えるクセがついたんじゃないの?」
  • 「直感を理論に結び付けようとしてるのは悪くないけど、無駄になることもある。それはやろうとしてることに対していちいち理論を取り出したり、関連付けたりするのが時にオーバースペックだから」

夢の中で自分に叱られました(苦笑)つまり勉強だの討論だので、全てを難しく考える傾向にあるって事です。全ての工程において、なんらかの手法を持ち出すのが現状だと思います。その時に本当にその手法が必要なのか。例えば設計段階でUMLを持ち出す。設計だからUMLで書くのが当然だと思ってしまっている人もいます。よく考えてみれば、自分が必要としているだけで、その場では必要無い事もあるんです。UMLで図を描いた結果、他の誰も読めなければ意味がありませんし、手書きでさらっと書いたほうが時間的にも速い場合があります。開発プロセスやプロジェクトマネージメントについても難しい本がたくさん出ていますが、自分の言葉でそれら技術や手法を表現してみって言われると、「お客様と自分たちを確実に安全に幸せにする手法」で、自分の趣味のためだけにそれらを学ぶ人は少ないでしょう。生業としている限り努力を続けなければ、事がうまく運ばず、失敗によって当初の目的である「お金を稼ぐこと」「みんなを幸せにすること」が妨げられてしまいます。だからといって事を難しく考えすぎないこと。研究職の方は考えるのもお仕事のひとつなので良いんですけど、難しい言葉を並べて、こうしなければならない!とか言われてもピンと来ません。なぜなら私は頭が悪いから(爆)開発手法や言語の選択なんて、言わば「最も早く実装できりゃぁいい」とまずはこれくらいのレベルから考えるべきでしょう。

最終的な目標に向かってできることをやる。それに難しい言葉はいらなくて、「ぶっちゃけ」の言葉で書けばOKでしょう(外向きの資料は別ですけど)。プログラミングなんて「速くできて、バグが無くて、誰にでもメンテナンスできれば上等!」プログラミングをよく知らない人でもこれなら理解できます。それを理論を並べた形で表現しても難しいだけです。私は理屈屋さんなので難しい表現を使いたくなりますが、それは自己満足にすぎなくて、何かを表現するなら分かりやすいほうが良いです。提案などする場合も難しい言葉を並べるのではなく、分かりやすい言葉を選べば読み手にやさしそうですよね(できれば「ぶっちゃけ」言葉でいきたいですがそれは相手次第…)。初心を忘れていたよ…なんて言ったことないですけど、原点を考えるのはほんとに重要だと思います。分かりやすく言えば「そもそも」を考えるです。「ていうか、そもそも」この切り出しで物事を考えるとどんどんシンプル思考になっていくんじゃないですかね?あんまり口癖にはしたくないですけど(笑)

シンプルイズベスト!誰が言った言葉なんでしょうね、確かにって感じました。はい、夢の話でした(長っ)