寄付窓口はこちら

try Prototype! | try! Swift Tokyo 2019 1-16

なぜ私たちはコードを書くのでしょう?私は疑問に思っていました。コードはどれくらいの期間存続すると想定されていて、どれだけ使い捨てられるのでしょう?最終目標がユーザーに優れた便利な機能を提供することである場合、堅牢なコードに到達するために使い捨てるコードを書く価値はあるのでしょうか?私たちは優れたプログラマーとして、技術に磨きをかけますが、ただ正しくものを構築するのではなく、正しいものを構築するためにこれらすべての知識をどのように活用できるかを見てみましょう。

f:id:niwatako:20190321172721j:plain

f:id:niwatako:20190321172753j:plain

2016年にはじめて参加して今回二回目

f:id:niwatako:20190321172809j:plain

プロトタイプを仕事にしています。

f:id:niwatako:20190321172820j:plain

デザインチームに属しています。Experienceをテストする。

こういうことをしたかったので夢のような仕事です。デザイン、開発両方大好きなので良い組み合わせになっていました。

ただキャリアを始めた当初は出来ませんでした。どんなコード、どんなフレームワークが使えるかばかり気にしていた。

でも時間がたつに連れていろんなことができることに気づき、コードの書き方が変わってきた。色々なやり方があるということが分かってきた。

プロトタイプに限らず

f:id:niwatako:20190321172949j:plain

f:id:niwatako:20190321172953j:plain

ご自身の状況に合わせて考えていただければ。

ライブデザイントーク、皆さんいろいろアクションを取ってくださいました。今年は、オーディエンスの皆さんにも参加していただこうと思います。

f:id:niwatako:20190321173033j:plain

f:id:niwatako:20190321173036j:plain

答えを自身で書いてみてください。

始めていきましょう。

f:id:niwatako:20190321173049j:plain

みなさん携帯つかっているようですね。

なぜみなさんデベロッパーなのでしょう、なぜいまデベロッパーとして仕事をしているのか答えを書いてみてください

f:id:niwatako:20190321173126j:plain

私は、みなさんを幸せにしたい、生活の改善に寄与したい。

f:id:niwatako:20190321173209j:plain

携帯は個人的でどんなところにも持っていく。そこで皆さんの生活を改善できる。

色々な答えがあるかと思います。何が正しい、間違っているということはないです。ご理解いただきたいのは自身のモチベーションを知ることです。

選択はすべてモチベーションがベースになっています。

f:id:niwatako:20190321173301j:plain

コードはだれのために書いているのでしょう

f:id:niwatako:20190321173314j:plain

面白い質問だと思います、これは次の質問にも関わります

f:id:niwatako:20190321173409j:plain

自分自身、エンドユーザー、企業、同僚。。

f:id:niwatako:20190321173431j:plain

いろいろな要素があると思います。モチベーションの話をさきほどしました。私はユーザー指向です。下よりです。

今までやってきたことにも影響しています。キャリアの中でもここが影響を及ぼしてきました。理想的にはバランスをとるのが良いと思います。でも状況によって、ぜんぜん違うことに成ることもあるでしょう。会社の中でも色々な動きがあったりキャリアで新しいことを学ばなくてはいけなかったり。その場所によって変わってくるでしょう。

そこで強調したいこと、なにかにYesと言っていることはなにかにNoと言っていることです。当たり前かもしれませんが、あえて考えることで、次にプロジェクトをするときに、実はこの辺、一度止まって自分のモチベーションを意識することで機会がいまれます。

正確に自分のせいかを意識するように成ると思います

f:id:niwatako:20190321173626j:plain

f:id:niwatako:20190321173644j:plain

では世の中が変わったらどう対応しますか?

f:id:niwatako:20190321173649j:plain

私はいろいろやってきました。Python, React, TypeScript,最近はWeb開発です

f:id:niwatako:20190321173740j:plain

でも優しくしてください

f:id:niwatako:20190321173808j:plain

何が言いたいかと言うと、こうしたものは自分が選んだものではない。自分が選んだものであるケースもあった。今取り組んでいる体験はたまたまデスクトップに向いている。

必ずしも自分で選んだものではなかった、チームとして、ビジネスとして、全く違うスタックでやらなければならなくなったこともある。

これは正しい選択でした。これは皆さんにも怒るかもしれません。

