友達プログラミング

技術力がゼロでも、AIを活用し、アドバイスを貰い、計画を立て、設計をし、テスト駆動開発をして、AIとのペアプログラミング、AIを利用したモブプログラミングでプロジェクトを完成させる。

# 友達プログラミングとは

モブプログラミングの言い換え。
価値観プログラミングのほうが実態に近いが、わかりやすくするため友達プログラミングとした。
友達もしくは同じ技術力、同じ価値観、同じチーム（夫婦、家族、学校、グループ）知り合い同士で行うプログラミング。
モブプログラミングの促進、普及。

これは労働者側の立場に立っての仕事のしかたの提案です。
IT技術者が最大限の幸せな人生を送る手段の一つとして。
一生涯技術者として生きていくために。
現場からの叩き上げ、技術者畑の経営者としての足がかりに。

いままではモブプログラミングといえば、会社内でグループを作ってプログラミングを指していることをイメージしている人が多いと思うが。
これは逆で、友達同士がプログラミングを行うことを指す。
だったら最初からチームを作っておくほうが手間暇がかからない。

肝は、友だちになってから仕事のプログラミングを行うこと。
そうすることによって、
従来のモブプログラミングにプラスして
仕事が楽しい
ストレスが減る
最初のコミュニケーションが不要
技術のすり合わせが不要
お互いの技術力がわかっている。
高いコミュニケーション能力は不要
コストの削減
交渉力の強化
能力の平均化、当たり外れが少ない。
勉強会を開催しやすい。
同じ技術、同じツール、同じルールを使用する。

これをオアシス宣言下のVNSで活用する。

# 現実で起きている事

https://tech.smartcamp.co.jp/entry/discord-to-gather

理想的な（？）リモートワークでのモブプログラミング

# 仕事の形態
グループ派遣型システムになる。

現状では派遣は１人か２人をまとめて送り込んでいるが
実は派遣会社側で初めて会うというパターンが多い。
互いに名前以外相手のことを何も知らない。
自然に飲みュニケーションでコミュニケーションを取っていた。
（コロナ後はよく知らない）

# 話しかけ方
枕詞に気をつける
質問があるんですが・・・
相談があるんですが・・・
ミスしてしまったんですが・・・
緊急なんですが・・・
提示連絡ですが・・・
雑談なんですけど・・・

と話しかけた時自分が何をしたいか目的を告げて話し始める
雑談なら今は集中したいと断ったりできる。
枕詞をつけてもらうと、何が目的なのかすぐ判断できる。


# その他

チームが解散するリスクが低い
同じ技術を磨いていける
仕事効率が高い
互いの弱点を補い、教えあう関係を作り育てる。
一人が欠けてもその穴埋めをチームで行う。
他の場所（会社、仕事場）もそのまま行ける
コミュ障でもチーム内にコミュ強がいれば安心できる
たとえば、体外的な交渉などをすべてまかせる
友達が作れる（趣味、価値観が合う）
自由にいろんなチームを渡り歩くことができる
自分や相手の技術力やその他をきちんと評価する義務が生じる。
小さな労働組合にもなる
同じ会社内では長期間（年単位）働いても給料の変動が少ないということを無くしたい
尊敬できる人とチームが組める
休日のバーベキューやハイキング、登山等イベントが組みやすい。
休日を取りやすい。
時間を自由に都合ができる
自分たち（もしくは会社側が）で課題を作って、自分たちで問題解決をする。
相互（自分たち同士、自分たちと会社）に技術評価など様々な評価を行う。
将来見込みがありそうだが、未熟なものとグループを組む
１グループ単位で雇ってもらう、分配は各グループが決める。
学生でも、求職中、就職中、未成年（もうすぐ成年見込み、もしくは保護者の許可有り）でも参加が可能
グループを作り技術力を評価するまで一定の期間が必要。
会社側からも参加者（特に評価者として）を募る。
引きこもり対策、孤独中年対策、未婚者対策、既婚者対策。
リモートワーク対策、地方求人対策。
スキマ時間活用対策、外国人就職問題対策。
外国アウトソーシング、ネットワーク対策。
仕事場では友達は作りにくい、趣味が合うとは限らない
勉強会を提案しにくい
各家庭の事情を知るまで時間がかかる
年齢差を気にする、気にならない。
自分たち技術力のアピールができる
他のモブプログラミング経験則から人数は最大５-６人まで
役割を振り分けた時、その人がその役割のリーダーになって仕事をする人を振り分ける。
ランダマイザーを導入して各自の仕事を平均されるようなBOTを作る。
ランダマイザーとはドライバー、ナビゲーター、チューター、マネージャーなどの仕事の振り分けを行うシステム。
老後でも老眼でもボランティアでも参加できる。
身体の動作が良くない人でもリモートワークで参加できる
海外でその国の国籍がなくても参加ができる。
報酬が仮想通貨など各種支払い方法を自由に選べる。
相互評価を行う。
仕事場の会社の評価情報の収集が可能。
会社にお試し期間を設けてほしいとお願いをする。
逆に会社から一緒に働く人にモブプログラミングチームに監査役として参加してもらう。
そして相互に評価を行ってもらう。
技術がしっかりしていれば年令に関係なくチームに組み込める。

