2016年6月13日月曜日

Agile Japan 2016

(日本語は下記を参照)

I attended Agile Japan 2016 on May 31.
I want readers to see the materials of the sessions, many of which are uploaded on
http://www.agilejapan.org/program.html
(though written in Japanese).
I would like to write what I thought, although it may be biased.

What you can do and what you cannot / what you should do and what you shouldn't



If an individual or a team can be anything you want, how to introduce agile development is not a problem. Just "Introduce it" is sufficient. On the other hand, if you cannot change, we do not have any hope.
I took the presentations in Agile Japan as a quest for solution to the problem of what is the entry point of agile development and what kind of agile development is possible as a result.

"The strange path of a new scrum master and a QA guy" is a case in which Mr. Toyoda, the scrum master became a QA (Quality Assurance) and showed a model of a QA in agile development. He did not have experience as a QA and other QA members only had experience in waterfall (WF) process. They learned from each other and communicate with developers and product owners (PO).
As the QA sees software from customers' point of view, they can feedback to PO what they recognize during the process of test analysis and design. They can make an effective test plan if they incorporate developer's viewpoint. While the focus of attention was on the QA, the solution here was to make an agile expert join in the project.

"Break the wall of culture! A genuine DevOps journey that is possible in Japan" was a session with enthusiasm. "Installation of culture" was a keyword here. As an ex-anthropology student, I don't think it is possible to do it easily. It reminded me of Pierre Bourdieu's argument of habitus, its formation through daily activities and reproduction of social hierarchy.
The presenters were fully aware of the difficulty and showed the process to install "culture" focusing on one element of the culture of agile development, "Be lazy". In short, it means how to avoid doing needless things. In the next session, they held a workshop to try value stream mapping (VSM) to eliminate them. VSM shows operation time, lead time (LT) and produced value of processes and its relationship with each other. The point is that we can shorten the LT by locating processes that does not provide values and remove it, and by automating processes if there is a large gap between operation time and the LT.
Review processes were major foci of attention in many teams including mine. Shortening the time from the end of the previous processes to reviews, reducing the repetition of suggestion and fixation, and abolition of review itself (although not always) were what we can do to eliminate wasteful practices. VSM is a method to make what we aren't usually conscious the focus of attention but we cannot make every problem to the fore. Here also an agile coach joins in the team to improve processes (and culture).
From social scientists' or philosophers' eyes, there is infinite information in our daily activities and we select some of them, interpret them and present as "facts". In this sense, VSM itself may depend on expertise of its users and the expertise means how to define stream of events to processes. It may be interesting to see the process further.

Mr. Ushio, one of the presenters of the DevOps session, listed "breaking of 'should'" among elements of agile culture, which derives from Western one. He said it is not good to think that we should do this by that day whatever happens. (Japanese often think that we must do something at any rate. "Breaking of 'should'" is an antithesis of this mindset.)
Presenters of the session "Making agile more agile: Agile mystery analysis makes you find something" also thought that consuming "buffer" days itself is inevitable even if it exceeds the original expectation and what is important is that the management helps teams with less buffers. While agile development usually tries to satisfy deadline and quality by postponing features (functions), in this case the solution was to make other teams help the teams in critical conditions.
The famous "The Mythical Man-Month" suggests that adding work forces to late software projects is not a good solution so I think the scope of this solution is not universal but it seems to work well on the project.

---

5/31(火)に行われたAgile Japan 2016に参加してきた。多くのセッションの資料は
http://www.agilejapan.org/program.html
にアップロードされており、またレポートも出ているので、バイアスはかかっているが思ったことを書いてみる。


私が出席したセッションは以下のとおり(午前中は不参加)。品質や組織、文化に関係したものを中心に回った。
* 「新米スクラムマスタとQAおじさんのアジャイル珍道中」
* 「日本型ハイブリッドアジャイルの導入と実践」
* 「アジャイルをもっとアジャイルに ~ 足りない何かが見つかる、アジャイルミステリー分析 ~ 」
* 「文化の壁をぶち壊せ!日本でも出来る本物の DevOps ジャーニー!」
* 「効果的な自働化を目指す! Value Stream Mapping 実践ワークショップ」


できること、できないこと/すべきこと、すべきでないこと



