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.

2014年9月10日水曜日

合理主義の人類学

はじめに

これから文化人類学、社会人類学を学ぶ予定であるため、現時点での自分自身の考えをまとめておく。現実には未確定な部分は多いが、ビジネスやエンジニアリング、場合によっては科学にかかわる人の思考や行動を分析したいと考えている。

現代の組織、企業や役所、研究機関などは、それぞれ目的を持っていて、自らの資源によってその目的を達成することを仕事としている。例えば企業の場合、ステークホルダーとの共存共栄や社会貢献などもあるが、基本的には利益を上げることが目的となっている。従業員個人としては別に目的を持っているとしても、組織の一員としては利益に貢献することを求められる。

ここでの合理主義とは、目的を設定したうえで、自らの行動を目的達成の手段として位置付ける考え方、としておく。利益のような数字にはっきり現れるものでも、そうでなくても、目的を達成する上では事象のモデル化や評価、広い意味での計算が必要であるが、目的を所与としても、論理だけですべきことがすべて決まるわけではない。逆に言うと、(あいまいな言葉ではあるが)「文化」が発生する余地がある。以下に挙げる問題は論理だけで決まる問題ではなく、そのために個人や組織によって異なる方法論やプラクティスが存在すると考えられる。

「計算」の諸問題

可能性の探索

個人や組織は判断に必要な情報をすべて持っているわけではない。なので調査やブレインストーミングなど情報を取得し、整理する活動が必要になるが、それ自体コストがかかるものであり、また情報の有用性は通常情報を得た後でないとわからない。何をどう調査するかをどのようにして決めるのか。過去の経験などを参照して可能な限り論理的に調査しようとする努力には価値があるかもしれないが、経験を生かそうとする場合は、検討対象となっているケースに過去の経験は当てはまるかという同定の問題が生じる。

多数の選択肢から選ぶ

数社の中から発注先を選ぶ、というのであればあまり問題はないが、さらに複雑なケースもありうる。買い物をする場合、各商品をいくつ買うか(買わないか)という選択を考えるだけでも、各商品の選択が独立でない場合、例えば商品Aについての選択が商品Bについての選択に依存する、といった関係が多数ある場合は人間が比較可能な範囲を超えてしまう。そうした事態を避けるため、明示的、暗黙的なルールはあるかもしれないが、ルールはどのように決まり、どう運用されるのか。

例えば、可能性の探索や選択の過程のどこかで、占い師に相談して決めるというのは、不合理とみなされる場合が多いと思われるが、それによって個人や組織が決定にコミットでき、その後のプロジェクトがスムーズに進むというのであれば、後述するコミュニケーションも含めた全体として考えた場合あながち不合理とはいえない。

他者とのコミュニケーション

コンテキストの形成

ほとんどの仕事は一人でできるものではなく、他の人とかかわりながら行うものである。上司と部下のように上下関係があるものもあれば、プロジェクトメンバー同士のように役割が異なるものの対等に近い関係、コンサルタントとクライアントのように組織をまたがる関係も存在する。ただ、個人の側から見た場合、どのような関係であっても相手を(人として敬意を払うにせよ)自分のために動いてもらう存在、と見ることはできる。以前会社で上司が部下に対して自分を使えと言っていたことを聞いたことがあるが、部下であっても上司からアドバイスをもらったり、キーパーソンにつないでもらったり、会議の場でフォローしてもらったりなどいろいろ「利用」する方法はある。

各個人も組織と同様に目的を持ち、合理的に行動している存在だとすれば、他者との関係は「道具的」(instrumental)になるのが自然である(Bateson 1972)。つまり、相手を自己の目的のために働きかけ、利用する対象と考え、その範囲内で自ら学習を行う。この道具的コンテキストで考えることが妥当な場合もあるかもしれないが、多くの場合、こうした関係だけが組織を支配しているわけではない。業務上の関係から出発したとしても、個人間の友情や愛につながり、目的-手段とは別のコンテキストが現れることもある。もっとも、業務上の関係も続いている場合、この合理性を超えた「我と汝」(Buber)の関係は目的達成を至上命題とする組織にとってはプラスにもマイナスにも働きうるものであり、組織の側でどう扱うかは課題となりうる。他の形の関係も考えられる。例えば、上司は道具的に、部下はパヴロフ的(宿命論的)に考えているような場合、上司は自分の指示への反応によって対応を決めようとしているのに対し、部下は自分が何をしても上司の行動に影響を与えられないと考え、(部下から見て)いつ来るか予想できない上司の制裁におびえるという状況である。

また、大きなコンテキストとしては道具的であるにせよ、チームとして活動するにあたり、自らを、またチームメンバーを一時的に対象に没入させることもある。心理学で「フロー」と呼ばれる状態はおそらくこれにあたる。合理主義的計算をゲームとして楽しんでいれば、道具的コンテキストとフローは両立するし、目的達成のために特定の心理状態を作り出すことができれば、そこでもフローが発生する。実際にどのような形をとるのかは検討の余地がある。

意味の解釈

