Webアプリに適したものとそうでないもの

会社で自分が勧めて、neworkを使ってみてた。

nework.app

 

結構評判が良くてみんな使ってくれてたんだけど、slackにhuddleができて、neworkが有料化するタイミングもあって、huddleに移行しちゃった。

slack.com

 

neworkのコンセプトはとても良いし、個人的に、チームの外のひとが気軽に会話内容聞ける「聞き耳」機能は組織の風通しをよくする意味でとても良い、と思っていた。古い日本の会社でこれを作り出せるってのはとてもすごいと思う。継続して応援はしたい。

 

ただ、特にネットの状態が悪い時なんかは音質の劣化が激しい。出入りの際とか画面共有時にブツブツきれるみたいなものが解消されず、また、聞き耳機能みたいな物だったり、本当の雑談は一部の人しか活用できず、huddleと比較したら、有料Slackに追加でお金(手続きのコストも)を払ってまで導入するのはないな、という判断になってしまった。

 

個人的にWebアプリでやるべきものとそうでないものってあると思っている。RedmineみたいなのはWebと親和性高い。Webアプリとして使うもので、それが強みになるし、ホスティングサービスも有料でうまく行く。

 

一方でZoomがそうだけど、音声通話みたいなものってWebにしておくメリットってほぼないし、音声制御とかはネイティブアプリとかデスクトップアプリでガッチリ制御した方がいいと思う。huddleもweb版では利用できないっぽい。多分、技術的難しさがあるんだと思う。neworkは個人的にデザイン刷新なんか後回しにして、デスクトップアプリの開発に注力するべきだと思っている。

 

Webの思想と合わないってのはVS Codeもそう。JavaScriptとかは別かもだけど、Javaみたいな静的型付け言語を扱うのに、ブラウザベースのエディターってちょっと厳しい。あれが有料ならお金を払う人は少ないと思う。Intelij IDEAみたいにバリバリのデスクトップアプリにした方がいい。

 

同様に、業務システムなんかも基本、Webアプリとは相性が悪い場合が多いんじゃないかな、と。JetBrains Tool Boxみたいなアップデートを簡易にする方法を検討していくのがいい気がする。UXを求めるんならそこはコストのかけどころと感じる。「Quality is Free」なのだから。

 

 

 

 

APIテスト自動化ツールKarateをBDDツールとして使う

Karateとは

Karateは主にe2eテストを自動化するツール。cucumber的なfeatureファイルを書くとそれを実行できる。WebAPIのテストがその中心的ターゲット

github.com 

graalvmのjsライブラリで実現しているっぽいので、featureファイルからJavaも呼べる。

 

個人的にBDDというのが結構いいと思っていて、ビジネスルールの仕様なんかをビジネスサイドと意識合わせする場合に使えると思っている。アンクルボブはFitnesseというツールを作っている。

FrontPage

Fitnesseは名著『実践アジャイルテスト』でも紹介されていたもの

   

Fitnesseはアイデアはいいんだけど、wiki文書にテスト埋め込むとかまでしなくていいと思っていた。もっと簡便でメンテしやすい開発者フレンドリーなLiving Documentないかなあ、と。有名どころでは、Cucumberとかがあるんだけど、結局テストコードをドキュメントに合わせて2重に書くので、正直使いたくない。

Karateは簡潔なDSLAPI呼び出しの実行からアサーションまでをfeatureファイルに記述できる。かなり文書性が高く、テストコード特有の煩雑なノイズがない。普通に開発者が使うテストツールとしても使えると思う。

一つ思ったのが、ビジネスルール単体の仕様についてkarateで同様にかければユーザーとのコミュニケーションに便利なのではないか、と。 加えてSpring のBeanもテストしたいと思ってやってみた。

featureファイルはこんな感じ。

Feature: ビジネスロジックのテスト


  Background:
    * def CalcTestsRunner = Java.type('feature.calc.CalcFeatureTestsRunner')
    * table example
      | 入力値1 | 入力値2 | 期待結果 |
      | 10     | 20     | 30     |
      | 50     | 100    | 150    |
      | -10    | 10     | 0      |

  Scenario: シンプルなシナリオ
    * def x = 10
    * def result = CalcTestsRunner.testAdd(x,20)
    * assert result == 30

  Scenario Outline: データ駆動シナリオ データ例 <入力値1> + <入力値2> の結果は<期待結果>になる
    * def result = CalcTestsRunner.testAdd(<入力値1>,<入力値2>)
    * assert result == <期待結果>
    Examples:
      | example |
 