もし個人が、あるいはチームが望むような何者にもなることができるのであれば、アジャイル開発の導入が問題になることはない。「導入せよ」の一言で済む。一方変わりようがないのであれば、アジャイルを導入は成功するはずがない。両者の間にあって、何を突破口とすれば、どのようなアジャイルが導入できるか、という問題に対する答えをそれぞれが模索していた、というのが全体を通しての感想である。

最初に聞いた「新米スクラムマスタとQAおじさんのアジャイル珍道中」ではスクラムマスタである豊田氏が自ら(経験がない)QAになってアジャイル開発におけるQAのあり方を示す、という事例である。QAとしては未経験な発表者と、ウォーターフォール(WF)での経験のみがあったQAメンバーが互いから学びながら、開発やプロダクトオーナーとコミュニケーションしていく、という過程を紹介していた。QAは顧客の視点に立てるので、テスト分析、設計の過程で気づいたことをプロダクトオーナー(=要求・仕様)に対してフィードバックできる。また開発視点も取り入れることで効果の高いテストを計画できる。QAに焦点が当たっていたが、ここでの解決策はアジャイルの経験者を外から人を入れるということだった。

「文化の壁をぶち壊せ!日本でも出来る本物の DevOps ジャーニー!」の発表者の一人である牛尾氏はde:codeにも登壇していたようだし、何度かブログも読んだことがあるので全く初めてではなかったが、このセッションは非常にテンションが高かった。ここでは「文化のインストール」がキーになっていた。(1年前に人類学を学んでいた者としても)文化がそんなに簡単に習得できるものとは思えないが、それは承知の上で、アジャイル開発の文化の中でも特に"Be lazy"にフォーカスして、どのように導入するかを紹介していた。簡単に言えば、無駄なこと、必要がないことをいかにやらないかである。そのための手法として次のセッション(牛尾氏は引き続き登壇)ではVSM(Value Stream Mapping)をワークショップ形式で試してみた。VSMは各工程がどれだけの工数、リードタイムでどのような価値を生み出しているかと、工程間のつながりを示したものである。価値がはっきりしないものがあればなくす、工数とリードタイムに大きな差があれば自動化などで差をなくすことでリリースまでのLTを短くできる、というものである。私のチームもそうだったが、レビューに焦点が当たり、前工程終了からレビューまでの時間を減らすことと、指摘事項⇒修正の繰り返しを少なくすること、そして必要ない場合はレビュープロセス自体をなくすこと、などが無駄をなくすためにできることとして挙がった。VSMは普段意識したいないものを意識させるための手法であり、時間が短かったということはあるが、自分たちで考えるだけで問題がすべて明るみに出るわけではない。ここでも導入にあたってはアジャイルコーチが入っている。

DevOpsのセッションで、アジャイル(西洋)の文化として挙げられていたものの中に「"should"の破壊」というものもあり、アジャイル導入にあたっても、いつまでにこれをやらなければならない、と考えて無理をしてはいけない、といういう話だった。「アジャイルをもっとアジャイルに ~ 足りない何かが見つかる、アジャイルミステリー分析 ~」でも想定以上にバッファが消費されること自体は仕方ないと考えていて、それに対してマネジメントが支援する、というやり方だった。アジャイル開発では通常プロジェクトが予定通り進まないとき機能を削ることで納期と品質を守ろうとするが、発表された事例では比較的余裕がある(クリティカルチェーンではない)チームが助けることによってプロジェクト全体として解決する、ということだった。「人月の神話」の話を聞く限り、この方法が常に適用できるのかは疑問だが、発表事例ではうまく機能した、ということだろう。