他者との間で何らかの関係が成立している場合、情報のやりとりが行われるが、その情報が何を意味するかが常に明らかなわけではない。次の行動に移るに十分な程度に意味を解釈できなくてはならない。例えば、会議でビジネスプランについての調査結果が報告される場合に、通常は質疑応答が行われ、応答内容によって、さらには声の調子や身振りなどによって報告者が実際には何を考えているか、報告が判断材料としてどれだけ有用か、また報告者のスキルや性格、体調や精神状態といったメタ情報の判断材料になったりする。

道具的コンテキストで考えている場合、相手は機械とあまり変わらないので、近似として人間-機械から成るシステムで考える。人間が何か入力すると機械は出力を返すが、人間が予想しない出力が返ることもある。人間に予測できないのにはいくつか理由があるが、まず機械には人間が知らない仕様があり、多かれ少なかれブラックボックスである。そのため、機械の仕様を知るためにさまざまな入力を与えて反応を見たりすることがある。次に、機械が仕様どおりに動くとは限らない。ソフトウェアのバグやハードウェアの経年劣化など、機械が本来の仕様と異なる挙動をする理由はいくつか考えられる。相手が人間であっても基本的には同じで、人によってできることは異なるし、同じ人であっても状況によって異なるパフォーマンスを示すことがある。

相手が機械でも人でも、何を参照してどのように推論するか、どこまで探索を続けるかなど、合理主義から一義的に決まらない問題がある。相手が人の場合、それに加えて、相手との関係に依存して、相手側からの解釈も行われるので、それをどう扱うかで状況が変わってくる。

以上のような意味の明確化と判明した(と判断した)意味に対する(コンテキストに対応する)行動は現実には並行して行われる。

自己の統治

フーコー的なテーマである。自分とのコミュニケーションという意味では先に挙げた他者とのコミュニケーションと共通するところもある。現時点の合理的に考えられる自分が、別の時点のそうではない自分が暴走しないよう、(第三者の目を入れることを含め)あらかじめ策を講じる、というのであれば、主体としての自己が客体としての自己をコントロールするというデカルト的二元論がほぼ成立し、特に共通するところが多い。

しかし、様々な点で違いもある。自分に罰を与えることができるとしても、その際の精神状態は他人に罰を与えるときと通常は異なる(「自己と対話する」場合も同様)し、「自己欺瞞」は考えられるが、自分に対してうそをつくことは考えられない。

以下のような言葉を考えてみる。
「私はどうしようもなく罪深い人間だ。」
「私はどうしようもなく愚かな人間だ。」
これを次の言葉と比較してみる。
「あいつはどうしようもなく罪深い人間だ。」
「あいつはどうしようもなく愚かな人間だ。」

両者の違いは、「あいつ」を主語にした場合、「あいつ」が自分について同様の認識を持っているとは限らないのに対し、「私」が主語の場合には、文章の意味としてそうした自覚を持っている。他人が罪深い/愚かであるとしたら、自分が、または信頼できる第三者に依頼して何らかの訓練を行い、「あいつ」をまっとうな人間にすることが考えられるが、自分自身が罪深い/愚かなのであれば、そんな自分自身が行う自己改造の努力も信頼できるものでないし、第三者に依頼するとしても、第三者を判断する自分自身の目もあてにならない。これを徹底すると、神や阿弥陀仏のような絶対的な他者に対する信仰に行き着く。ビジネス(ここではエンジニアリングや科学なども含む)では徹底した自己否定から出発することは不可能かもしれないが(それでも信仰など基本的にはビジネスの外で培われた思想がビジネスに与える影響は排除できない)、自分自身に対する信頼と不信がどのような形をとるか、またそれがどのような行動につながるかは検討課題である。

参考文献(現在手元にない文献も含む)
塩沢由典(1998), 『複雑系経済学入門』
Bateson, G.(1972), Steps to an Ecology of Mind(G.ベイトソン(佐藤良明訳)(2000)『精神の生態学』)
Buber, M.(1957), Ich und Du(M.ブーバー(植田重雄訳)(1979)『我と汝・対話』)
Csikszentmihalyi, M.(1975). Beyond Boredom and Anxiety: Experiencing Flow in Work and Play(M.チクセントミハイ(1991)『楽しむということ』) Foucault, M., et. al.(1982), Technologies of the Self(M.フーコーほか( 田村俶, 雲和子訳)(1999)『自己のテクノロジー』)

2014年5月5日月曜日

名前をつけるということ