テストコードはこんな感じ

package feature.calc;

import com.example.demo.DemoApplication;
import com.example.demo.calc.CalcService;
import com.intuit.karate.junit5.Karate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(classes = DemoApplication.class)
public class CalcFeatureTestsRunner {

    static CalcService calcService;

    @Autowired
    public  void setCalcService(CalcService calcService) {
        CalcFeatureTestsRunner.calcService = calcService;
    }

    @Karate.Test
    Karate testCalc() {
        return Karate.run("calc").relativeTo(getClass());
    }

    public static int testAdd(int input1,int input2){
        //仕様を実現するコードを書いていく。流動的で良い
        return calcService.add(input1,input2);
    }

}

featureファイルにはプロダクションコードのクラスを直接書かない。リファクタリングするとき面倒になるから。 こんな感じで実行できる。

f:id:masatsugumatsus:20210319144510p:plain

レポートはこんな感じ

f:id:masatsugumatsus:20210319144755p:plain

githubにアップしました。

github.com

イメージ/観念と思考/行動

イメージ/観念にもとづいて人は認知し、思考/行動する。また、認知→思考/行動というのは、意識する前に開始されていることも多い。
 
その意味で、自分たちがもっているイメージ/観念というのは意識できるものもあれば、無意識にしか存在しないものもある。どちらも我々の思考と行動の基盤となっている。
 
思考と行動を変化させようと思ったら、様々なtryをして、自分が実際に持っているイメージや観念を探求する必要がある。
 
色んな事に頑張ってチャレンジすることも有用だが、最近はそれよりも日常の活動や小さな思考、行動の気づきを深めていくことの方が実りが多きく、楽で、早い、と思うようになった。
 
最近、やっているのは、右と左の観念を廃して、景色をみる、ということ。空間全体を把握しようとしだすから、もしかしたら、生来のものと思っていた方向音痴を直せるかもしれない。
 
また、他者からのフィードバックや他者との比較も有用。自尊心を脇に置いて、自分と違う結果にどのように至っているのか、というシステムを探求する。

ワインバーグの成長のプロセスモデル

スキルの熟達についてのワインバーグのモデル

元ネタ

 

 

  • 成長はきれいな直線を描かない。
  • あるレベルまで成長すると踊り場に到達する。その時、新しいやり方を試すことで飛躍する。
  • 新しいやり方に習熟するまではパフォーマンスは落ちる。

 

 

f:id:masatsugumatsus:20210228215008p:plain

 

 

要求定義の双子プロセスについて

 
 
要求の作成は、アジャイルだろうと、ウォーターフォールプロセス的なシーケンシャルアプローチだろうと必要だ。要求開発をソフトウェア開発と並列して進行する別のプロセスとして管理することを提案している。
ワインバーグは、どのような製品であったり、組織として採用しているプロセスがどうあれ、
  • 製品の使用者からのフィードバック
  • 開発者からのフィードバック
  • ビジネス目標の変化
などが恒常的に発生しているという観察した。
 
そのため、プロダクト開発のプロセスとは「別」に要求開発のプロセスも管理しようというのがワインバーグの双子プロセスの提案である。(正確にはParnasとClementsの記事に基づく。下記の図は『ワインバーグのシステム変革法』 図15-5からの図を少し改変したもの。)



たとえば、Scrumなどでは要求はPOが定義し、開発者に提示することになっているが、開発者に説明できる要求をPOが手にするまでには複雑なプロセスが必要だ。それには、多くの場合、政治的な交渉も含まれる。
 
 
要求開発プロセスを別のプロセスとして定義することは、ブラックボックスとなっていいるプロセスを明確なものにし、政治力などによって左右されるのではなく、要求開発のプロセス改善を可能にする、という意味がある。政治力というのは、ビジネスサイドのことばかりではなく、自分の判断で要求を取り込む開発者もある面では政治力がある。ようは、ソフトウェア開発プロセスに対する影響力を持つ人が要件を決めてしまうということになる。
 
 
詳細な要求開発のプロセスは例えば、次のようなものだ。(『ワインバーグのシステム変革法』 図16-5からの図を少し改変したもの。)
 

 
要求開発には開発者もステークホルダーとして参画する。主に開発することで得た知見をもとにした要求アイデアの提示、一部の開発者は要求定義のレビューにも参画する必要があるだろう。シーケンシャルプロセスで同一リリースに要求が追加されるのなら、変更管理となる。
 
