web-dev-qa-db-ja.com

SW開発のフローエクスペリエンスを入力するにはどうすればよいですか?

仕事をするときの flow エクスペリエンスを改善するためのあなたの戦略は何ですか?

5
poseid

それは創造性に少し似ています。あなたはそれを強制することはできません、あなたはそれが現れるのに有利な条件を準備することしかできません。最も重要な要件のいくつか:

  • 気を散らすことのない環境(何時間も途切れることなく集中する必要があります)。
  • 明確な目標。
  • その目標に対する本物の本質的な関心。
  • 明確な心;バックグラウンドでしつこい問題を「これを行うべきである、それを行うべきである」ということはあまり多くありません。

ですから、実際に問題に取り組む前に、目標を明確に定義するか、完成させるか、少なくとも他のやること項目を書き留めて、心を乱さないようにして、集中できる場所に行ってください。あなたがしていることに興味があるなら、あなたは今、流れに入る良いチャンスがあります。

16
Joonas Pulakka

これは私にとって興味深いコンセプトです。私が数年前にソフトウェア開発に取り掛かった理由の1つは、それが可能性がある「ピーク体験」であり、楽しい時間を忘れてしまうことです。しかし、時間が経つにつれて、私はこれをますます経験しなくなりました。私が知る必要があると思われるものの量は無限に見えたからだと思います。しかし、私はピーク体験を取り戻したいと思います。それは私の生活の質にとって重要です。

Czikszentmihalyiの本「FindingFlow」で役立つチャートを見つけました。おそらくここに投稿することはできませんが(Googleで簡単に見つけることができます)、その本質は、楽しい「フロー」体験のチャンスを増やすことです。これが現在の課題です。現在のスキルレベルとある程度バランスが取れている必要があります。もちろん、ITで常に新しいことを学びたいと思っていますが、チャレンジが高すぎると不安や心配の気分になり、チャレンジが低すぎると退屈や無関心に陥る可能性があります。 。

私は以前のITでたくさんの退屈と無関心を経験しました。キャリア(s/w開発ではありません)。それは一種の底打ちの経験であり、どうすれば仕事をより良くすることができるかを探求することを余儀なくされました。かつて大きなPerlプロジェクトから料金を受け取ったので、私はJavaを探求することにしました。

明確な目標があると言えば、地元の大学で受けたプログラミングの授業からたくさんのことを学びました。目標はほとんど私のために設定されました。もちろん、外部の規律は私が集中するのを助けました:私は特定の日時までに本の特定の章を読んで理解する必要がありました。または、その時までに実用的なs/wプロジェクトを作成する必要がありました。たぶん、誰か他の人に喜ばせることについて何かが働いていたのでしょう。自分の目標を設定するのは難しいので、追加の外部規律をもたらすために、すぐに開発チームのオフィスで再び働くことを気にしません。私たち全員が完全に自主的になることはできないと思います。

質問への回答に戻ります。自分で作業するときは、ラップトップ(盗まれたので)をコーヒーショップに持っていき、厳選された自分の音楽を聴いて最高の結果を得ました(興味があれば、これは良いことです: http仕事中のヘッドフォンで://en.wikipedia.org/wiki/Soundsystem_01 )。それは地元の会話をかき消すのに役立ちました。歓迎されない気晴らしの欠如は、私にとって非常に重要でした。それに、昼寝をしたりテレビを見たりすることはできなかったので、公共の場所にいることは私にとって良かったと思います。さらに、コードで解決しようとしていた問題が、すでに私が興味を持っているドメインにある場合、それは私をやる気にさせるのに役立ちました。

また、携帯電話のソフトウェアを作成するのはクールだと気づきました。いつでも携帯電話を取り出して、自分が取り組んでいることを他の人(または自分自身)に見せることができるからです。私はそれから一種の料金を請求します、それは動機づけです。

2
JohnUlmer

何を達成しようとしているのかを明確に理解する必要があります。私が何かをテストしているとき、私は周りを探して、何かを見つけて次に何をすべきかを考えようとしているので、フローを達成するのは難しいです。

感覚遮断が必要です。これは、私の感覚の邪魔にならないことを意味します。人々が私の視野をさまよっている場合、または人々が私の周りで騒いでいる場合は、それを忘れてください(通常、オフィスでは触覚、味覚、嗅覚はそれほど問題ではありません)。ノイズを遮断するイヤフォンの優れたセットと、ホワイトノイズ(波がビーチに衝突するか、キャンプファイヤーが燃えて飛び出る)または音楽が私に役立ちます。すべての音楽には歌詞がない必要があります。そうでなければ、私の心は無意識のうちに単語を解析し、流れを混乱させるでしょう。会話を続ける私の近くの人々のための同上。私は「それらを調整」しようとしますが、私の心は無意識のうちに話者と会話に固執し、気を散らします。

最後に、「一時停止」を強制しないエディターが必要です。 vimを使って何時間もコーディングできます。私はcontrol-nとcontrol-pを使用してオートコンプリートを行いますが、これは非常に高速で、通常、探している変数名またはメソッド名を取得するために必要なものの数を予測できる場所に到達できます。 Eclipseを使用すると、コンテンツを再フォーマットしている間、入力を常に一時停止し、構文が有効かどうかを確認するなど、フローがほとんどありません。オブジェクト指向のもののオートコンプリートは遅すぎて予測できないため、フローの状態を実現できません。 。

ご想像のとおり、フローにはリズムが含まれます。そのリズムを乱すものはすべて、流れを乱します。

メール通知機能をオフにします。ソーシャルネットワーキング通知機能をオフにします。アラームをオフにします。あなたが働くことができる素敵な、長く、途切れのない時間のブロックがあることを確認してください。

最後に、大量のカフェインが役立つようです。

私がこれまでに行った中で最も生産的なコーディングのいくつかは、vimを使用してHTML、CSS、Javascript、Perlを記述し、Eric Johnson、Blues Saraceno、JoeSatrianiが私のイヤフォンを鳴らしてMountainDewで増幅しました。

自宅でスマートフォンとイヤフォンを忘れて、キュービクルの壁を越えた男が電話会議でスピーカーフォンを使用する必要があると感じたとき、私の最も生産性の低い時間の一部は、キュービクルファームに座って、Eclipseを使用してJavaを書き込もうとしたことです。

2
Meower68