(以下は英語版にはまだ書いていない部分)
一方、「日本型ハイブリッドアジャイルの導入と実践」は現実路線。SIを中心とする、日本のソフトウェアの産業構造を前提として、その中でアジャイルの要素をどのように取り込んでいくかという話。最初の要求・仕様の部分と最後のテストについては(ある程度の柔軟性を持たせながらも)基本的にWFにして、中間の設計・実装の部分をアジャイルにしてイテレーションを繰り返す、という方向性を示していた。この方法のメリットとして、契約内容を大きく変更せずに済むこと、スキルが高くない開発者でも開発できることを挙げていたが、正直この考え方にはあまり賛成できない。確かに、航空・宇宙や自動車など高い信頼性を要するソフトウェアでは多少利便性を犠牲にしても仕様変更を少なくして安全性を高めるという方向はありだと思うが、それ以外では既存のSIerの仕事を守るだけの後ろ向きのやり方にしか思えない。海外のエンジニアは情報工学を学んでいて優秀だと話していたが、日本のエンジニアが人件費が高くスキルが低いとしたら、それでも仕事になっているのは日本語の壁があるからだけである。(自分自身への警告も含めだが)個人として、また業界としてアジャイルに適応するか、あるいはアジャイルでは実現できないメリットを出せるかを考え、それができないのであれば別の業界に移るより仕方ないのではないかと思った。


何のために働くか



「新米スクラムマスタとQAおじさんのアジャイル珍道中」ではチーム内の、「アジャイルをもっとアジャイルに ~ 足りない何かが見つかる、アジャイルミステリー分析 ~」ではチームを超えた協力関係を築くことが成功のかぎとして挙げられていた。ここではチームメンバーは、またチーム同士は協力し合うべきであり、また(条件さえそろえば)自然と協力するようになるものである、という考えに立っているように思える。「文化の壁」の資料でも、日本は基本的にアジャイル導入が難しいが、「個人の自立」に関してだけは(個人主義が弱いため)アジャイルが導入しやすい、ということになっている。「アジャイルミステリー分析」では納期に間に合いそうもないとシグナルを出せば助けてくれるという仕組みを作った、と話していた。そうしたら怠けようとする人もいるのではないかとも思ったが、そうした懸念については触れず、むしろチームが困ったときに助けてくれたら、次に他のチームが困ったときに助けたくなる、ということだった。

一方、VSMのセッションではどうやって関係者を説得するかという問題も質問に挙がっていて、その人の価値観に合わせて「プロジェクト成功で昇進できる」「夕方5時には帰れる」などメリットを説くと答えていた。こうした相手の個人的な利益に訴えることはアジャイルやDevOpsを推進する上で障害になるとは考えていないようだ。実際海外のアジャイル開発では「楽しむ」ことが重視されているようで、「納期もそれほど気にしない」とのことだった。先に楽しむことがあって、そうすれば後から協力や規律はついてくる、ということだろうか。今回関連した話は聞かなかったが、プロジェクトが回る仕組みを作る際にインセンティブの問題も含め、マネジメント、人事・評価、「文化」、技術、個々のエンジニアのスキル、その他各方面の問題に対処しなければならないとなるとさらに対応が難しくなるのではないかと思った。


その他


「Be lazy」はともかく、アジャイル開発の「楽しむ」ことやチーム全体のアプローチが、成果主義や厳しい競争など、海外(特に米国)について聞く、少なくとも一見相容れないような側面とどのように組み合わされているのかはよくわからなかった。

2016年5月28日土曜日

Jenkins

(日本語は下を参照。)

I am now using Jenkins for the first time in a few years.

Jenkins is a CI (Continuous integration) tool well known among engineers.

When I started to use Jenkins again, I feel like thinking about what is required if I have to make a tool like Jenkins. Automated testing of various levels including unit and acceptance testing, acquisition of metrics of source code, generation of product such as executable files are what we want to do after commit to repository.

CI means automation of a series of works like them. For that purpose, the system have to call version control system, testing automation tool, metrics tools, build tools, and so on. However, depending on projects, programming languages as well as tools for various operations differ. So it is necessary to provide interface in which various tools are called and results are retrieved. Thus "separation of interface and implementation" is realized.

While setting corresponds to code base, results are generated for each build. What is needed is to obtain results of each operations in each build and display them so that users can understand easily, probably by visualization. We want to see history as well as result of each build for tests and metrics, for example.

In addition, it is necessary to manage plugins, machines and users.

As I see the actual system (of Jenkins), although I cannot understand details, my idea is not wrong as a whole. Jenkins is, in good sense, a simple system I can understand the underlying idea easily.

I want to think about the system our company develops in the same vain, but it seems to be more difficult than thinking about Jenkins.


最近何年かぶりにJenkinsを使うことになった。(Jenkinsはエンジニアの間ではよく知られたCIツールである。)

