data Either a b = Left a | Right b
head' :: [a] -> Either String a
head' [] = Left "empty list"
head' (x:xs) = Right x
使用例は下記の通りです。
ghci>:t Right 123
Right 123:: Num b => Either a b
ghci>:t Left "failure"
Left "failure":: Either [char] b
ghci> head' [1,2,3]
Right 1
ghci> head' []
Left "empty list"
...
at com.example.ArchitectureSpec.ドメイン層はユースケース層、インフラ層からのみ呼び出される(ArchitectureSpec.groovy:47)
Caused by: java.lang.AssertionError: Architecture Violation [Priority: MEDIUM] - Rule 'classes that reside in a package '..domain..' should only be accessed by any package ['..usecase..', '..domain..', '..infrastructure..']' was violated (9 times):
振り返ってみると制度運用開始時点ですり合わせすべきことでしたが、その時点では考え及ばず、遅ればせながらこの時点で言語化を行いました。
過去の私自身も含め、MBOというとExcelで作られた目標管理シートをイメージされる方は非常に多いと思います。
しかしMBOを提唱したドラッカーは、Management by Objectives and Self-controlと定義しており、MBOを「目標と自己管理によるマネジメント」というマネジメントの哲学として位置づけています。
そのため、マネジメント哲学としてのMBOの共通認識を作るため、下記のように明文化し、一次評価者と認識のすり合わせを行いました。
WEB会議の場合は、コミュニケーションのレベルを参加者で合わせることです。参加者が多く集まっている場があると、人数が多い箇所や司会役がいる箇所がメインとなり話し合いが行われます。また、カメラがONできない場合は、全員カメラをOFFにする工夫をしてもいいと思います。やはり、face to faceの方がコミュニケーションは円滑に進みます。