まだ始めたばかりの人もいるかも、その領域の専門家かもしれない。

専門分野が変わったときにどう対応できるか。

f:id:niwatako:20190321173927j:plain

自分が知らないテクノロジーに対応しなければいけないこともある

開発の中で大事になってくるのは学び方を学ぶ。

学びながら同時にコードをリリースする。

f:id:niwatako:20190321173951j:plain

はじめて体験したのはReactNativeに切り替えたとき。自分の作業量を予測できなくなってしまった。

結局どうしたか、リリースしなければならないし学ばないといけない、フレームワークに基づいて理解しなくてはいけない、ドキュメントを読んだり勉強をした。次に何をしなくてはいけないかを考えながら学んだ。

それによってよりフォーカスできた

コードを書くときコードがどれくらい存在すべきと考えていますか

f:id:niwatako:20190321174058j:plain

f:id:niwatako:20190321174150j:plain

Developerとして自然にセキュアで堅牢、エンドユーザーにとって壊れないというのを考えていると思います。

現実的にコードの寿命はどのくらいなのでしょうか。どれだけ堅牢であれば本当に堅牢さが十分なのでしょうか。

100%対応できるものはどれほどやれば良いのか、またはやらなくて良いのか、Paymentにはそうしたアプローチを取るということも考えられる。どのように目標を達成できるか。

f:id:niwatako:20190321174300j:plain

コードに特別感は持たないほうが良いでしょう。技術スタックはすぐに変わります。

functional programing, reactional...素晴らしいものでしたがもう使われなくなったりしています。

コードを書く先にどれだけ書き直し、上書きがあるかを考えるアプローチもあるかと思います。

考え方を分けていくことが重要だと思います。コードにどのように実務的に対応するのが良いか考えていく。

コードリリースの阻害要因

f:id:niwatako:20190321174409j:plain

同僚に見せる前、PRを作る前の阻害要因はなにか

私にとっては恐怖感です

f:id:niwatako:20190321174507j:plain

もっと改善できたのではないか、適切な条件になっていないとレビューやユーザーに出すべきではないと思っている、本来それほど拘る必要ではないのにそうなってしまう。

私が書くものだがチームで共有するものでもある。チーム全体のスキルに依存していくことが重要。早い段階でチームのみんなに共有する。皆さんにも恐怖心がおそらくあるのではないか。もっと良くしようと思う。スペックをすべて間利用していないとか検証していなければ何が悪かったか心配に成る。心配するのは良いこと。重要なことを考えている。磨いていくことは重要だが、やはり私達の作業の阻害要因になっているのは阻害である。恐怖心はなくならないので共存することが大事。

リリースするときには余り心配することは実際にはない。進捗を早くすることが大事。方向性をはやくフィードバックを得る。長期的には正確度も高まり早く出すことができる。

f:id:niwatako:20190321174642j:plain

最後に、どれぐらいの頻度でテストしますか?

f:id:niwatako:20190321174712j:plain

コードに関して余りこだわりを捨てて人に共有することが重要になります。テストはいいやり方の一つです。

コミットする際、マージする際にテストするのであればいいですが、UnitTest,人に見せて確認することは非常に重要です。チームとしてのデベロッパーだけでなくテストすることが重要。

誰に対してコードを書いているのか。顧客か潜在顧客か同僚か

最終的に検証して確認する、最善のものを出すのが重要・

f:id:niwatako:20190321174858j:plain

できるだけ頻度高くテストするのが重要。書いた目的を満たしているか。

f:id:niwatako:20190321174928j:plain

なぜ だれのために 世界が変わったときどう順応するのか コードをどう変更していくのか 恐怖心が阻害要因になっている どうテストするか

私の経験は皆さんと違うかもしれません。でも数年間私は自問自答してきました。なので共有しました。

f:id:niwatako:20190321175003j:plain

ときにはこうしたことも考えることが必要になると思います。

f:id:niwatako:20190321175023j:plain

プロトタイプのマインドセットは何が何をどのように解決しようとしているのか

f:id:niwatako:20190321175036j:plain

素晴らしい知識を個々で養い素晴らしい美しいものを構築してください

恐れを抱かずやっていただければと思います。

ありがとうございました。

f:id:niwatako:20190321175126j:plain

f:id:niwatako:20190321175134j:plain