そのときなぜか自分でJenkinsのようなツールを作るとしたら何が必要か、考えてみたくなった。 リポジトリにコミットが入った後、通常行いたいこととしては、単体から受け入れまで各レベルでの自動テスト、ソースコードのメトリクス取得、成果物(実行ファイルなど)の作成などがある。

これら一連の作業を自動化するのがCIであり、そのためにはバージョン管理システム、自動テストツール、メトリクス測定ツール、ビルドツールなどを呼び出すことが必要である。とはいえ、プロジェクトによって開発言語も異なれば、各種の作業に使用するツールも異なる。だからインターフェースだけ用意しておいて様々なツールを呼び出し、結果を取得できるようにしておく。かくして「インターフェースと実装の分離」が実現される。

設定はコードベースに対応するのに対し、結果の方はビルドごとにデータが作成される。必要なのは各実行ごとに各作業の結果を取得し、わかりやすく表示してくれること。テストやメトリクスなどは今回の結果だけでなくこれまでの推移も見られるようにしたい。

あとはプラグインやマシン、ユーザなどの管理。

そんなことを考えてJenkinsを眺めてみたら、細かいところは知らない単語もいろいろ出てくるものの、大枠では外れてはいないようだ。 Jenkinsは(よい意味で)わかりやすいシステムである。

自社で開発しているシステムについて同じようなことを考えてみたいが、Jenkinsほど簡単ではなさそうだ。

2015年10月24日土曜日

Participant observation of job search



Introduction
 I engaged in job hunting in Japan after completing the curriculum of a social anthropology program (MSc) of a university in the UK. As I had worked as a software engineer before studying anthropology, I looked for engineering jobs while I tried to find opportunities to use anthropology in those positions. As I could find a job, I would like to analyze the process of job search with an anthropologist’s eye. Note that this post is based on my own experience so it is not generalizable to job search in Japan.
 I came across a conversation of different practices of recruitment when I was in London. I heard some aspects of the tactics of job seekers and employers. Job seekers in London, I heard, boasts job offers from other companies to win better conditions. A friend from Kyrgyz said such kind of conduct is inconceivable in her country. I thought it will also be regarded as impolite in Japan. It is only one expression of differences.

Settings
-Players
 The main players are job applicants, employers and recruitment agencies. The employers are not monolithic especially if they are large in size but here I will not delve deeper into that as I do not have enough information. Recruitment agencies contact prospective applicants, often via career change web sites, which are also important material settings, and mediate the relationship between employers and applicants. Those agencies are mainly for experienced workers in Japan. They get fees from employers when applicants accept offer from them. They often get additional fees when applicants-turned-employees continue to work in the company for some time, like one year. Usually applicants themselves have to pay nothing for the agencies. I also relied on those agencies in my job search.

-Application and screening process

 Employers in Japan, as well as in other countries, use several methods to screen job applicants: internship, exams, interviews, and documents. The process depends on resources and policies of the companies. Internship may be the best method if they want to check how the applicants will work, but it is often too costly both for employers and applicants. Even in internships both parties may behave to make themselves more attractive than they actually are. Other methods use much more limited information to judge each other. Almost all companies ask applicants to submit CVs and hold interviews in the recruitment process. Exams are various. Some companies use multiple-choice test to measure basic skills or aptitude for the job of applicants. Other companies do not have exams. Some positions for software engineering require programming tasks, which give employers information of the applicants’ programming skills.

Signaling

 Just as Geertz (1973) defined culture as “a historically transmitted pattern of meanings embodied in symbolic forms”, not only sentences but also nonverbal expressions and how words are expressed matter as symbols of something else. This particular culture of recruitment process is influenced by time constraints as well as the logic of market economy and “Japanese culture” as a whole. Because decision making depends on limited information and has to be done in comparatively short time, both parties try to know what is relevant for them from the communication. What is communicated during the application and screening process works as sign of what they really want to know. For example, applicants in Japan often wonder whether they should write CVs manually or using computers. (It was taken for granted in the UK that applicants use word processors.) Different employers may have different impressions depending on how CVs are written. While handwriting is time-consuming, some employers prefer it because they think it conveys personality of the applicants and regard it as a sign of their willingness to work for the companies. If there is a gap on the rules of communication, it is likely to lead to negative evaluation of each other.
 Signaling is also relevant in interviews. Nervousness often gives negative impression since it may reflect lack of confidence in what they say. A consultant of a career agency told me to talk concisely even if it diminishes information. His advice was based on an assumption that interviewers cannot remember everything and what matters is what they remember after the interview. The situation may be different if interviews are recorded but usually they cannot spend a lot of time for each applicant. He also said logical consistency is usually irrelevant in job interviews. It was somewhat surprising for me and a document from another agency says applicants should be coherent. One possible explanation is that I was already conscious about consistency and that is enough for interviews in which interviewers cannot spend a lot of time in discerning consistency. I thought preparation for job interview as resource allocation problem. Thus I focused on other aspects of the interview.