中世ヨーロッパの思想史では、「実念論」と「唯名論」の対立があったとされる。Wikipediaの説明をそのまま借りると、実念論(実在論)は「言葉に対応するものがそれ自体として実在しているという立場」、唯名論は「実在するのは具体的な個物」という立場である。
一般的な「本質」が存在するかという問題はイスラーム教や禅など「東洋」思想においても議論の対象となってきたようである。(井筒俊彦『意識と本質』
これらの思想で議論で議論の対象となってきたのは、主に「花」とか「犬」といった固体としては物質的な形をとるものである。「科学」や「宗教」、「社会」といった概念に対しては近代の学者がさまざまな定義を試みているが、純粋に分析のための概念と、多少なりとも規範的な概念は扱いが異なると思う。例えば、「社会」はそれ自体ではプラス、マイナスの価値を持って使われないが、「科学」は「非=科学」(疑似科学)より優れたものとして扱われる。

筆者がいるソフトウェア業界でも「科学」のように、純粋に記述的ではなく、規範的な意味を伴って概念が使われる。例えば、「ウォーターフォール」は今ではほぼ記述的に使われるが、「アジャイル開発」や「テスト駆動開発」などはある程度規範的な概念だと思う。(「偽アジャイル」という批判は聞くが、「偽ウォーターフォール」という批判はほとんど聞かない。)

少し前に"TDD is dead. Long live testing."日本語訳という主張が出て筆者の周りでも話題になっていた。自分ではあまり実践できていないし、著者はRuby on Railsなどのコンテキストを背景に主張を述べているためなじみのないところもあるが、TDDを記述的な概念、つまりやるべきことの組み合わせとして考えた場合、状況が違えば(変われば)のやり方のほうがよい場合もあるというのは当たり前で、特に衝撃的とは思えない。

なお、著者の主張はユニットテストだけに頼らずシステムテストなど上位のテストをより重視すべきというものだが、一般論としては状況次第であり、コンテキストとなっているRoRの開発においてどれほど当てはまるのかはわからない。極論をすれば、プロジェクトごとに何をすべきか異なる、ということになる。それでは、なぜ議論が行われるのか?

規範的な概念についての議論の方法


TDDのような概念に対する一つの受け取り方は前述のような記述的なものとみなすことである。コンテキストが特定されていない手法であるから、コンテキストが変わればそのままは適用されないのが当然ということになる。ただ、純粋に記述的な概念はマックス・ウェーバーの「理念型」のように外部の研究者が分析のために使うことはあるものの、内部にいる人にとってはあまり意味をもたない。

別のとらえ方は規範的なもので、「状況に適応する」ということも含め、ソフトウェア開発のあるべき姿を表すものである。この考えに立てば、概念自体を放棄することはありえないが、「成功すること」だけが意味内容であればほとんど無意味になる。

ソフトウェア関係で通常使われる方法論あるいはプラクティスに関する概念は記述的かつ規範的なものである。つまり、一定の条件下ですべきことが述べられており、それに従えば何らかの目的を達成できるものとされる。とはいえ、「条件」や「すべきこと」が常に明確なわけではない。どのような法律でも解釈の予知があるのと同様である。

こうした概念が「従ったがうまくいかない」または「よりよい方法がある」などと批判されるとき、反応としては以下のものが考えられる。

  1. 擁護:考え方は間違っていない。あなたの理解が間違っている。ある宗教の教えに従いながら幸福になれない人に対し、教えを正しく信じ、理解し、実践していないあなたが悪い、と非難するのと構造は似ている。
  2. 拡張:明示されてはいなかったが、もとの概念の中に暗に含まれていたものだ。条件が違う場合にはより一般化して適用すればよい。
  3. 限定:そのケースは概念の適用対象としてふさわしくない。
  4. 否定:もとの概念は間違っている。新しい、より良いものに置き換えるべきだ。
これらははっきり区別できるわけではない。また、同じ概念の中に含めるか、もとの概念を限定して別の概念を独立させるかはさまざまな事情による。

名前をつけるということ


ソフトウェア開発やさらに広くビジネスで使われる方法論の場合、一つの方法を適用すればすべてが成功するということはほとんどない。方法論は特定のコンテキストのもとでの複数のプラクティスの集まりであり、一部だけ適用して他は別のやり方で置き換えるなど、状況に応じて適用の仕方を調整することが求められる。ある意味ではパッケージ化され、名前のついた方法論は関係者を思考停止に導くものであり、害をなすこともあるが、それでも名前をつけることにはメリットもあるのだと思う。

一つはコミュニケーション上の必要である。名前がついていれば少ない言葉で概要を理解することができる。もっとも誤解の可能性もないわけではないが。
また、一つの理想型として参照されることにより、規律を保つというメリットもあると思う。何か違ったやり方をとろうとしても、理想型があればなぜ異なるやり方をするのか理由をはっきりさせることになるので、安易な方向に流れることを防ぐ効果がある。

意味のある議論?


ある方法論やプラクティスが特定のコンテキストのもとで成り立つ(有効である)、またコンテキストを言葉だけで表現することはできないと考える場合(基本的に妥当な仮定だと思う) 、意味のある議論としては、
  1. 個別具体的なケースで特定の方法論やプラクティスを適用すべきか
  2. 特定の条件が方法論やプラクティスの適用にどのような影響を与えるか(メタレベルの議論)
特定の現場にいない人は(ヒアリングを行うなどして)意味のあるアドバイスを与えることはできるとしても、コンテキストをすべて知っているわけではないので判断には限界がある、ということになると思う。
方法論の適用条件に関して、また定式化に関してどのようなことが議論の対象になりうるかについてはまた別の機会に投稿したい。