将来のNPO法人化へ

# 技術者の幸せ

https://yuchrszk.blogspot.com/2022/07/google.html

>幸福に関する最も優れた研究は、経験サンプリング・プロジェクトです。300万点のデータセットを作成した研究によれば、たいていの人は「自然の中、特に湖の近くにいる方が幸せである」ことがわかった。

>また、ハイキングやライブへの参加も幸せにつながりやすく、その際は恋愛相手や友人といるほど幸福度は高まり、逆に仕事の同僚といても幸福度は上がらない。

>以上のデータはとても当たり前のようだが、私たちの多くは、このような当たり前のことをせずに、好きでもない仕事を、好きでもない人たちと一生懸命にやり、自然の中で過ごす時間はほとんどなく、そのくせソーシャルメディアに何時間も費やしている。このような行動は人を不幸にしかしないという研究結果は多い。

>つまり、幸福をもたらすものがいかにシンプルであるかを念頭に置き、現代生活の雑音に惑わされないことが幸福の秘訣といえる。データにもとづく人生の答えは、摂氏26度の晴れた日に、美しい水辺を眺めながら、好きな人と遊ぶことだ。

社会に出て最も時間を使うのは仕事の時間という人が大部分ではないだろうか？
そして幸せになるためには、嫌な相手よりも友達同士で作ったほうが楽しいし効率も良いと思う。



## プログラミングについて
現代のプログラムは個人で何かを作る分にはコツコツと調べればいいが。
ある程度の大きさになると必ず分業化したほうが効率がいい。
そして分業化する場合プログラミングでは、モブプログラミングが一番の最適解ではないかと考えている。

https://note.supporterz.jp/n/n72346a052ee0

# リソース効率とフロー効率
モブプログラミングでの2つの考え方
直感的にリソース効率で考えてしまう。
そこをマインドチェンジ（物の見方や考え方を変える）してもらって
フロー効率で考えてもらう。

詳しくは下記の記事で、

https://qiita.com/javano/items/51bab8311af86868f088


# 海外人材との付き合い方

https://news.yahoo.co.jp/articles/39c68a6f9d279bf4d02b05081921821e3dc54b5d

数学的能力があって、言語的能力（例えば日本語）が低い場合にこのシステムは有効だと考える
基本的に数学的能力とプログラミング能力があるならば言語能力は長期的な目で見ることが可能

# 海外のモブプログラミングで成功している会社

https://qiita.com/taqro/items/4ed3f29b004634e2f1fe

> このリモートワークを機能させるためにGitLabには徹底的な文書化と情報公開の文化があり、それらの文書は社外の私たちでも見られます。

マニュアルを公開しているので良い所はどんどん取り入れる。

https://www.publickey1.jp/blog/20/120066gitlab.html

## 欠点
交渉が得意な１人しかいない場合、その人ばかりに負荷がかかる。
その時は交渉が得意な人が交渉事が未熟な人をとも立ってスキルを育てる。
努力が足りないとチームから外される。
技術的ねずみ講になる
技術的ねずみ講とは自分と同じぐらいの技術力もしくはそれ以上の人を誘い始める。
技術者を集めれば集めるほど自分にとって有利なチームを組むことが可能になる。
一種の青田刈りのようなもの。

# 予想
これはvns.blueが成功しないと成立しないだろう。

オアシス宣言

https://github.com/masakinihirota