JavaScript勉強会

JavaScriptの学習日記

既存の技術で開発する工夫

何かを作るとき、ワクワクする感覚と面倒くさい感覚の両方が混在している場合があります。

 

  • アクセル … 楽しい、ワクワク
  • ブレーキ … 辛い、面倒くさい

 

で、問題はこの「面倒くさい」という気持ちですね?

どうしたら、面倒くさいを減らせるか、減らせなくても影響を軽減化できるか、を考えるヒントがありました。

 

 

blog.nabettu.com

 

いや~ʬʬʬʬʬʬʬʬʬʬʬʬ分かりみʬʬʬʬʬʬʬʬʬʬʬʬ深すぎʬʬʬʬʬʬʬʬʬʬʬʬ

まあ、みんな同じ悩みを抱えてるんですね!?

 

(ブログ主様は「Vue.jsとFirebaseで作るミニWebサービス」の著者の方でした。)

 

列挙されていた問題について、どうしたらいいのか考えてみました。

 

 

「構想がでかすぎて作りきれない」問題

まずこれ。本当にこれ!

クリエイターである限り、絶対に避けて通れない道!!!

妥協のない完璧さを追求して、高邁な理想を掲げてみたものの、実現可能性(人・モノ・金・技術などのリソース)が追い付かない問題。

 

困難を分割せよ」(デカルト)という発想に立つと、大きなサービスを作る場合は、機能を分割して用意すれば良いと思います。

マイクロサービス」設計のように、小さなサービスを組み合わせて、大きなサービスを構成する手法で解決できると思います。

 

www.huffingtonpost.jp

 

 

codezine.jp

 

 

「技術的にしんどい」問題

どんなに素晴らしいアイデアがあっても、それを実現する方法がなければ、「絵に描いた餅」になりますね。

(1)企画 → (2)作成 → (3)販売という事業の流れを見ると、この2番目の作る段階で、技術が必要になってきます。

 

jsstudy.hatenablog.com

 

新しい技術を身につけようと思って、本を読んだり、チュートリアルをやってみても、要領が悪いので、なかなかすぐに覚えられません。

どうしても字を読むのが面倒なときは、オーディオブックにして聞き流すようにしてます。

 

(1)テキストデータを用意 → (2)朗読ソフトで音声化 → (3)MP3に変換して結合

 

 

 

VOICEROID2 結月ゆかり

VOICEROID2 結月ゆかり

 

 

かんたん!AITalk 3 -5話者パック

かんたん!AITalk 3 -5話者パック

 

 

www.vector.co.jp

 

www.vector.co.jp

 

オーディオブック作成の問題は、作ってる途中で面倒くさくなって、「それなら本を読んだ方が早い」と思い、結局本を読むはめになることですw

 

本を入れたら、オーディオブックになって出てくる機械(全自動)があったらいいのに!!!

 

 

「未経験な技術はできるだけ使わない、使っても1つだけにしよう」問題

基本ミーハーなので、新しいモノには飛びつきがちですw

でも、新しいモノを追いかけ続けているとキリがなくて、いつまで経ってもINPUTだけで終わりがち。

→肝心なOUTPUTの時間が取れません。

 

satoshi.blogs.com

 

結局、人生はアウトプットで決まる 自分の価値を最大化する武器としての勉強術

結局、人生はアウトプットで決まる 自分の価値を最大化する武器としての勉強術

 

 

「それがないと作れない」という技術以外は、プロダクトに投入しなくてOK。

ここは的を絞って、ちょっと背伸びすれば作れるレベルのものにして、壮大な構想は後にとっておきましょう。「千里の道も一歩」からです。

 

なるべく、今ある手持ちのカードで工夫すべきですね。

 

どうしても、新しい技術を使ってみたい場合は、いったん既存の技術でベータ版を完成させた後、リファクタリングのフェーズで投入すればOK?

 

 

「技術習得と、新規開発はできるだけ分離しよう」問題

それでも結局、自分の作れる範囲のものなんて作っても仕方がない・大したものが作れないとなってしまったら、技術習得と、新規開発はできるだけ分離しましょう。

これは、「習得をマイルストーンにしてないと、開発していて新しい技術を習得している過程では、開発が全く進んでないように見えて心が病んでしまう」のを未然に防ぐためです。

習得していく技術については、別途技術習得チェックリストを作って、開発のtodoと別で積み上がっていくのが見えるようにしておくといいと思います。

 

  1. INPUT(学習)
  2. OUTPUT(開発)

同時並行でやる場合でも、それぞれ別個に管理した方が良さそうですね。

 

つまり、学習の遅延が、開発の遅延に結びつかないように、分離しておくと。

  • 学習(INPUT)はマイペースでもOK。遅延OK。
  • 開発(OUTPUT)は納期を設定。遅延させない。

これは気を付けないといけないな~。

 

 

…その他の問題については、概ね同感です。

 

 

まとめ

設計の段階で、技術要素の選定に悩むことが多々ありますが、時間短縮のためには、今使える技術を組み合わせて、工夫した方がいいですね。

時間が無限にあるなら、いくらでもINPUT(学習)に時間をかけられますが、現実は時間が有限で、OUTPUT(開発)には納期があるので、INPUTの取り組みはよく吟味すべきだと思いました。

 

「今使える道具だけ」という縛りを設ければ、工夫が必要となり、頭を使うパズルのように楽しむこともできますね。

まずは既存の技術を使い込んで、開発スピードを高めることも心がけよう!

 

 

決定版・ゲームの神様 横井軍平のことば (P-Vine Books)

決定版・ゲームの神様 横井軍平のことば (P-Vine Books)

 

 

水平思考の世界

水平思考の世界