tag:crieit.net,2005:https://crieit.net/users/defunty_jp/feed defu@Todo:早寝早起きの投稿 - Crieit Crieitでユーザーdefu@Todo:早寝早起きによる最近の投稿 2019-12-07T19:47:44+09:00 https://crieit.net/users/defunty_jp/feed tag:crieit.net,2005:PublicArticle/15586 2019-12-07T19:45:11+09:00 2019-12-07T19:47:44+09:00 https://crieit.net/posts/b731802725263806b21e3a51e24ac144 意識が低い人のための巻き込まれ型駆動開発 <p>意識が低いみんな!<br /> 君たちの大好きな<strong>土日連休</strong>が始まったぞ!</p> <p>たっぷり空いた時間を使って、君は何をしている?</p> <p>一日中ぼーっとする?<br /> 禅ってやつだな!スティーブ・ジョブズも瞑想を生活に取り入れていたらしいぞ!</p> <p>一日中映画を観続ける?<br /> 創作物に触れることは良い刺激だな!頭を空っぽにして観るのも娯楽として最高だ!</p> <p>一日中眠り続ける?<br /> グッドナイト!ただ眠りすぎは身体に毒だから気をつけてくれ!</p> <hr /> <p>さて、意識の低い仲間たちの中には<br /> <strong>「休日にプログラミング書きたいけど頑張りたくないしめんどくさい」</strong><br /> といった腑抜けクソ野郎もいると思う!</p> <p>俺がそうだ!</p> <p>そんなクソ野郎からみんなへ、頑張らずに頑張るための<span style="color:red;">巻き込まれ型駆動開発</span>を紹介しよう!</p> <h1 id="巻き込まれ型駆動開発とは"><a href="#%E5%B7%BB%E3%81%8D%E8%BE%BC%E3%81%BE%E3%82%8C%E5%9E%8B%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA%E3%81%A8%E3%81%AF">巻き込まれ型駆動開発とは</a></h1> <p>巻き込まれ型駆動開発とは!<br /> 土日にもプログラミングしているような目標とする人の近くに身を置くことで、「自分もプログラミングしなければ!」と意識を変える方法のことだ!</p> <p>例えば俺は夏休みの宿題をやったことがない!<br /> 夏休みというものは認識した瞬間、気づけば終わっているものだからだ!<br /> だが、もし周りの一億人が夏休みの宿題をリアルタイムでやっていたらどうだろう?<br /> 夏休みの宿題をやらなければならない、という気持ちになるのではないだろうか!</p> <p>もし周りに休日プログラマーがいなければ、ネットで募集されているもくもく会に参加するのをオススメする!<br /> 自分のやりたいことに沿ったテーマであればさらにナイスだ!</p> <p>ただ、目標となる人をSNSで観測するというのはおすすめしない!<br /> SNSをやっている時間はプログラミングをしていない時間であり、プログラミングのことしか呟かない人はそうそういないからだ!<br /> できるだけ、成果物を作るような場に参加するのが望ましい!</p> <p>ちなみに、SNSで「一日中寝てた、死んだ」とか言ってるやつはだいたいめちゃくちゃ努力している(と俺は勝手に思っている)!</p> <p>そうやって目標となる人の近くに身を置くと、精神に変化が起きるのが分かるはずだ!<br /> 「俺はプログラマーだ!」<br /> 「あいつらと同じプログラマーだ!負けてなるものか!」<br /> 「あいつの作ってるものすげぇな!どうやって作ってるんだ!?」<br /> 「ちくしょう!このやろう、ちくしょう!」</p> <p>こういう気持ちが生まれる環境を作ることで、自ずと発破をかけることができる!<br /> 気持ちをコントロールするのは難しい!<br /> 気持ちが良い感じに動いてくれるように、環境を用意してあげよう!</p> <h1 id="成果物"><a href="#%E6%88%90%E6%9E%9C%E7%89%A9">成果物</a></h1> <p>ちなみにこの記事はアドベントカレンダー「なんでも」7日目の記事だ!<br /> アドベントカレンダーというのはとても良い!<br /> 期限があるし、みんな期限を守っている!<br /> ときには逃げ出す人もいるが、君の参加しようとした気概だけは誇らしく思う!<br /> もちろんこの記事は12月7日当日にテーマを決めて書き始めたぞ!<br /> この記事自体が巻き込まれ型駆動開発の成果物だ!</p> <p>また、「なんでも」アドベントカレンダーから休日プログラマーたちのとてつもない熱量を感じた!<br /> そのエネルギーに追従しなければならないという責任感が生まれた!<br /> 彼らのクリエイティビティに触発されてアプリを作ることにしたので、それも成果物として発表する!<br /> ちなみに作り始めたのは昨晩だからできてない!すまない!</p> <p>作っているのは <strong>「入力した文字列を全てアスタリスク(*)に変えるだけ」</strong> のアプリだ!</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">アプリ作ろうとしてできなかったやつの進捗 <a target="_blank" rel="nofollow noopener" href="https://t.co/XQniJ0QyRn">pic.twitter.com/XQniJ0QyRn</a></p>— defu@引越中 (@defunty_jp) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/defunty_jp/status/1203258925178474498?ref_src=twsrc%5Etfw">December 7, 2019</a></blockquote> <p>GIFを貼ったが見えてなかったらすまない!</p> <p>「こんなの何の役に立つの?」と思った人もいるだろう!<br /> 俺にも分からない!<br /> 真面目な話をすると、公共の場で書いているポエムを周りに見られたくない人に使って欲しい!</p> <p>数時間でできるかと思ったが、日本語変換ができないという重大な欠点に気づいてしまったので未完成だ!<br /> おそらくkeyイベント周りをごにょごにょすればいけるはずだが、慣れていないReactで書いていて正直ゴールが見えない!<br /> こういう「こんなん誰もつくらねーよ」というアプリを作るときにはjQueryで書くのが楽だと思っている!<br /> みんなVueやらNuxtやらで華麗に作っているらしいが、このあたりどうやって乗り切れば良いか教えてくれ!<br /> 「楽だとおもってるならjQueryで書けば良いだろアホか」という励ましのメッセージも大歓迎だ!</p> <p>ちなみにReactで書いている理由は、なんとなく格好良いからだ!</p> <h1 id="おわりに"><a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB">おわりに</a></h1> <p>以上が巻き込まれ型駆動開発の成果物だ!<br /> え?こんな中途半端なもので成果物と言えるのかって?</p> <p>俺がアプリを作ろうと思っていたのは半年前だ!<br /> だが、巻き込まれ型駆動開発を行うことで、半年間かかってできなかったことが数時間でできたと考えると、この素晴らしさが伝わるだろう!</p> <p>この結果をもってしても成果物とは呼べないだろうか?いや呼べる!</p> <p>俺は一人では頑張れない!<br /> だから頑張っている人を尊敬する!<br /> だけど一人で頑張る必要はない!</p> <p>この方法が合わない人もいると思うが、環境を変化させることで意識を変える方法はいくつもあるはずだ!<br /> 意識を高く持たなくては、と焦る必要はない!<br /> やることをやってれば意識は勝手についてくる!<br /> 知らんけど!</p> defu@Todo:早寝早起き tag:crieit.net,2005:PublicArticle/15507 2019-10-26T17:47:14+09:00 2019-10-26T17:47:14+09:00 https://crieit.net/posts/5607c27e54aed589e2018fa24c92ea8f 一人スクラムをしようとしてスクラムについて学習してやっぱりやめた話 <p>カイゼン・ジャーニーという本を読み、その中で言及されていたスクラムフレームワークについて興味が湧いています。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.shoeisha.co.jp/book/detail/9784798153346" target="_blank" rel="noopener">カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで(市谷 聡啓 新井 剛)|翔泳社の本</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://www.scrum.org/resources/scrum-guide" target="_blank" rel="noopener">The Scrum Guide</a></p> <p>このスクラムというフレームワーク、個人での開発にも適用できないかと思い色々と調べていたのですが、やはり同じようなことを考える人もいるようで、実践されているブログをちらほら見かけました。</p> <p><a target="_blank" rel="nofollow noopener" href="https://note.mu/intro/n/nd89e4f12a404">個人スクラムをはじめてみる</a></p> <p><a target="_blank" rel="nofollow noopener" href="http://kleta.co.jp/blog/?p=227" target="_blank" rel="noopener">ブログ|クレタ・アソシエイツ</a></p> <p>ぼくも一人スクラムをやっていくぞと思い、スクラムについて学習しつつ考えてみたのですが、 <strong>スクラムへの理解を深めるごとに一人スクラムの効果について懐疑的になったため、</strong> 私の考える一人スクラムについての問題点をまとめることにしました。</p> <h1 id="スクラムを一人でやるとうまみが少ない"><a href="#%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%A0%E3%82%92%E4%B8%80%E4%BA%BA%E3%81%A7%E3%82%84%E3%82%8B%E3%81%A8%E3%81%86%E3%81%BE%E3%81%BF%E3%81%8C%E5%B0%91%E3%81%AA%E3%81%84">スクラムを一人でやるとうまみが少ない</a></h1> <p>スクラムフレームワークとはそもそもチームでの作業管理を行うためのフレームワークです。<br /> スクラムのセオリーとして重要視されているのが <strong>「透明性 (Transparency)」・「検査 (Inspection)」・「適応 (Adaptation)」</strong> という三つの要素であり、これらをテーマに一人スクラムを考えてみます。</p> <p><strong>透明性</strong> では「プロジェクトで利用する用語」や「完成の定義」などをチーム内で共通化するべきだと説いています。ただ、一人で行なっている時点で共通化はされている(できない)ため、スクラムの重要な面がスポイルされることになるでしょう。</p> <p>問題の検知を行うための <strong>検査</strong> も一人スクラムでは非常に難しいものとなります。というのも、作業を行う人間が自分一人であれば、検査を行う人間も自分一人となるのです。作業担当者とレビュアーが同一人物であると言えば、どれだけ不毛なことイベントとなるかは明白でしょう。</p> <p>ただ一つ<strong>適応</strong>については問題ありません。振り返りを行うことで、進捗の問題に対する改善点を踏まえ、次回のスプリントに臨むことが可能です。</p> <p>さて、一人でスクラムを行なった場合「振り返りを行うことで改善を繰り返すことができる」ようになります。やりました!ただ、これってスクラムっていえるのでしょうか?</p> <h1 id="スクラムでの役割分担の重要性"><a href="#%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%A0%E3%81%A7%E3%81%AE%E5%BD%B9%E5%89%B2%E5%88%86%E6%8B%85%E3%81%AE%E9%87%8D%E8%A6%81%E6%80%A7">スクラムでの役割分担の重要性</a></h1> <p>スクラムではいくつかの役割を設定しています。</p> <p><strong>プロダクトオーナー</strong> は開発チームから生み出されるプロダクトの価値の最大化に責任を持ちます。<br /> <strong>スクラムメンバー</strong> は「完成」したプロダクトインクリメントを届けることのできる専門家です。<br /> <strong>スクラムマスター</strong> はスクラムガイドで定義されたスクラムの促進と支援に責任を持ちます。</p> <p>ここで重要なのは、スクラムでは特定の役割の人間が他の役割の作業を行うことを認めていません。例えば、プロダクトオーナーが開発したり開発の仕方に口を出すのは望ましくありません。プロダクトオーナーはプロダクトの価値の最大化に責任を持っており、その役割に集中することでプロダクト価値を保証することができることがスクラムとフレームワークの存在意義の一つとなります。フレームワークとは特定の目的を達成するための骨組みであり、それらを守ることで初めて意味が生まれます。</p> <p>もちろん、目的やチーム背景によってはそれらルールを変更する必要はあるかもしれませんが、変更するたびに目的達成のための複雑なファクターにほころびが出る可能性があることを忘れてはなりません。一人スクラムでは役割がないため、複雑なタスクに対応するためのスクラムフレームワークの意味合いがかなり薄まることになります。</p> <p>ただただスクラムの練習をしたいということであれば、一人でそれぞれの役割を分担することでその目的は達成されます。<br /> プロダクトオーナーしての作業を行うときは「俺はプロダクトオーナーだ......」と心の中で唱え、プロセスの優先順位を変更する場合には「プロダクトオーナー!優先順位を変えたいのですが。」「フムフム、それはどういう理由かね?」というように一人芝居を行えば、素晴らしい練習になるでしょう(本当に練習になるはずです)。</p> <h1 id="一人スクラムで期待できること"><a href="#%E4%B8%80%E4%BA%BA%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%A0%E3%81%A7%E6%9C%9F%E5%BE%85%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8">一人スクラムで期待できること</a></h1> <p>一人でスクラムを行うことの問題点を上述しましたが、それでも得られるものはあるかと思います。</p> <p>スプリントプランニングではこれからのスプリントでどういったことをするべきかを決めます。私が通っていた学校では夏休みには常に計画表を作るように言われていました。計画を立てるのは本当に大事なことなのです(それに気がついたのは学校を卒業して仕事でこっぴどく怒られた後でしたが)。</p> <p>計画ができたらスプリントの期間を決めてプロセスをガンガンこなしていきましょう。スプリントのたびに進捗の確認を行い、必要であれば見直しを行います。</p> <p>デイリースクラムを毎日行えば、問題があったとしてもすぐに調整を行うことができます。素早い改善は素早い完了につながります。</p> <p>さて、一人スクラムでも得られるものがあることがわかりました。「計画と定期的な振り返りと日々の現状確認を行う」ことができればバッチリです。ただ、これってスクラムでしょうか?</p> <p>こう考えると、スクラムというものはチームのための複雑な問題解決のフレームワークだとわかります。 <strong>一人でスクラムをやったとしても、それはスクラムの用語を使った丁寧な作業</strong> なのではないでしょうか。スプリントプランニングもスプリントもデイリースクラムもチームでの知識共有・問題解決・作業最適化などを目的としたものであり、それ自体の行為がスクラムではないのだと私は思います。</p> <h1 id="一人スクラムの可能性"><a href="#%E4%B8%80%E4%BA%BA%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%A0%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7">一人スクラムの可能性</a></h1> <p>スクラムを踏襲した一人スクラムについて考えましたが、私には思いつきませんでした。<br /> もしかすると一人スクラムをされている方で「こうすればスクラムのうまみを保ちながら作業できるよ!」という意見があればぜひ教えてもらえると嬉しいです。<br /> ただ、やはりプライベートでのイベントも生産性をハックしていきたいという気持ちはあるので、個人用のオレオレフレームワークを作っていこうという気持ちが高まりました。自分のためのプロセスマイクロフレームワーク、作っていきましょう。</p> defu@Todo:早寝早起き tag:crieit.net,2005:PublicArticle/15247 2019-07-16T09:34:03+09:00 2019-07-16T09:34:03+09:00 https://crieit.net/posts/Bit フロントエンドの公開コンポーネントを探すときに役立つBitというサービス <h1 id="Bitとは"><a href="#Bit%E3%81%A8%E3%81%AF">Bitとは</a></h1> <p>「Bit」はコンポーネント単位の共有サービスです。<br /> Githubとは異なりコンポーネントに特化しているため、汎用的な情報表示から脱却しており、閲覧性の高さを実現しています。</p> <h1 id="コンポーネントのイメージをサムネイル表示"><a href="#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%B5%E3%83%A0%E3%83%8D%E3%82%A4%E3%83%AB%E8%A1%A8%E7%A4%BA">コンポーネントのイメージをサムネイル表示</a></h1> <p>フロントエンドのコンポーネントは基本的に視覚効果を持つものが多いかと思います。<br /> Githubの場合、各種コンポーネントがどのような見た目になるか、一つ一つリンクを辿って調べて行く必要がありますが、Bitでは登録コンポーネントに対してサムネイル画像を登録できるため、コンポーネントの検索画面は間違いなく快適です。</p> <p><a href="https://crieit.now.sh/upload_images/9d24839c2321227f271e3cda360532de5d2d19ee2f99d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d24839c2321227f271e3cda360532de5d2d19ee2f99d.png?mw=700" alt="Screen Shot 0001-07-16 at 7.59.19.png" /></a></p> <p>アニメーションもサムネイル上から確認できます。<br /> <a href="https://crieit.now.sh/upload_images/dd9230335ed59abb37108b58ab9dc1855d2d1a22304c9.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/dd9230335ed59abb37108b58ab9dc1855d2d1a22304c9.gif?mw=700" alt="20190716.gif" /></a></p> <p>素潜りのような時間のかかる検索はやめましょう。<br /> Bitを使えば鷹のように俯瞰的な検索を行うことが可能です。</p> <h1 id="Exampleの確認が容易"><a href="#Example%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%8C%E5%AE%B9%E6%98%93">Exampleの確認が容易</a></h1> <p>Githubで公開されているコンポーネントの場合、Exampleのデモとそのソースコードは分離されています。<br /> それに対して、BitではオンラインコードエディタのようにExampleデモとソースコードを同一ページで確認することができるため、お気に入りのExampleをどのように動かすために必要なソースコードを瞬時に確認することができます。</p> <p>また、実際にオンラインコードエディタのような機能があり、Bit上で直接Exampleデモのソースコードを仮想的に書き換えることができますが、残念ながらこれはうまく動かない場合があります。</p> <p><a href="https://crieit.now.sh/upload_images/54707359660cb4114bda380e534692585d2d1a0ccdb80.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/54707359660cb4114bda380e534692585d2d1a0ccdb80.png?mw=700" alt="Screen Shot 0001-07-16 at 8.14.46.png" /></a></p> <h1 id="全てのコンポーネントに施されるCI"><a href="#%E5%85%A8%E3%81%A6%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AB%E6%96%BD%E3%81%95%E3%82%8C%E3%82%8BCI">全てのコンポーネントに施されるCI</a></h1> <p>Bitにコンポーネントを登録する際、仮想環境下における自動テストが行われます。<br /> つまりBitに登録されたコンポーネントは信頼性を担保されており、これは利用者だけでなく開発者においてもBitを利用するための理由となり得ます。</p> <h1 id="公開側の話"><a href="#%E5%85%AC%E9%96%8B%E5%81%B4%E3%81%AE%E8%A9%B1">公開側の話</a></h1> <h2 id="無制限に公開可能"><a href="#%E7%84%A1%E5%88%B6%E9%99%90%E3%81%AB%E5%85%AC%E9%96%8B%E5%8F%AF%E8%83%BD">無制限に公開可能</a></h2> <p>Bitでは無料プランの場合でも無制限にコンポーネントを登録することが可能です。<br /> ただし、非公開のコンポーネントを登録する場合、無料プランでは最大3つまでとなっています。(2019年7月現在)</p> <h2 id="現在はほぼReactコンポーネント"><a href="#%E7%8F%BE%E5%9C%A8%E3%81%AF%E3%81%BB%E3%81%BCReact%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88">現在はほぼReactコンポーネント</a></h2> <p>2019年7月現在、「React」タグがついたコンポーネントは9023個なのに対し、「Vue」タグがついたコンポーネントは59個でした。(Angularタグですか?3です)<br /> 閲覧性の高いBitでは、公開コンポーネントの利用される機会増加につながるかと思われます。<br /> Vue/Angularで作成したコンポーネントがあれば、ぜひBitに登録してみてください。<br /> いつかのBit内Vue/Angularコミュニティの立役者は貴方かもしれません。</p> defu@Todo:早寝早起き