While compensation and working hours are important factors for applicants when they decide which company to work, it is usually seen as inappropriate for applicants to ask questions about those matters. Those questions may signal the employers that the applicant is mainly interested in his or her personal benefit, which is regarded as undesirable even in market economy. But both employers and agencies know that applicants are interested in how they are treated. Instead, they have to wait interviewers mentioning them or they may ask them through recruitment agencies. Even when I communicate with agency consultants, I justified my mention to those conditions by referring to more acceptable concerns like health and opportunity of challenging tasks. While it is legally obligatory to disclose salary level at least when employers issue offer letter, it is not about expected working hours so it is sometimes difficult to obtain information about them. If employers and recruitment agencies are reluctant to disclose information, applicants may expect hard work. Thus applicants also make use of signals. Another consultant told me if an employer or a career agency urges applicants to make decisions immediately, it is not a good one.
 The applicants are expected to focus on contribution to the employers. So the applicants try to explain what they can do with their present skills. It is basically the same as other negotiations to win contracts. What is different is that as employment is a long term relationship, the applicants also emphasize what they want to do in the future. But it is easy to say what they want to do or want to be. So interviewers try to discern whether the applicants have the potential and the determination to be such persons by how they relate their past experience with the future vision.

Relations

 Anthropological accounts are full of references to alienation in market economy. Ho (2009) characterizes the relationship between Wall Street investment banks and their employees as “two-way lack of obligation” while she did not ignore cultural aspects of the workplace. Meanwhile, others point out that complete disentanglement is impossible (Miller 2002; Holm 2007). Practices around recruitment and job transfer in Japan is also a place where the logic of market transaction and that of attachment coexists in particular manner.
 Legally speaking, corporations have the right to decide whom they employ or not. Applicants also have the right to decide where they work. However, it does not mean that both parties have special feeling toward each other. Indeed, I felt attached to some companies and had to justify my decision (both to the companies and to myself) to decline offers by reference to priorities I had set in advance. In addition, I thank those companies and want to contribute to them by introducing prospective applicants.
 Consultants of recruitment agencies are in special position in its relation with applicants (and maybe with corporations). I felt blue several times after interviews in which I thought I did not do well. I often talked about my failure – nervousness, clumsiness, inconsistency of my reply, and so on – to them. Then they often encouraged me and urged me to be confident. While I appreciate their encouragement and advice, I felt somewhat perplexed although I could not explain my feeling at that time.
 Now I think they engaged in some kind of affective or “emotional labor” in that it “calls for a coordination of mind and feeling” (Hochschild 2003[1983]: 7), although it does not necessarily accompany facial expression in the original definition. While evocation of certain mental state is presented as service, it should not be represented as commodity purchased in markets. If customers (job applicants) imagine so, it would be less effective. Once I was told that if I deserve to be employed. I could neither take this remark at face value nor dismiss as flattery. From the viewpoint of consultants, they face some kind of “double bind” (Bateson 1972). If they say nothing, applicants’ mind would not change. If they say something, it may be taken as remarks for business purpose. And in most cases it is inappropriate to have lengthy explanation about the dilemma they are facing. It is inevitable as we cannot eliminate the context of business interest from our relationship. Although the relationship between consultants and job applicants is less unequal than those between domestic workers or sex workers and their clients, which the word emotional (or affective) labor is often applied, the relationship is asymmetrical. They need some kind of discipline, but it is different from the one needed in other occupations. First, it is not calculative. In addition, unlike futures traders’ (Zaloom 2006), it is represented as something that is desirable outside business.