アジャイルプロセスにおいては分類、高次設計、優先度設計などはソフトウェア開発プロセスに含めてもいいだろう。Scrumなどのソフトウェア開発プロセスの中で仕様化するプロダクトバックログリファインメントで行うから。
 
要求開発のプロセスそのものを管理し、様々な情報を基に最終的な意思決定を行うのは、ワインバーグはマネージャーだといっている。おそらく、プロダクトの真のオーナーであるプロダクトマネージャーだと思う。彼らはプロダクトに対する最終的な意思決定を行い、おそらく、その結果とプロセスについて、ステークホルダーに対して説明責任を持つ。日本の組織の場合はこのロールが不在のため、うまくいかないことが多いように思う。
 
現在では、どういうプロセスモデルでソフトウェアを開発するにせよ、プロジェクトが継続的に立ち上がるってことは避けられないように思う。こうした要求開発プロセスを切り出すことができ、そしてプロセス改善を行うことがおそらく、アジャイル開発にするか、、柔軟なウォーターフォールにするか、という選択よりも意味のあるものなのではないかと感じている。
 
 

感情と意志についての現時点での理解

単なるメモ。

  • 人間は環境に実在するアフォーダンス(価値)を求めて行動する。
  • アフォーダンスには認知や理解も含む
  • 価値を求めて環境に働きかけ、環境を変え、望むものを手にする
  • 感情は行動に付随するもので本質的には動因ではない。
  • 感情は行動を規制し、同一の行動を繰り返したり、安定性を与えるために人間の行動を「縛る」。
  • 幸福感、気分の良さ、悪さ、興奮などの感情は手掛かりになるが、価値とは別のものであり、それを目的にすると誤る
  • 最も効果的なのは感情を行動と連動させること。行動をサポートさせること

 

演技メソッドとの関係

 

ロバート・フリッツのメソッド

  • ロバートのいう動的衝動(Dynamic Urge)はまさにアフォーダンスとイコールと考えてよいものと思われる

 

参考文献 

文化的―歴史的精神発達の理論

文化的―歴史的精神発達の理論

 
俳優修業 第1部

俳優修業 第1部

 
On the Technique of Acting

On the Technique of Acting

  • 作者:Chekhov, Michael
  • 発売日: 1993/11/01
  • メディア: ペーパーバック
 
Your Life as Art 自分の人生を創り出すレッスン
 

 

オデッセウスの鎖―適応プログラムとしての感情

オデッセウスの鎖―適応プログラムとしての感情

 

 

 

ヴィゴツキーの情動論とその意義

最近、仕事の合間にヴィゴツキーの本を読み直し+新しい本を買って読んでいる。 この記事では、彼の情動論についてまとめる。

理性と感情の対立についての古い議論

感情は主流の哲学者や倫理家には評判は良くない。 古代の哲学者や倫理家の多くは、放縦や、感情に任せて行動することの愚かさを説く。

そして、理性による感情の制御というのがお決まりの教訓だ。

「ストイック」という言葉の語源となったストア派の哲学に傾倒したローマ皇帝マルクス・アウレーリウスは自省録の中で、わが子を愛する感情を必死で制御しようと試みている。 一部の仏教理解では愛欲は苦しみのもとであり、断ち切るべきとされる。

人間にとって、感情は動物的な下位機能であり、理性によって制御されるべき、というのが古来の多くの倫理観に流れていた思想だ。

スピノザとクルト・レヴィン

自分が学生時代にスピノザにほれ込んだのは、彼が 「人は感情によって行動し、理性は勝てない」 と断言していたからだ。確かスピノザの『国家論』だったと思う。

国家論 (岩波文庫)

