デザイナーとプログラマの連携にメーリングリストは使うな

愛車の税金と車検が同時に来て苦しむSaityです。
さて、今日はWebシステムのプロジェクトにおいて、デザイナーとプログラマの連携でやっちゃいけない事を挙げます。

【マネージャーがやっちゃダメな事】
・なんでもかんでもメーリングリストで連絡を取ろうとするな
特に、ファイルの作業衝突を防ぐ為に、「これからXXXファイルの作業をします」のような内容をメーリングリストで管理するのはもってのほか!身に覚えのあるプロジェクトは即、バージョン管理システムを導入しましょう。
また、システムの品質管理にはバグトラッキングシステム(BTS)を使うと良いでしょう。

・デザインと平行してプログラミングのスケジュールを組むな
テンプレートエンジンを使っても100%作業を分離する事は不可能です。
十分な工期が取れるならば、全体のデザインとHTMLコーディングの作成を先工程とし、そのHTMLスケルトンを使ってプログラマの仕様FIXを行うと効率が良いです。工期は延びますが、工数は確実に削減できます。

【プログラマがやっちゃダメな事】
・プログラムソースにHTMLコードを入れるな

こんなコードは最悪です。


<?php
// ・・・
// テーブル生成
$member_table = '
<table>
 <tr>
  <th>ID</th>
  <th>NAME</th>
  <th>Email</th>
  <th>TEL</th>
  <th>SEX</th>
 </tr>
';
if (count($member_list)) {
  foreach ($member_list as $member) {
    if ($member['sex'] == 'm') {
      $sex = '男';
    } elseif ($member['sex'] == 'f') {
      $sex = '女';
    } else {
      $sex = '未選択';
    }
   $member_table .= "
      <tr>
        <td>".htmlspecialchars($member['id'],   ENT_QUOTES)."</td>
        <td>".htmlspecialchars($member['name'], ENT_QUOTES)."</td>
        <td>".htmlspecialchars($member['email'],ENT_QUOTES)."</td>
        <td>".htmlspecialchars($member['tel'],  ENT_QUOTES)."</td>
        <td>".htmlspecialchars($sex,            ENT_QUOTES)."</td>
      </tr>";
  }
} else {
  $member_table .= '<tr><td colspan="5">データはありません</td></tr>';
}
$member_table .= '</table>';
$smarty->assign("member_table",$member_table);

極端な例ですが、このようにスクリプトコードにHTMLが混入するスクリプトをよく見かけます。
一体何の為に、テンプレートエンジンを使っているのか解かりませんね。

【デザイナーがやっちゃダメな事】
・特にないけど、JavaScriptとかSmartyの簡単なコードが読めると、とても助かります。

先ほどのスクリプトをちゃんと書くなら、こんな感じになりますが、ニュアンスでどのような動きをするか理解できますか?
>>HTML

{foreach from=$member_list item=member}

{foreachelse}

{/foreach}

ID NAME Email TEL SEX
{$member.id|escape} {$member.name|escape} {$member.email|escape} {$member.tel|escape} {if $member.sex == 'm'}男
{elseif $member.sex == 'f'}女
{else}未選択
{/if}
データはありません