プログラミングとはソースコードを書くだけではない+α(SEとプログラマの分担はどこ?)

・・・と思うんだけどなぁ。 つまりは gokou__ruri さんの言う「プログラミング」と私の認識する「プログラミング」は違うらしい、ということは分かった。
13
まとめ プログラミングの設計など一連のツイートまとめ(仮) とりあえず、雑にツイートを集めました。文脈は分かるのかな? 今後、追加、削除して行きます。誰でも編集可なので、適当に追加してまとめを充実していだたけると幸いです。 42959 pv 299 60 users 23
夢乃 @iamdreamers

仕様書からソースコードに落とす段階で素人もベテランも変わらないのなら、仕様書を作った時点でプログラミングは9割方終わっている、それだけのこと。ベテランならそういう仕様書を作れるけど素人には無理。 http://t.co/JwaRUlRsy1

2013-07-02 00:38:35
大野 @_oono_dyt_jhpws

@iamdreamers まず、仕様書をもとに設計しますよね? 設計書では仕様書を忠実に設計書にかきなおす。数式やアルゴリズムも忠実に設計書に書きなおし。それからその設計書を忠実に、たとえばC言語化してく。仕様書から直接ソースになんかもってかない。それから仕様書をかくのは発注者側

2013-07-07 07:51:56
夢乃 @iamdreamers

@gokou__ruri ウチの職場だと、gokou__ruriさんの言う「仕様書」→要求仕様書、「設計書」→詳細仕様書、と言う感じで、ソースにいたるほとんどのドキュメントを仕様書と呼んでるので、その感覚でした。違和感があったらごめんなさい。

2013-07-07 08:03:20
大野 @_oono_dyt_jhpws

@iamdreamers 言葉は職場によってかわるものなのでしょうがないですね。要求仕様書は顧客が作成。詳細仕様書はSEが作成。プログラムはPGが作成。ここで、要求仕様書、詳細仕様書、プログラムは作成する言語が異なるだけで、ほとんど一対一で対応した記述になります。

2013-07-07 08:10:54
夢乃 @iamdreamers

@gokou__ruri 私の経験上ですが、「ほとんど一対一」にはなりません。ソースの改造が必要なとき、まず仕様書や設計書を読んで理解した上でソースを見ますが、仕様から私が想像したソースとは掛け離れた内容であることがほとんどなので。

2013-07-07 08:19:33
大野 @_oono_dyt_jhpws

@iamdreamers 一対一で対応してないとしたら、要求仕様書に忠実なプログラムになってないってことじゃないんでしょうか?

2013-07-07 08:27:41
夢乃 @iamdreamers

@gokou__ruri いえ、そうではなく、要求仕様書に対応するためのプログラムの書き方は一通りではない、ということです。

2013-07-07 08:30:14
大野 @_oono_dyt_jhpws

@iamdreamers 要求仕様書から詳細仕様書をつくるときに、SEの工夫が入る可能性はありますね。でも、基本的には要求仕様書に忠実に書き上げないといけない。 それで、詳細仕様書とプログラムは完全に一対一で対応。 だと思ってたけど、そうでないところもあるのかな?

2013-07-07 08:42:22
夢乃 @iamdreamers

@gokou__ruri 適切な例かどうか分からないけれど、例えば、クイックソートを実現するプログラムは、繰り返し処理にするか、関数処理にするか、で(プログラムの中身は)まったく別物になりますよね。より複雑な仕様だったら、実現方法はより多種あるだろうことは、容易に想像できます。

2013-07-07 08:54:30
大野 @_oono_dyt_jhpws

@iamdreamers 繰り返し処理にするか、関数処理にするかを決めるのはSEで、それは詳細仕様書の段階で決まりますね。詳細仕様書は、ほんと詳細に書かれてて、Cで書くか日本語で書くかの違い程度までかくの。なので、プログラマは何も考えなくていい。

2013-07-07 09:00:36
夢乃 @iamdreamers