国家論 (岩波文庫)

感情が行動を決定する、というのは次の本にもでていた。

理性は感情を刺激するだけなのだ。

結局、人の行動は様々な感情の葛藤や相克の結果決まる。

こうした観点はレヴィンのトポロジー心理学にも通じるだろう。

『エチカ』ではスピノザは人の行動の動因を見事に整理して、一元的な理屈で 徳や不徳と呼ばれる特性を説明してみせた。感情は放縦の原因であるだけではなく、徳の源泉でもあるのだ。

ヴィゴツキーの情動論

ヴィゴツキーは当時の心理学における情動分析がその根底には感情を下等な本能的な機能とみなす哲学的な問題があるとする。

日本語訳の本はデカルトスピノザとの対話と書いているが、基本はデカルト的なものの批判であり、スピノザ的なものの擁護だ。

 ウィゴツキーの論点は以下の点と思われる。

  • 感情が大脳の機能であり、大きな恐怖や興奮のほか、微細な愛情や満足のような感情と本質的には異ならないこと。
  • 情動は人間のエネルギーの源泉であり、人間行動に不可欠なものということ
  • 注射針に対して腕を差し出すような理性的な行為や道徳的行為といった自己行動の制御も、脳内で構築された複雑な反応体系に基づくもので、発達した情動機能の産物であること

与えられた環境を変革していくような創造的な活動や困難に打ち勝つプロジェクトをやり通す力は感情を廃した「理性」のようなものからは生まれないのだ。

「共感の大切さ」を超えた情操教育

ヴィゴツキーは学校の場などで、感じることを軽視してはならないと説く。学習内容の楽しさを味わうために好奇心を刺激するように説く。 また、芸術教育についてもその意義を語っている。

企業の人材育成や、現代の学校教育の場でも、感情の大切さみたいなことが説かれることは多い。 一方で、個人的に危ぐするするのが、それが他者への思いやりや共感を過度に協調し、結局日本的な「みんな仲良く」とか「空気」に逆らえない人をつくってしまっているのではないか、ということだ。

ヴィゴツキーの情動に関する教育は、感情の機能をみとめ、それを克服して、自己の行動を制御することも含む。 共感のようなものも大事だが、「空気」のようなものに生み出される感情やその時々の誘惑に抗して、自分の意志や判断を貫くことができる人格を作ることが一種の脳の機能なのだと説く。

芸術教育についてのヴィゴツキーの意見

彼は芸術作品はあくまでフィクションであり、そこから教訓や道徳を引き出そうとすることに批判的だ。 芸術を芸術として創造的に鑑賞することでその意味があるのだという。

学校の教科書から文学が消えることについて、色んな意見があったけど、ヴィゴツキーの議論を根拠にした議論は聞いたことはなかったな。

久保建英にみるポーカーフェイスと激情の両立

サッカーの久保建英マニアの一人であるが、こんな動画がある。


「久保建英にオススメのクラブとレアル・マドリー復帰のための最短距離」|木村浩嗣(在スペイン・ジャーナリスト)の移籍先診断【2】

久保建英の動じないメンタルについて、絶賛している(比べられたジョアン・フェリックスはかわいそうだが。。。)

ただ、久保マニアなら知っているけど、久保建英はもともと激情家だ。 チームが大量得点している時、自分一人だけ点をとれなくて号泣した、とか、バルサが興味をもっていないことを知って泣き出したとかの逸話には事欠かない。 今シーズンでも、残留争いの終盤、敗戦なのか、決定機を外したことなのか、ピッチを去るとき、地団駄を踏んで悔しがる様子をみせている。

プレイが常にブレず、冷静に見えるのは、要するに自分の情動のエネルギーをプレイに集中させることができているからだろう。

EQというのは対人関係に関するものだけではない。個人の自分自身の行動の制御という意味でも大きな意味をもっているのだ。

芸術との関係?

久保は幼い時から読み聞かせを大量に受けて、本人も読書家みたい。 小説をよく読むとか。ヴィゴツキーによれば、芸術を味わうことで感情が浄化され、感情のエネルギーを秩序だった行動に向かわせることができる助けになる。 そういうのも彼の人格能力の高さに寄与しているのかもしれない。