はてなキーワード: ペアプログラミングとは
事の始まりは6/11、消印もなければ料金後納でもない封書が自宅マンションのポストに入っていた。
曰く、「貴殿はヘイトスピーチサイトを即座に停止し最寄りの警察署に出頭せよ」とのこと。
一目見て変だなと思うと同時に、厄介なことに巻き込まれていることを自覚した。
心当たりはある。
私は、自分で言うのも説得力がないが、至って清貧なWeb屋だった。
全ては独学で、どこの会社に勤めるでもなく、デザイナー・コーダー・プログラマ・エンジニアと出世魚のごとくキャリアを積んできた。
無料ブログサービスで使用するブログパーツやテンプレートの制作。手打ちされたHTMLが無数に存在するサイトのCMS移行。フルスクラッチで何万行というコードで書かれた複雑怪奇な商品比較サイト。ブラウザベースで動作する業務システム他諸々。
フルスタックという名の器用貧乏で、Webに関連することなら一通りのことはやったと思う。
ペアプログラミングのペの字も知らず一人で突き進み、次第に大量のサイト群をメンテしきれなくなり、新規開発との並行によるデスマーチが日常となった。
下手な自営業の典型だったことも災いし、往々にして工数と賃金は釣り合わず(相見積もりからの値切りは日常茶飯事だった)、プライベートを犠牲にしてまで働く虚しさに日々磨り減っていった。
やがて完全に心を病み、後遺症は残らなかったが脳の病気(おそらくは過労が原因だろう)で倒れたことを機に一線から引退した。
鬱の治療をしつつ、近頃はコンサル的な業務か、リアルで付き合いのあるごく一部のクライアントからの受注に絞った。
数年前、インフラエンジニアの知人経由でサーバ関係の相談を受けたことがあった。
その際、「一日〇〇万PV級の某有名CMSで動くサイトの負荷対策」として諸々をレクチャーした。無論、例のサイトとは知らずだ。
依頼についての請求書を出した時、こちらの住所を記載していた。(向こうは個人名ではなく見知らぬ会社名だった)
継続して相談を受けるうち、サーバ上で運用されているサイト名を知って手を引いた。
個人情報が漏れたのであればそこからしか考えられず、しかし何故今なのか不思議だった。
例のサイトについて調べるうち、#ネトウヨサイト裸祭りを知った。
最初に投函されたその『警告』にも、アフィ広告剥がしの運動が行われていることは記載されていた。
さすがに張本人からの物とは思えないが、共感を覚えた誰かしらのうち私の住所を知っている者が(あるいは請求書で住所を知った管理人やインフラエンジニアの知人など、私に極めて近い何者かが)リークしたのだろうと思った。
しかし相手が何者かも分からなければ、私にはサーバ=サイトを停止する権限もなく、仮に出頭したところで頭の病気を疑われるだろう。
そのため、内心怯えつつも無視し続けるしかなかった。(後ろめたいところはないが)個人的に警察沙汰は嫌だという気持ちもあり、被害届も出さなかった。
そのうち例のサイトの広告が全滅したというBuzzFeedのニュースを目にして、ようやく安心した。
「ああこれで顔も知らない手紙の相手も溜飲を下げることが出来ただろう」「皆も例のサイトへの関心が薄れるだろう」
「ほぼ無関係な私も標的からは外れるだろう」、そんなふうに楽観していた。
そして昨朝になって、前回と同じような差出人不明の封書が届いた。
曰く、「サーバ管理人である貴殿らを近々メディア(文春やハフポ、BuzzFeed等)に告発する。個人情報を匿名掲示板及びWiki上で公開する。
サイト管理人〇〇〇(調べれば出てくるが一応個人名なので伏せる)共々罪を償わせる手筈は整った。これは最後通牒である」とのこと。
嫌な予感が当たった。
例のサイトがさくらインターネットとバリュードメインの利用規約に違反しているという記事をつい先日読んでいた。
はてブでもそれなりに話題になっていたので、他人事ではなくなっていた私は正直戦々恐々としていた。
ただし、「さくらインターネットや(バリュードメイン親会社の)GMOが今回の件で一方的な契約解除などの対処を果たして行うだろうか?」という感覚でいた。
広告の件はまだしも、ホスティングサーバを提供するさくら社が動いたとしても、ドメインもといレジストラであるGMOが「(主に第三者による)クレーム」で動くというのは少し考えづらかった。
例のサイトが最高裁に上告したことも知っていたため、仮に契約が停止されるとしてもその段階ではないかという気がしていた。
一方で、私に手紙を送ってきた者は「最初からサイトの停止を目的としていたのではないか?」と思えてきた。
漫画村問題以降、悪質サイトは広告剥がしによる兵糧攻めが効果的という話が周知の事実となっていたこともあり、広告剥がしの運動はその延長にある気がしていた。
けれど、根本的にサイトを潰したいのであれば、捨て身覚悟でサイトそのものか当事者へ攻撃を行うのが最も有効だろう。
ちょうど今朝だったか、グリーンピースがフランスの原発にドローンをぶつけたというニュースを読んで、なんとなく悟った。
これは「保守速報のサーバ管理人」である(と誤解されてしまった)私へのテロルである、と。
もしかしたら、「本当のサーバ管理人」も同じような手紙を受け取っているかもしれない。
なぜなら手紙には「貴殿ら」と複数形で書かれていたためだ。それに関してはお気の毒だなと感じる一方で、ざまあないねという気分だ。
あくまで私見を述べると、現在裁判所で係争中のヘイトスピーチに係る問題について、私は例のサイトの管理人の肩を持つつもりは一切ないし、法のもとで公平に裁かれることを期待している。
ただ、この一ヶ月弱、ある種の当事者として騒動を見守っていて、やはり「行き過ぎではないか」と感じた。
ネット上で起きた問題であっても、司法のもとで裁かれるべきであって、私刑によって晴らされるべきではないという気持ちがある。
さくらインターネットやGMOへの申告は「被害を受けた当事者たち」が行えばよいのであって、それを承知の上で「押すなよ、絶対押すなよ」と言わんばかりの記事を拡散して「第三者であり不特定多数の善意」を期待するやり方は正直に言って寒気がした。
例のサイトの肩を持つつもりはないと言いつつも、実害を受けている立場上どうしても公平性を欠く見方をしている自覚はある。
元々オタクであり、事ある毎に表現規制絡みのセンシティブな話題を目にしてきたことで、常日頃から肩身の狭さを感じる身ゆえに中立とは呼べない「寛容さ」を持ってしまった可能性もあるだろう。
それでも、第三者を巻き込んだ運動や行動(手紙の件は私には脅迫としか思えなかったが)によって社会が良くなるのならば、という思想は反面で危険をはらんでいるように感じる。
他人から何かを剥奪する時、それがたとえ社会的に真っ当な仕打ちと思える処分でも、本来その権限を持たぬ者たちによって軽重が左右されることには本能的な恐怖がある。
なんの利害関係もない、「純粋な義憤による裁き」は、その正当性が担保されなくなった瞬間に理不尽ないじめの構図と変わらなくなる。
ならば「誤っていたと認めなければよい」という方向に流れて、一度始めると引っ込みが付かなくなり、時に際限なく激化する辺りもよく似ている。
「いじめられる方にも責任がある」という言い分も心情としては理解できる。かと言って、少なくとも私が受けたそれらは、あくまで私自身の範疇で「当然の報い」として飲み込める程度のものではなかった。
第一、私を告発しても(例のサイトへの攻撃としては)まったく意味がないのだから尚更だ。多少の犠牲もやむを得ないということならもう知らないが。
私が今後どのような処遇を受けるか考えたくもないが、社会的な死に陥る可能性は五分五分だろうと思う。
「少しでも関わった時点で同罪」「被害者面すんな氏ね」「増田の住所を特定して晒し上げにしろ」とブクマで罵詈雑言を浴びる可能性を覚悟した上で、それでも今回は書くことにした。
なぜなら、私は手紙に対して直接返事を書くことが出来ないからだ。
せめて差出人がこのエントリを読んで、もしも人違いであると気付いたのならば、文字通り命乞いで情けないが思い留まってほしい。
断っておくが、お先が真っ暗だからと言って、私は低能先生のように自棄になって破滅的な行動を起こす気力がない。
それ以前に、今回のことがなくとも、もうボロボロに病んでいる。義憤に駆られたり誰かに恨みを持つのはそれだけで体力を使う。そういう持ち合わせはもうない。
だから、ある日朝起きて、ネットの海に漂う自分の住所を目にした時には、全てを諦めようと思う。
それは明日かもしれないし、幸運にも一生やって来ないのかもしれない。
何事もなかったところで、怯えて日々を暮らすうち、悲観に飲まれて気の迷いを起こすのも人間だと知っている。
たとえ私がいなくなったところで、この国ではよくある、珍しくもなんともない瑣末事として処理されるだろう。
これが遺書にならず、怪文書やポエムの類いとして笑い話になれば幸いだが、念には念をというやつだ。最後はこの言葉で〆ようと思う。
グッド・バイ。
やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ。
話し合い、耳を傾け、承認し、任せてやらねば、人は育たず。
やっている、姿を感謝で見守って、信頼せねば、人は実らず。
まずは、あなた自身がプログラマーになって、見本を見せることが第1歩です。
その後受託系の会社に就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。
鬱病気味になったみたい...。
どうやら、プログラミングという仕事の特徴について、あなたは理解していないようですね?
プログラミングの特徴は、「コンピューターが相手なので、嘘やハッタリが一切通用しない」ということです。
人間相手なら、適当に指示を出したり、いい加減な対応でも何とかなるけど、コンピューター相手だと1mmも融通が利きません。
という3点が必要です。
警察に職務質問されて有名になった江添亮さんのブログ等を読んで、この方のようにネチネチと論理をこねくり回すのが好きなら、プログラマーに向いています。
(例)本の虫: 麻布十番で職務質問を受けた話 https://cpplover.blogspot.jp/2017/08/blog-post.html
プログラムというのは、小さな部品を組み合わせて、大きなシステムが作られています。
小さな部品がパズルのピースに相当して、大きなシステムがパズルの完成品です。
つまり、大きな問題を小さな問題に分解して、1つずつ順番に問題をつぶして行く姿勢が必要です。
があります。
命令型のプログラミング言語しか使えない人がプログラマーになると、テスト地獄に陥って、結果的に鬱病を発症しやすくなるだろうと危惧しています。
上述のように、パズルのピースを組み合わせてプログラムを作るには、「関数型」の作法を身に付けておくと良いでしょう。
関数型プログラミングを習得するために、今なら「Haskell」または「OCaml」というプログラミング言語をお勧めします。
HaskellやOCamlは、良い参考書がたくさんあるので、本屋に行って実物を確かめてください。
Haskellを学んでみて、パズルのピースを組み合わせる感覚が理解できたら、あなたはテスト地獄に苦しめられないプログラマーになれるでしょう。
もしも、Haskellが理解できないようだったら、残念ですがプログラマーには向いていないかもしれません。
(例外的に、あなたがマゾで、テスト地獄や残業、徹夜が楽しいと思える性格なら、Haskellが理解できなくても大丈夫かもしれません。)
Haskellの教材(英語)を紹介するので、参考までに読んでみてください。
http://learnyouahaskell.com/chapters
(このサイトの内容は、日本語の書籍「すごいHaskellたのしく学ぼう!」として出版されています。)
Haskellは、順番に学べば必ず理解できるようになっています。
もしも、Haskellが習得できなければ、大きな問題を小さな問題に分解して解決していく作業には不向きな性格かもしれないので、他の仕事も検討してはいかがでしょうか?
(人生は一度きり。時間の無駄にならないようにお気を付けください。)
あなたと友人が、無事Haskellを習得して、テスト地獄を乗り超えるスーパーハッカーになり、日本のIT産業を牽引されることに期待いたします。
(追記)
自分が作りたいプログラムすら作れない人が、他人が希望するプログラムを作るなんてできっこないからねw
(プログラマーが楽で簡単な仕事だと思ったら大間違いですよ?)
(追記 その2)
関数型プログラミングをマスターしておけば、OOPでも役に立つよ。(現実には、関数型もOOPも必要に応じて投入するし)
iOS→「プロトコル指向プログラミング」「RxSwift」、Android→「RxJava」辺りのキーワードでググってみて。
別に皮肉とか宗教戦争で煽ってるわけじゃなくて、自分も苦労して辿りついた口だから、今から始める人には遠回りして、余計な苦労を味わって欲しくない。
(追記 その3)
他の人が書いてたけど、1人でプログラミングするんじゃなくて、2人(ペアプログラミング)や3人以上(モブプログラミング)から始めたら良いかも。
Googleの「プロジェクト・アリストテレス」で、仕事の生産性を改善するには「心理的安全性」が重要と分かり、プログラミングの仕事もやり方が変わって来ています。
https://kuranuki.sonicgarden.jp/2017/01/psychological-safety.html
(追記 その4)
元記事が消えていたのでバックアップしておきます。(この投稿だけ読むと意味が分からなくなるため)
https://anond.hatelabo.jp/20170910205249
2017-09-10
■知り合いをプログラマにさせたいんだけど知恵を貸してくれ
プログラマって育休からの復帰しやすいだろうし、アルバイトよりは待遇いいし、勤怠ゆるいし、労力の割に楽ちんだと思うんだよね。
接客のバイトで消耗するくらいなら、プログラマになればいいと思っているのだが、その知り合いは自身のことをプログラミングを不向きと評価しているらしい。私は、プログラミングに限らず物事は時間をかければ習熟していくものだと思っているので、不向きではないと思うんだ。不向きというのは物理的に制限のある時だと思う。
その知り合いについて。
Vimはぎこちないけど使える。日常的にmacOSを使っていてターミナルの操作はできている。cd, ls あたりは理解している。
趣味を含めてアプリケーションを完成させた経験はないが、ifやfor文などの基本構文は理解している。数年前にプログラミングスクールのようなところに半年間通っていた。その後受託系の会社に就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。鬱病気味になったみたい...。
何か成功体験があれば自然とのめり込んでと思うんだけどなかなかスイッチが入っていないみたい。
こちら側からは、プログラマーになれば?と直接は伝えてはなくて、素人でもプログラミングできましたみたいなネットの記事をシェアーしているくらい。(心理的リアクタンス避け)
知恵を貸して欲しい。
職場で上司とハイタッチをしてしまった。相手は一回り上のPM。
フィジビリティ調査とは、システムの実現可能性を調べることを指すけれど、
PMは、多分プロトタイプ開発によるCIを狙ってるのだと思う。
典型的なウォータフォール開発がメインの業務プロセスにあって、
80%→120%への細かい微調整とレベルアップを可能にする。
設計書の山に、エクセルスクショの貼付けも健在ではあるけれど、
現物があるので、机上でデバッグを繰り返すよりよほど楽だし、そんなに辛くはない。
最も、表立って工数は積めないから"調査"の範囲内である程度動くものを求められるわけで、
異常系の処理に全てTODOを書き込んで、ワンパスを通すことに腐心する。
本来のプログラム行程はリファクタリング機能の呼び出しとコメントの追加が
主な作業だけど、致命的な欠点が見つかってロジックをごっそり変えたことはないから
火事場の馬鹿知恵は、便器の上でうなり続ける時間に匹敵するのだろう。
先日、朝の進捗の打ち合わせでお客様から出た業務アプリの改修案件について、
いつものように、とりあえず調べてみようよということになった。
システムテストまで含めて2.5人月かかるよと試算は出ていたが
俺とお前なら1週間かからないんじゃねえのとPMはこっそりうそぶく。
席に戻ったら、割り込みで申し訳ないけど、と他のメンバーに謝って
今日のお題は、QRコードを取得している箇所でバーコードも使えないかという相談だ。
QRコードを開発したのは日本人だよと、トリビアから始まった会話の中で、
そういえば、と過去に行ったシステムテストで見つかったインシデントを話す。
バーコードを読んでいる箇所でふざけてQRコードを読み込んだら
通ってしまったので慌ててバリデーションチェックに追加したんですよと。
もしかしてバーコード関係のAPI(GoogleのZxingをラップしたもの。他社開発)って
あまりその辺を意識しなくていい?あ、やっぱりそうだ。今日中に終わるかもねみたいな流れから
Bluetooth機能のIF追加などやらなければ行けないことが決まって大雑把に機能分担して
コーディングに入った。
Dドライブ下に同じドメイン配下の共有フォルダを置いてやり取りをする。
ここどうすればいい?みたいな質問をお互いのモニタを見ながら2,3回やって
ほぼ同時に作業が終わったので、二人で個別に組んだコードをマージする。
初ビルドはエラーもなく、すぐに終わった。アプリを立ち上げた後、
テスト用のバーコードやQRコードはお互いに用意してくれているだろうと無言の目線を交わす一幕も。
上司が両手を上げる。普段空気が読めない自分が、何故かこの時は自然に手が出た。
普段表情が硬いメンバーの女性がクスクス笑っていたのでよほどテンションが上がっていたのだろう。
結果として、3週間PGに時間を取るはずが、半日かからずに終わってしまった。
別の作業に戻った後も、やり遂げたという高揚感にその日はずっと酔っていた。
上司はいつも笑っていて、仕事を楽しくさせることに努力を惜しまない人だ。
同じ会社だし、お会いする機会、仕事をする機会もまだまだあるのだろうが、
その時は今の距離感は許されないだろう。
短期で人が入れ替わり立ち替わりが当たり前の職場で
自分はどこか人間関係も段々ドライに捉えるようになっていたから、
今はただこの寂しさに慣れない。
私は、ずっと IT 技術者として飯を食ってきたが、仕事が楽しいと思うことがあまりなかった。その原因について考えてみる。
私は、中学生のときにプログラミングを始めた。いまは40代なので、だいたい30年前からプログラムを書いていることになる。ただ、中学時代の私は、とんでもない「ぼっち」でプログラミング話で盛り上がれる友達がいなかった。しかも、書いていたプログラムも、開発ツールというマニアックなもので、ゲームとか楽しげなものに関心があまりなかった。プログラミングをすることは、ある種の修行のようなもので、決して楽しいことではなかったし、またそれは自分にとっては社会的な孤立の象徴であった。
社会人になった後、ひょんなきっかけで、IT業界に足を踏み入れ、気がついたら職業プログラマになっていた。才能があるのかどうかは不明だが、子供の頃からプログラムを書いてきた私は、まちがいなくデジタルネイティブであるとは言える。まあ、とにかく、コードを書くことを覚えるのに時間はかからなかった。
ただ、私はどうにもチームで仕事をするのが苦手だった。ITの仕事は、調整が多い。仕様変更は日常茶飯事だ。厳しい納期の下、ソースコードに変更を次々と加えるのはリスキーな行為で、関係者に深い信頼関係がないと、人間関係がギクシャクする。
私は、プログラムを書き始めた時、ぼっちであったので、「プログラミング=独りの作業」という思い込みがあったのかもしれない。それがゆえか、ソフトウェアの設計等に関して、他のプログラマと調整したり妥協したりすることが非常に難しかった。自分がいちばんうまくやれる、という思い上がりもあった気がする。そういうわけで、人間関係が険悪になることが非常に多かった。
最近のいくつかのプロジェクトで、喧嘩別れに近い体験をいくつかしたために、プログラミングの仕事をすることにトラウマに近い思いを抱くようになってしまった。
しばらく仕事を離れて休んでみて、いま思うのは、もうちょっと自分が柔軟になれないだろうか、ということだ。答えは決して一つではないはずだ。もう少し、他者の意見を尊重できる人間になりたい。そしてプログラミングの仕事をもっと楽しめるようになりたい。
プログラミングは、人間とコンピュータの間を取り持つ作業で、コンピュータのもつ潜在能力をこの現実社会で開花させるという重要な仕事である。時には、コードが社会を変えることもある。そういう意味でやりがいがあって然るべき仕事だとは思うんだよね。いまの私の課題は、この仕事をストレスをあまり感じずに楽しむことだ。
いったいどうしたらいいんだろうね。ペアプログラミングでもやってみるといいのだろうか?
知り合いの職場の話。
僕は組み込み系システムエンジニアなのだけど、自分の業務改善作業がとても好きだ。
キーボードを自腹で買い換えたり、メモリを自腹で増設したり、いろんなツール導入したり、GTD導入したり、職場にwiki導入してみたり、デュアルディスプレイを自腹で構築したり、仕様書とソースコードをPerlやRubyで出力して同時出力したりなど色々業務環境を改善してきた。
自分の開発環境をより開発しやすく、自分の開発工程をより完成度を高くしていく作業はとても楽しい。そういう記事を読むのもかなり好きだ。
でもずっと前からやりたいけどやれないことがある。それはペアプログラミングだ。
理由はペアプログラミングという業務改善作業には、それに賛同してくれる相手が必要で、今この職場には賛同相手は一人もいないからだ。僕の拙い説明では、「どうもペアプログラミングは悪くないらしい」ということが伝わらない。「そんなチャレンジしてる暇があれば目の前の仕事しなよ」と言われてしまう。きっと僕がペアプログラミング未経験者だからうまく説明できないというのもあると思うのだけど。
でも多分、ペアプログラミングは、「コミュニケーション不足になりがち」というIT業務の本質的な欠陥を補い得るかなり根本的な業務改善だと思う。だけど、それでも出来ない。賛同してくれる人が職場に一人もいない。だからペアプログラミングが出来ない。
「仕様書レビュー、ソースコードレビューで十分じゃないか」そう言われてしまう。十分か、十分じゃないかなんて試してみなければわからないじゃないか。
今のところ、地道に「ペアプログラミングやりたいやりたい」とことあるごとに周りに言って回る日々をすごしています。