@gokou__ruri ソートの場合、 要求(客)「10個の数値昇順に並べ替える」 詳細(SE)「ソートアルゴリズムを決める」 実装(プログラマ)「繰り返し処理か再帰処理か決める」 と思いますが。尤も、現場によって誰がどこまでやるかは異なるから、これが絶対でありませんが。

2013-07-07 09:05:24
大野 @_oono_dyt_jhpws

@iamdreamers  ぼくの知ってる世界では、詳細設計書には「10個の数値を昇順に並べ替える」アルゴリズムを詳細に記載します。あるいは、要求仕様書に、「10個の数値を昇順に並べ替える」アルゴリズムが詳細に記載されています。

2013-07-07 09:08:42
夢乃 @iamdreamers

@gokou__ruri アルゴリズムが詳細に記載されているなら(あとは何も考えずにソースにするだけなら)、詳細設計書の段階ですでにプログラミングまで進めている、ということです。ソースを書くのはプログラミングの最後の段階だけ、ということ。

2013-07-07 09:14:05
大野 @_oono_dyt_jhpws

@iamdreamers そういうことです。なので、プログラミングは誰にでもできる。10時間にもみたない研修を受けただけのド素人にもできるといっているのです。でも、どうやら、これは世間一般には通用しない特殊な環境の話だったようですが。

2013-07-07 09:20:25
夢乃 @iamdreamers

@gokou__ruri なんで「そういうこと」になるんでしょう?「プログラミングは誰にでもできる」のであれば、「詳細設計書は誰にでも書ける」と同義になってしまいますよ。詳細設計書の段階でプログラミングを進めている、というのはそういう意味です。

2013-07-07 09:24:03
大野 @_oono_dyt_jhpws

@iamdreamers ぼくがここでいってるプログラミングは、詳細設計書->プログラミングの部分の作業です。詳細設計書はSEが書くものなので、詳細設計書のなかでプログラミングが行われていたとしても、それはプログラマの範疇じゃないので関係ありません

2013-07-07 09:28:12
夢乃 @iamdreamers

@gokou__ruri それは「プログラミングの最後の部分」と最初から言っているとおりで、その段階なら素人でもベテランでも一緒でしょう。確かに。でも、ベテランのプログラマはプログラミングのより前の部分、すなわち詳細設計書から作れます。

2013-07-07 09:33:32
大野 @_oono_dyt_jhpws

@iamdreamers なるほど。「プログラマ」という職種の担当職務、職域の考え方が違うということですね。 でも、「素人でもベテランでも一緒でしょう」ってのは一致したようですね

2013-07-07 09:36:53

おまけ・・・SEとプログラマの仕事の境界はどこ?

(会社によって違うだろうし、同じ会社でもプロジェクトごとに違う場合もあるだろうけれど)

夢乃 @iamdreamers

プログラミングまでやってくれるSEって、いるの?そりゃ、小規模なプログラムならSEが自分で詳細設計・プログラミングからコーディングまでやることはあるけど。大規模なプログラムでは、アルゴリズムも決めないんじゃなかろうか。(ウチはそう。どこでもそうとは限らないだろうけど)

2013-07-08 12:03:42
夢乃 @iamdreamers

こっちのまとめ http://t.co/wyZsRMadum に例示したソートプログラムの場合、客からソートプログラムを要求されることは ほとんどなくて、客のシステム要件を満たするのにソートプログラムが必要、とSEが判断する。客と相談しながら、って場合もあるだろうけど。

2013-07-08 12:04:58
夢乃 @iamdreamers

で、ソートプログラムの要件をSEが決める。実行時間はこれくらいとか、使っていいリソースはこれだけとか、安定ソートかどうか、とか。

2013-07-08 12:05:37
夢乃 @iamdreamers

(ソートという、充分研究されたプログラムなら、SEがアルゴリズムまで決めるかもしれないし、そもそも小さいプログラムだから、前述のようにSEがコーディングまでしちゃうかもしれないけど)

2013-07-08 12:06:33
夢乃 @iamdreamers

そして、SEから出てきた要件に合うように、プログラマがアルゴリズムや実装方式を決めて、実際に動くプログラムにする、という風になる。

2013-07-08 12:07:07