As a job applicant, it is easy for me to separate business and personal matters. While I felt obliged to do something for them in return for their service, what I thought I can do is to introduce my friends to them, which purely contributes to their business interest and does not satisfy their emotional needs. While I thought it is possible to build personal relationship with them, it is so even if I cannot benefit them in business. The only reason that it is more or less difficult for me to handle those relationship is that I am conscious or even over-conscious about the dilemma the consultants face. Despite my education of anthropology, which is often critical about market logic, I could not eliminate calculation from my thinking even when I think about contribution to others.

Ontology

 While job interviews are primarily the opportunity for employers to assess applicants, it is also true that applicants can use the setting to assess companies. The career agencies I had contacts with emphasized both aspects, although with greater emphasis on the first. While it may be true as long as job market exists, actual attitudes of applicants and employers depend on how they think about possible alternatives. If unemployment rate is high and the applicants does not have skills which are highly evaluated by potential employers, they may make more efforts to be attractive to employers even if it is not what they like to do. Thus the judgement by the job market may be perceived as absolute and what they can only do, they think, is to conform to the absolute law of the market like that of nature and discipline themselves according to the “law”. During my job search in the UK I felt that the result of the screening is something that I cannot control and I did not think that I was choosing a company. But I neither have fatalistic view nor thought I have to completely reshape myself to get a job partly because I had another option to work in Japan. (It does not mean there is no room for agency even in severe conditions. For example, applicants with philosophical or anthropological education may remember Foucaultian argument of discipline and try to resist the temptation to internalize the logic of “the system”.)
 As far as I am concerned, changes I was told by the consultants to undergo was merely on superficial or technical level: how to express future prospects and experience in my previous career or to eliminate anxiety. Even if I could not pass the screening process, it was regarded as lack of chemistry between the company and me (and basically not my fault). It is quite different from those demanded for graduate job applicants, at least at discourse level. Job search manuals in recent years in Japan ask those students to thoroughly examine self and find out who they really are and they introduce various specific techniques for that purpose (Makino 2011). Whereas those techniques are represented as means to “discover” self, it requires particular attitude toward the self. But there is the other side: there is screening process before the applicants are registered to the agencies. Not all prospective applicants can get assistance from the agencies. Some agencies are explicit on that. While it is a rite de passage and almost compulsory for students to adopt certain kind of “technologies of the self” (Foucault et al. 1988), lack of re-formation of self is a result for those who have already acquired discipline in everyday working practice.

Conclusion

 In this short essay I outlined several aspects of job search and recruiting process. There exists particular kind of codification of verbal and nonverbal messages. Each party tries to obtain information on each other under the system of meaning. While both applicants, corporations, and recruitment agencies pursue their own purpose, they do not simply rely on calculation but they have to deal with various emotions. Sometimes it is actively embraced and in other cases it has to be eliminated from decision making process. People also have particular idea about more abstract concept such as job market and the self. Briefly comparing job search of experienced workers with that of students, I extracted invisible presuppositions.
 Relationship between the system of meaning and perception is not clear here. While I treated discourse system as independent of other aspects of the process, it is highly conceivable that use of particular discourse and bodily practice has impact on formation of self and how people think about relationship with others and the world as a whole. It may depend both on psychological process and culture. This aspect is left for future exploration.

Bibliography

Bateson, G. (1972). Steps to an ecology of mind: Collected essays in anthropology, psychiatry, evolution, and epistemology. University of Chicago Press.

Foucault, M., Martin, L. H., Gutman, H., & Hutton, P. H. (1988). Technologies of the self: A seminar with Michel Foucault. Univ of Massachusetts Press.
Geertz, C. (1973). The interpretation of cultures: Selected essays. Basic books.
Ho, K. (2009). Liquidated: an ethnography of Wall Street. Duke University Press.
Hochschild, A. R. (2003). The managed heart: Commercialization of human feeling, With a new afterword. Univ of California Press.
Holm, P. (2007). Which way is up on Callon. Do economists make markets, 225-243.
Makino, T. (2011). Jiko keihatsu no jidai [Self development]. Keiso Shobo.
Miller, D. (2002). Turning Callon the right way up. Economy and society, 31(2), 218-233.
Zaloom, C. (2006). Out of the pits: Traders and technology from Chicago to London. University of Chicago Press.