(日本語は下を参照。)
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ほど簡単ではなさそうだ。
2016年5月28日土曜日
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のような概念に対する一つの受け取り方は前述のような記述 的なものとみなすことである。 コンテキストが特定されていない手法であるから、 コンテキストが変わればそのままは適用されないのが当然というこ とになる。ただ、 純粋に記述的な概念はマックス・ウェーバーの「理念型」 のように外部の研究者が分析のために使うことはあるものの、 内部にいる人にとってはあまり意味をもたない。
別のとらえ方は規範的なもので、「状況に適応する」 ということも含め、 ソフトウェア開発のあるべき姿を表すものである。 この考えに立てば、概念自体を放棄することはありえないが、「 成功すること」だけが意味内容であればほとんど無意味になる。
ソフトウェア関係で通常使われる方法論あるいはプラクティスに関 する概念は記述的かつ規範的なものである。つまり、 一定の条件下ですべきことが述べられており、 それに従えば何らかの目的を達成できるものとされる。とはいえ、 「条件」や「すべきこと」が常に明確なわけではない。どのような法律でも解釈の予知があるのと同様である。
筆者がいるソフトウェア業界でも「科学」のように、
少し前に"TDD is dead. Long live testing."(日本語訳)
なお、
規範的な概念についての議論の方法
TDDのような概念に対する一つの受け取り方は前述のような記述
別のとらえ方は規範的なもので、「状況に適応する」
ソフトウェア関係で通常使われる方法論あるいはプラクティスに関
こうした概念が「従ったがうまくいかない」または「
- 擁護:考え方は間違っていない。
あなたの理解が間違っている。ある宗教の教えに従いながら幸福になれない人に対し、教えを正しく信じ、理解し、実践していないあなたが悪い、と非難するのと構造は似ている。 - 拡張:明示されてはいなかったが、もとの概念の中に暗に含まれていたものだ。条件が違う場合にはより一般化して適用すればよい。
- 限定:そのケースは概念の適用対象としてふさわしくない。
- 否定:もとの概念は間違っている。新しい、より良いものに置き換えるべきだ。
名前をつけるということ
ソフトウェア開発やさらに広くビジネスで使われる方法論の場合、
一つはコミュニケーション上の必要である。
また、一つの理想型として参照されることにより、
意味のある議論?
ある方法論やプラクティスが特定のコンテキストのもとで成り立つ(有効である)、またコンテキストを言葉だけで表現することはできないと考える場合(基本的に妥当な仮定だと思う) 、意味のある議論としては、
- 個別具体的なケースで特定の方法論やプラクティスを適用すべきか
- 特定の条件が方法論やプラクティスの適用にどのような影響を与えるか(メタレベルの議論)
特定の現場にいない人は(ヒアリングを行うなどして)意味のあるアドバイスを与えることはできるとしても、コンテキストをすべて知っているわけではないので判断には限界がある、ということになると思う。
方法論の適用条件に関して、また定式化に関してどのようなことが議論の対象になりうるかについてはまた別の機会に投稿したい。
登録:
投稿 (Atom)