カテゴリ一覧から子カテゴリの記事をなくす (WordPress)

「何言ってるんだこの人???」

・・・と、言われるかもしれませんが。
WordPressでカテゴリ一覧やターム別一覧を表示すると、デフォルトで、もれなく子孫カテゴリの記事も含まれます。「えっ?なんでwww」と、思いますが、そういう仕様のようで・・・。

百聞は一見にしかず。
こちらをご覧ください https://learning.ccc-labo.net/category/followup/
この「勉強会のフォローアップ」というカテゴリには子カテゴリがあります。
勉強会のフォローアップ
 └条件分岐いろいろ
 └自習課題
「勉強会のフォローアップ」の一覧には、「勉強会のフォローアップ」、「条件分岐いろいろ」、「自習課題」の3つのカテゴリのいずれかを選択している記事が表示されています。

かえって都合が良いこともあるので、私はブログを書くときはあまり気にしていないです。それでも時には、子カテゴリの記事は不要で、純粋に、そのカテゴリを選んでいる記事だけが表示されてほしいということもあります。

というわけで、「WPのカテゴリ(ターム)別一覧から子カテゴリの記事を外す」方法です。

以下に書く方法やサンプルコードは、下記の「参考記事」をもとにしました。
https://hseki-luckey.hatenablog.jp/entry/2018/01/16/233106
考え方についても、この記事を参考にしているので、先にこちらを読んでおかれると以下の理解が早いと思います。

parse_tax_query を使って解決する

parse_tax_query ってなんやねん、、、と思っていますが、当方、フィルターとかアクションとかがよくわかってないほどの理解度なので、説明できません。
なので、さくっとサンプルコードです。テーマの functinos.php に書いて使います。

function custom_search_parse_tax_query($query){
	if ( is_admin() || ! $query->is_main_query() ){
		return;
	}
	if( $query->is_tax('hoge_cat') ){
		$query->tax_query->queries[0]['include_children'] = false;
	}
}
add_action('parse_tax_query', 'custom_search_parse_tax_query');

これでOKです。
5行目の $query->is_tax('hoge_cat') 部分が、「子カテゴリの記事をなくす」の対象になるアーカイブの条件を書いている部分です。
カテゴリだったら  $query->is_category()
特定のタームだったら $query->is_tax('hoge_cat', 'foo')
などとします。WPの条件分岐についてはこちら。

6行目の部分で、「クエリの中の tax_query の中の queries の中の0番目の中にある include_children の値を false に変えている」ということだと理解しています。
ただ、これは、何かの条件で「queries の0番目」の位置が変わってしまったら効かないかエラーになったりしそうかな?と思います。
その場合はクエリの中身を見て正しく書き直すと良いと思います。

pre_get_post だと何が起きている?

以前にこの方法で試したことがあったのですが、「参考記事」ではSQLのクエリが増えることや処理時間が伸びることを理由に、失敗例とされています。(当方、SQLのクエリは理解できないのと、まだ記事が少ない状況で試したので、いずれも実感できず・・・)なので、なにかしら「余計なことをしている」印象を持っています。

こちらもコードは functions.php に書きます。

function custom_category_archive_query($query){
	if ( is_admin() || ! $query->is_main_query() ){
		return;
	}
	if( $query->is_tax('hoge_cat') ){
		$term = get_queried_object();
		$tax_query = array(
			array(
				'taxonomy' => $term->taxonomy,
				'field' => 'term_id',
				'terms' => array($term->term_id),
				'include_children' => false
			)
		);
		$query->set('tax_query', $tax_query);
	}
}
add_filter('pre_get_posts', 'custom_category_archive_query');

これでも、ねらった表示にはなります。しかし、遅かったり余計なSQL文がはいると・・・・・いったい何が起こるのか、できれば理解したい。

で、SQLは読めないので、いっそ、$query を見てみようと思いつき。
taxonomy.php に以下を記載。

echo '<pre>'. print_r( $wp_query, true ) .'</pre>';

ダサかろうが全て実際に表示してみるスタイル….
以下のような表示が得られます。

WP_Query Object
(
//省略
[tax_query] => WP_Tax_Query Object
	(
		[queries] => Array
			(
				[0] => Array
					(
						[taxonomy] => archive_cat
						[terms] => Array
							(
								[0] => 9
							)

						[field] => term_id
						[operator] => IN
						[include_children] => 
					)

				[1] => Array
					(
						[taxonomy] => archive_cat
						[terms] => Array
							(
								[0] => zaidanjyouhou
							)

						[field] => slug
						[operator] => IN
						[include_children] => 1
					)

			)

		[relation] => AND
//省略

注目は [queries] の中身で、[1]の方が、WPのデフォルトで出てくるもので、[0]の方が、おそらく、pre_get_posts を書くことによって追加されたものだと思います。
やりたいことはあくまで、 [1] に書いてある [include_children] => 1 を0(表記なし)にすること、なので、pre_get_posts ではやはり「余計なことをしてる」ということになるのかと。

WPブロックをホワイトリストで指定して、一部のブロックのみを使う方法

便利で楽しいブロックエディタですが、クライアントに納品するCMSとする時、WPのブロックが多すぎたり、全てのブロックのスタイリングをするのがしんどい場合があります。
必要なブロック以外は表示したくない!!その方法を解説します。

技術もコード書くのも不要!最もお手軽な方法

不要なブロックを表示させない最も簡単な方法は「ブロックマネージャー」で必要なブロックにのみチェックを入れていく方法です。
ブロックマネージャーは、投稿編集画面の右上にある歯車マークをクリックし、「ブロックマネージャー」のリンクをクリックすると現れます。

この方法でも、ブラウザに依存しないで、管理画面のログインユーザごとに設定が可能だった記憶…。クライアントに引き渡す前に、クライアントのログインアカウントで設定するなどすれば、そのまま不要なブロックを隠した状態で運用できるはずです。(ごめんなさい、未検証です!)

テーマの functions.php などで制御する場合

ブロックマネージャーからもブロックを削除しておきたい場合、allowed_block_types_all フィルタを使って、使いたいWPブロックだけをホワイトリスト形式で指定することができます。不要なものを削除ではなく、使いたいものだけ許可する。テーマの functions.php に書くほか、プラグイン化もできると思います。

サンプルコードはこんな感じ

function whitelist_block_types( $allowed_block_types, $block_editor_context ) {
	$allowed_block_types = array(
		'core/paragraph',
		'core/heading',
		'core/image',
	);
	return $allowed_block_types;
}
add_filter( 'allowed_block_types_all', 'whitelist_block_types', 10, 2 );

サンプルコードは以下の記事を参考にしました。参考記事には、投稿タイプごとにブロックの表示を制御する方法が書いてあります、これもよく使いそう。
https://qiita.com/TetsuakiHamano/items/421746f7c6429ac54282#allowed_block_types_all-

以前は「allowed_block_types」だった

allowed_block_types_all は、WordPress 5.8 から新たに実装されたフィルターです。以前は同じことを allowed_block_types というフィルターで行っていましたが、こちらは5.8で非推奨になったそうです。 allowed_block_types フィルターを使っている場合は、5.8にすると警告が出ますのでご注意を。

私は、よく使っていたので、Deprecated エラーが多発しています…( ꒪⌓꒪)

注意!!セットで許可しないと使えないものがある

ボタンやカラムなど別のブロックを内包するタイプのブロックは外身と中身(言い方…)をセットで許可しないと動かないです。

'core/button', //ボタン
'core/buttons', //ボタン

'core/column', //カラム
'core/columns', //カラム

'core/social-link', //ソーシャルアイコン
'core/social-links', //ソーシャルアイコン

余談 ブロックの一覧を知りたい

ブロックエディタが登場して数年、最初よりもずいぶんブロックが増えたはず。ホワイトリストで指定するときはブロックの「名前(core/hogehoge)」が必要になりますが、以前からそれを知る術とは…となっていました。ちょいちょい探しているものの、見つからない・・・。

したらば、今回、allowed_block_types_all を調べる過程で、下記の記事を発見。
https://wemo.tech/4010
「PHP側で特定のブロックをオフにする方法」という見出しにあるサンプルコードですが、不要なものだけを消したいが、刻々と追加される新しいブロックはそのままホワイトリストに追加されるようにしたいという思いで書かれたコードと読み取りました。削除したいブロックの名前を配列にしておき、全てのブロックの一覧の配列と比べて、差分だけを取得し、ホワイトリスト用の配列にしようという方法と思われます。
なので、サンプルコードにあった「全てのブロック取得」の部分を参考に、全ブロックの名前とついでにタイトルを取得できるコードを書いてみました。

$all_block = '';
$block_types = WP_Block_Type_Registry::get_instance()->get_all_registered();
foreach ($block_types as $block ){
	$all_block = $all_block . "\n" . "'" . $block->name . "'" . ', //' . $block->title . ' (' . $block->category . ')';
}
var_dump( $all_block );

出力が var_dump なのはお許しください…。
でもできた。
(2021−12−24 カテゴリも出力しました)

これを使って今日時点のブロック一覧を取得したものが以下になります。ホワイトリストを作成する際などに、お役立てください。

(以下、2022-02-14 時点のブロック一覧)

'core/legacy-widget', //従来のウィジェット (widgets)
'core/widget-group', // (widgets)
'core/archives', //アーカイブ (widgets)
'core/avatar', //アバター (theme)
'core/block', //再利用ブロック (reusable)
'core/calendar', //カレンダー (widgets)
'core/categories', //カテゴリー一覧 (widgets)
'core/comment-author-name', //コメントの投稿者名 (theme)
'core/comment-content', //コメント本文 (theme)
'core/comment-date', //コメント日付 (theme)
'core/comment-edit-link', //コメント編集リンク (theme)
'core/comment-reply-link', //コメント返信リンク (theme)
'core/comment-template', //コメントテンプレート (design)
'core/comments', //コメント (theme)
'core/comments-pagination', //コメントのページネーション (theme)
'core/comments-pagination-next', //コメントの次のページ (theme)
'core/comments-pagination-numbers', //コメントのページ番号 (theme)
'core/comments-pagination-previous', //コメントの前のページ (theme)
'core/comments-title', //コメントタイトル (theme)
'core/cover', //カバー (media)
'core/file', //ファイル (media)
'core/gallery', //ギャラリー (media)
'core/home-link', //ホームへのリンク (design)
'core/image', //画像 (media)
'core/latest-comments', //最新のコメント (widgets)
'core/latest-posts', //最新の投稿 (widgets)
'core/loginout', //ログイン / ログアウト (theme)
'core/navigation', //ナビゲーション (theme)
'core/navigation-link', //カスタムリンク (design)
'core/navigation-submenu', //サブメニュー (design)
'core/page-list', //固定ページリスト (widgets)
'core/pattern', //パターン (theme)
'core/post-author', //投稿者 (theme)
'core/post-author-biography', //投稿者の経歴 (theme)
'core/post-comments-form', //投稿コメントフォーム (theme)
'core/post-content', //投稿コンテンツ (theme)
'core/post-date', //投稿日 (theme)
'core/post-excerpt', //投稿の抜粋 (theme)
'core/post-featured-image', //投稿のアイキャッチ画像 (theme)
'core/post-navigation-link', //投稿ナビゲーションリンク (theme)
'core/post-template', //投稿テンプレート (theme)
'core/post-terms', //投稿タグ (theme)
'core/post-title', //投稿タイトル (theme)
'core/query', //クエリーループ (theme)
'core/query-no-results', //結果なし (theme)
'core/query-pagination', //ページ送り (theme)
'core/query-pagination-next', //次のページ (theme)
'core/query-pagination-numbers', //ページ番号 (theme)
'core/query-pagination-previous', //前のページ (theme)
'core/query-title', //クエリータイトル (theme)
'core/read-more', //続きを読む (theme)
'core/rss', //RSS (widgets)
'core/search', //検索 (widgets)
'core/shortcode', //ショートコード (widgets)
'core/site-logo', //サイトロゴ (theme)
'core/site-tagline', //サイトのキャッチフレーズ (theme)
'core/site-title', //サイトのタイトル (theme)
'core/social-link', //ソーシャルアイコン (widgets)
'core/tag-cloud', //タグクラウド (widgets)
'core/template-part', //テンプレートパーツ (theme)
'core/term-description', //タームの説明 (theme)
'core/audio', //音声 (media)
'core/button', //ボタン (design)
'core/buttons', //ボタン (design)
'core/code', //コード (text)
'core/column', //カラム (text)
'core/columns', //カラム (design)
'core/embed', //埋め込み (embed)
'core/freeform', //クラシック (text)
'core/group', //グループ (design)
'core/heading', //見出し (text)
'core/html', //カスタム HTML (widgets)
'core/list', //リスト (text)
'core/list-item', //リスト項目 (text)
'core/media-text', //メディアとテキスト (media)
'core/missing', //非サポート (text)
'core/more', //続き (design)
'core/nextpage', //ページ区切り (design)
'core/paragraph', //段落 (text)
'core/preformatted', //整形済みテキスト (text)
'core/pullquote', //プルクオート (text)
'core/quote', //引用 (text)
'core/separator', //区切り (design)
'core/social-links', //ソーシャルアイコン (widgets)
'core/spacer', //スペーサー (design)
'core/table', //テーブル (text)
'core/text-columns', //テキストカラム (非推奨) (design)
'core/verse', //詩 (text)
'core/video', //動画 (media)
'core/post-comments', // (theme)

2022-11-16追記
公式でコアブロックの一覧を見つけたので、記載しておきます。

https://github.com/WordPress/gutenberg/tree/trunk/packages/block-library/src/archives

ちょっとだけVue.js触ってみた

デモはこちら→ http://learning.ccc-labo.net/demo/veujs/index.html

2021-03-12 のCSS Nite「CodeGridから読み解くイマドキのCSS」に参加したら、Vue.jsをライトに使うという話が、本当に使えそうだったのでやってみた話。
詳しい解説を書いてみたら、もろにセミナーのパクリだったので、自重しました。冒頭のデモ以上の内容については触れません。

ちなみに、元記事は多分、CodeGrid にあると思います(これかな)ので、購読している方はそちらで!

やってみた所感は、初めてVue.js触る、JSはあんまり得意じゃない、という私でも、書いて動かせたので画期的では、と思います。

セミナーでも言われていましたが、四則演算+αのことがお手軽にできるので、例えば見積り計算であったり、ローン計算のようなものが、簡単なモノであればできそうな気がしてきました。開発環境が不要ででライトに使う方法があるんだなーというところからでしたが、やってみて楽しかったです。

とはいえJavascriptの知識は必要

簡単にできるとはいえ、基本的な JavaScript の知識がないと、公式ドキュメントを読み進めるのがしんどそうだな、という所感です。私もわからない。

Vue.js についてはおすすめ本はわかりませんが、基本的なJavascript の理解には、下記の本がとても役立ちました。

ワークフロー改善への道3

何が課題なのか?

最初の記事でも書いたが、デザインリサーチの実践として、手元にありそうな素材に目を向けた、というのが、正直なところなので、仕事の仕方について、明確に「これが課題」と思っていることは特にない。元も子もない。
といっても、我流で身につけてきたものであること、ミスが起きること、家事時間になっても仕事を続けてしまうこと、など、直せるなら直した方がいいと思うことはある。仕事には毎回、大小問わず反省点が付きまとうのに、次に生かされているのか不明だ。
つまり、何かあった時に振り返って改善ができることが、必要なのではないか。ワークフローは、おそらく、継続的に改善が必要になる。

プロセスやワークフローに検証可能性を持たせる

ひとまずこれを課題とする。

閑話休題 用語の確認

ワークフロー:事業者や作業者などの間の仕事の流れ。

プロセス:① 物事を進める手順。② 物事が変化するときの経過。物事が進む過程。「―を重んじる」③ 食品の保存のためなどに行う加工処理。④ 「プロセス平版」の略。

プロセス平版:プロセスカラー原稿を写真製版やカラー-スキャナーを用いて,赤・藍(あい)・黄・墨の四色に色分解し,多色印刷用の平版を作ること。また,その版。多色平版。

プロセスカラー:シアン(青)・マゼンタ(赤)・イエロー(黄)の 3 原色に,ブラック(黒)を加えて作る色。カラー印刷に使われる。

・・・・・・じゃなくて。

プロセスの方が、ワークフローを複数包含した、仕事や業務全体をさす言葉のようです。
果たして、先の2つの記事、この意味で使っていたか、あいまいです。

・・・・・とりあえず!
これ以後は、上記に気をつけて、ワークフローとプロセス、使い分けていきたいと思います。

ワークフローがない

前回の記事で書き出したものの、私の中でワークフローは全て「なんとなく」。なんとなくのものを改善しようと思っても、なんとなくにしかならないので、まずは、ワークフローの明文化が必要ではないか。前回の記事でそれを書き出しながらも、もちろん仕事によってワークフローには違いが出るが、この手順でやろう、ということを決めてから、とりかかるということをやっていないのでは・・・・。
まずここからか。

というわけで少し参考になりそうな例を探してみた。
お手軽に、ウェブで・・・・

https://baigie.me/sogitani/2018/08/baigie-workflow/

最初に探し当てたものが、かなり思ったものに近かったので、これを書く手を止めて熟読してしまっていた。まずこれを参考に、一度ワークフローを明文化してみる。

明文化したワークフローはどう使うか?

上記参考サイトにあるように、ワークフローを全て書き出したらプロジェクトによって必要なものを組み替えて使うとのことなので、「プロジェクトの進捗状況をタスク毎に細分化したシート」の形でアウトプットする。このアウトプットのアウトカムが「ワークフローを明文化すること」になり、ワークフローの改善はこのアウトプットをその時々の反省をもとに書き換えていくこととなるだろう。

反省の時間を組み込むこと

ひとつの仕事が終わったら、もしくは終わる前から、次の仕事は始まってしまう。終わった仕事を振り返らなければ「改善」はできない。プロジェクト自体に反省の時間を組み込むこと。これは、それこそ、ワークフローの中に含めるようにすれば良いのでは。
また、日々の仕事の中でも振り返る時間を取るようにルール化するのがよいのではないか。1日15分なり時間を決めて、振り返る。

時間単価の考え方

かなりざっくりとしたことを言えば、
1年に稼ぎたい金額 ÷ 労働に使う時間 = 時給とすべき金額
になるだろう。

という感じで計算している。見積もりを書くときはこれを基準にしていく。ここに具体的な金額は書かないが、この額面を見てしまうと、最低時給が1,000円に満たない労働がちまたにあふれている件について、おかしいよ、それほんとおかしいよと言わざるを得ない・・・・。

1日に何時間働けるか?

フリーランスなので、労働基準法は適用外なので、実質何時間働いてもいいのだが、規則正しい生活と家事を回すことを考えると、子育てというタスクはないけど、1日に集中力を保って働けるのは、せいぜい5時間が限度です。これ以上働くと家事とか自分のケアが面倒になって、資本=私の健康な身体を保てません。これは自分の能力の限界なのだなあ、と思うと同時に、8時間って働きすぎじゃね、って思ってます。労働基準法で定めているのは、1日8時間以上働くなということであって、1日8時間働けという意味ではない。もちろん経営側の人間は、なるべく同じ給料で多く働かせたいわけだから上限の8時間いっぱいに勤務時間を取ろうとするわけだけど・・・。いい加減考え直していいと思ってる。

1日の時間配分とルール

外出したりなど用事もあるので、あまり厳格に決めることはできないが、一旦下記でやってみようと思う。

時間配分

  1. その日集中してやると決めた作業(3時間)
  2. 急ぎの作業(1時間)
  3. メールへの返信・スケジュール管理(0.5時間)
  4. バックアップ管理・バージョン管理(0.25時間)
  5. 業務の見直し(0.25時間)

ルール

  • その日の15時までにきたメールは18時までに返信する
  • 15時以降に来たメールは翌日12時までに対応する
  • 平日に片付かなかった分は土日いずれかを使うことを許容する

1は3の時間を使って前日に計画したスケジュールにそって実施するもの。
2は、何かとすぐやってほしいと言われる作業が発生しがちなので、あらかじめ時間を見ておくもので、なければ1の作業に追加するか、勉強など他のことに使う。4は管理法を明記する。5はレポートの形で書きためる。
実際に使った時間についてはToggleを利用してログを取り、見直しに利用する。

ドキュメント管理

ワークフロー関連のドキュメントはGoogleドライブで管理する。
共有が容易であること、デバイスによらず閲覧が可能であるから。


つらつらと思いつくままにアイデアを書きとめたかたち。まずやってみて、という感じになってしまい、デザインリサーチの話とは全く関連がないが、あの本の中でもプロセスの透明化と検証を可能にすることが繰り返し述べられていたので、重要なことなのだと思う。
どんな制約の中から、どんな選択肢を考え、それをどんな基準で取捨選択したか、実際にどう実行したか、その結果どうなったか、その結果から何を見直すか・・・この繰り返しかのかなと。
いまは、選択肢を考えたところだろうか。取捨選択をせずに実行に移そうとしているわけだから、すでに流れから逸脱しているのか。

近日新しい仕事が入る予定なので、そこで実際ワークフローにそってやってみることになると思うので、また、なやみあぐねじたばたする様をここに書くと思います。

ワークフロー改善への道2

前回の記事が前提の把握に終始したので、今回こそ詳しく仕事のプロセスをまとめたい。前回に引き続き、粒度を測りかねるままだが、とりあえず思いつくことを書いてくので、今回も長くなる。

概ね以下のような流れ。

  1. スケジュール押さえ・見積もり
  2. 受注決定
  3. デザインカンプ受け取り(入稿)
  4. 制作〜初回プレビュー
  5. 修正対応などのあと納品・公開
  6. アフターフォロー
  7. メンテナンス

仕事の内容によってもこのワークフローは変わる場合がある。今回は仮に、WordPressを利用した、ローカルビジネスの小さなボリュームのサイトを作ると仮定する。最終的なサイトオーナーからの直接受注ではなく、間に取引先が入り、下請けをするという形。

スケジュール押さえ・見積もり

スケジュールの押さえは大体見積もりとともにやってくる。この段では、見積もりの結果次第で受注が決まるというより、見積もりの結果、こちらへの発注内容に差が出る。つまり、できれば全部まるっとお任せしたいが見積もりが予算を超えたら、先方でできる部分はやることになるらしく、こちらの作業が減る結果、見積もり額を減らすことがある。

見積もり時には最低限サイトマップを提出してもらうようにお願いするが、「ある過去案件と同じ感じで」というやりとりになる場合もある。できれば、仕様書や要件定義書、コンテンツ一覧としてのサイトマップやページ一覧を用意して欲しいと思うものの、全てが揃ってくる事はまずない。不完全なサイトマップがあるだけの場合も多いので、不足分を補ったり、ページ一覧を書き起こすこともある。WBSを書くために要件定義をすることもある。「ある過去案件と同じ感じで」とは言っても全く同じ事はあり得ないので、ページ一覧や要件定義を書きながら手を動かす中で、見積もり時に確認する点などを洗い出していく。

WBSや要件定義に時間を取られるので時短を図りたい。また、取引先とも要件定義を共有して、機能の確認やタスク管理に役立てたいと思うものの、書く内容が専門的になってしまうことや、先方は特に把握したいと望んでいなかったり(?)するのでうまくいっていない。要件定義〜WBS〜タスク進行管理をトータルに管理するツールもおそらくあるのだろうが、今のところGoogleドキュメントで個別に管理している点もある意味課題。

WordPress案件では必要な機能が実際に実装可能なのかを検討することもある。こういうものは、時間があるときなら勉強と割り切って、見積もり外になってもいいので、テストサイトなどを使って試すこともある。

過去案件と同じぐらいで、、、という場合、取引先では「前と同じぐらい」の金額を前提としているのはわかっているので、では前と同じ金額でやりましょうか、というやりとりになることも少なくない。ありがたいのは、やってみた結果しんどかった場合は(双方それを認識しているので)作業の途中で追加料金をお願いする流れもある。

見積もりでは受注を左右するシーンがほぼないので、スケジュールもこの時点で締め切りが見えているものが多い。ただ、締め切りは決まっているのに、入稿のタイミングはわかりません、ということもある(信じられないことに)。

見積書を書くこともあれば、メッセージでX万円ぐらい、というやり取りで決まることもある。

受注決定

契約書を交わすということがないので、受注決定の瞬間というのはかなり曖昧だ。見積もりの返事があったときなのか、入稿があったときなのかよくわからない。スケジュール押さえの後なかなか連絡がない場合は、他のスケジュールにも影響するので、どうなっているのか確認することが必要になる。
未受注のもののスケジュールや管理は曖昧になっていると、これを書きながら気がついた。

デザインカンプ受け取り(入稿)

デザインカンプはウェブデザイナがPSDやイラレで作った、サイトデザインの仕上がり図である。これを受け取ったときに、ざっと全体を確認し、最初のプレビューの内容と期限を相談する。
このときに不明点について山ほど確認することになる。またトップページだけ先に与えられ、他のページは五月雨でデータが届くことも少なくない。

また、受注が決まったときに、少し手が空いていれば、入稿に先んじて必要な作業を進めておくことがある。特にWordPressの場合は先にやっておけることが山ほどある。サイトオーナーで記事を増やしていく前提なので、要件に応じて先に管理画面の部分を整えておいたり、必要なプラグインやブロックエディタのカスタマイズなど。また、テーマ設計についても、スマホでのメニュー開閉など、必ず必要になるようなものは部分的に先にコーディングしておく。

制作〜初回プレビュー

引き受ける仕事は全てレスポンシブサイトになる。本来であれば、PC用、タブレット用、スマホ用、などと、画面幅に応じたデザインのカンプが欲しいところだが、これが揃って出てくる事はほぼない。トップページだけはPCとスマホ両方あるが、それ以外のページはPC用のみか、スマホ用のみか、どちらかのみが提供される。また、制作する全てのページのデザインカンプが作られるわけではない。ページによってはテキスト原稿のみやワイヤーフレームのみの場合もある。なので、足りないぶんは、私の裁量で作ることになる。裁量になる部分については、特段の必要がない限り、こちらの勝手で進めることが多く、プレビューの後に気になるところを修正対応する流れ。

修正対応などのあと納品・公開

プレビューまでが、トップページとテンプレート部分だけなら1週間以内、全体的なプレビューの場合は2週間ぐらい。修正を繰り返しつつ、納品までは入稿から1ヶ月後というのが理想。これ以上かかるのは正直苦痛で、なるべく短いサイクルで終わらせたい。時間がかかればかかるほど、関係者は記憶を失うし、私も同じだ。覚えておく、思い出す、はある意味コストである。

記憶を失うのは仕方ないので、それを前提にして、WordPress内での実装のことなどは、なるべくドキュメントで残すなどしておきたいが、あまり万全にできていないのは課題。要件定義とも関わる部分かもしれない。

新たに取り組みたいこととして、スタイルガイドの制作がある。WordPressサイトの場合は、概ねブロックで実装することになると思うので、非公開の記事でモジュールライブラリを残しておくなどの方法を検討したい。

プレビュー後、コンテンツの入力を私自身ではなく取引先やサイトオーナーが入力していく場合が多い。入力のトレーニングはこの段階か、公開後に行うこともある。

納品時の状況を少し細かくメモをしておくのは大事だと思うが、あまりできていない。データを残す、キャプチャをとる、実装などの判断についてのプロセスを明らかにしておくなど。カルテのような物を想定しているが、具体的にどう作るのか定まらないので、先行事例があるなら参考にしたい。
ただ、それってコーダの仕事かな?と思うこともある。引き受けるプロジェクトで誰もそういうことをやっているように見えないのと、そうすることが自分の仕事のためになるかと思ってやるべきかなと考えている。しかし、そういうわけでモチベが低いので、なかなか、手につかない。

アフターフォロー

WordPressでサイトオーナーが更新をしたり取引先が管理したりする中で、不明点はいつでも問い合わせに応じるし、ちょっとした修正点などは、納品後も対応することがある。サイトオーナーの更新トレーニングがサイト公開後になった場合などは、そこそこ大きな修正も引き受けるが、それは本来やるべきことの範囲だったとするので、追加料金をとることはない。

詳細は後述するが、WordPressは定期的なアップデートが必要になるが、そういうものは、別途メンテナンスとして、年額や1回いくらの取り決めで対応することもある。

メンテナンス

サイト納品後、WordPressのアップデートを数回分と、使い方の問い合わせや、テキスト修正などの軽度の変更を随時対応するというような内容で、1年更新の契約のような形で引き受けることがある。その場合、WordPressのメジャーアップデートがあった際に、いついつ更新を実行します、の連絡をこちらから行う。こちらから働きかけが必要なので、メンテナンス取引はあまり増やしたくないと思っている。

また、取引先のひとつとは月額で契約していて、その取引先が関与するサイトについて全般的に管理を行う形態もある。これはあくまで先方から依頼が来て諸般対応するものなので、負担には思わずむしろ定期収入でありがたい。

ひとつひとつのサイトに、それほど深く長期的に関わることができないのが、今の体制の限界とも言える。基本的に下請けなので、作業スコープから考えると、浅い関わりになるのは当然でもある。個人的な考えだが、ウェブサイトのことは、日々の管理や長期的な展望など、やれるだけのことは自社でやる上で、制作会社に助言を仰いだり外部の専門家に意見を求めるなりするのが良いと思っている。小さな企業であっても。そういうとき、気軽に相談ができる相手のひとりでありたいという思いはある。


以上がワークフローだが、書き出して思うのは、自分の能力上、継続的に管理するということが苦手で面倒と思う節があること。それなのに他人には「ちゃんとする」を求めてしまいがち。あとは、取引先との付き合いの長さや深さゆえになあなあでもなんとか回っている部分が多くあること。そのことはそれで双方問題がないのなら、特に改善する必要はないのでは?と思ってしまう。元も子もないが、だからと言って、このままを続けていくことには、漠然とした不安があるので今見直そうとしているのだ。見直すポイントには判断基準が必要そうだということはわかった。

次回は改善するポイントについての優先順位や判断基準について考察を続けていきたい。

ワークフロー改善への道1

はじめに

『デザインリサーチの教科書』という本を読んで、自分なりに仕事のプロセスや「仕事の仕方のデザイン」に取り組んでみようかと。
自分の仕事のプロセスは、なんとなく身につけたもので、特段何かのメソッドに則ってやっているものではない(そういうものがあるのかどうかも調べたことはない)。いつでも自分の使える時間は限られているので、効率よく、かつ、最終的な納品物がいい感じになって、また仕事をちゃんとした値段で頼んでもらえるように考えてみようと思う。

とりあえず、長文になってしまうと思うけど、まず、どのように仕事をこなしているかを、順を追って書き出してみようと思う。

業態について

前提として、私はフリーランスで働いている。HTML/CSSコーダ、jQueryなら多少書ける。WordPressサイトも作るが、PHPをイチから書く事はできないし学ぶつもりもあまりない。CMSなら他にMovable Typeも扱える。一応、得意なのはCSSを書く事だと思っている、場合によればSASSも使う。

事務所は持たず、自宅で働いている。生活費全般は手固い仕事についている夫に頼っているので、仕事で稼いだお金は食費(ほぼ折半)と猫の世話代と遊ぶお金と将来の蓄えになる。あまりガツガツ稼ぐ緊迫感は正直ない(今のところは)。とはいえ、ずっとこの先コーダで食べていけるのかという思いはある。具体的な将来のビジョンがあるわけでもない。起業は念頭にないが、やりたくないというよりは今必要を感じないだけで、何かのっぴきならないことでも起これば別だと思っている。

主な取引先は同業者か制作会社で、仕事の多くは下請けとしてコーディングのみの発注を引き受けている。いずれも地元のお客さんなので、会って打ち合わせすることは滅多にないし、コロナのおかげでほぼ0になった。ほぼ全てのやりとりはオンラインで、多くはチャットツールによるもの、メールも少し。ミーティングが必要ならスカイプやZoomで、という感じである。新規の顧客はほぼいないし、新規開拓の営業はできていない(やる気もあまりないかもしれない)が、コロナで仕事が減るような予感があるので、今後は必要があるように思っている。

所属している団体は特にない。WordPressのコミュニティに時々参加している。去年はオンラインで地元のMeetsUpに参加、その前は今住んでいるところのMeetsUpにオフラインで参加することもあった。

仕事の受注について

先にあげた取引先の制作会社から、ざっくりした内容でスケジュール押さえの打診がある。概ね2〜4週間先のことがほとんどだが、時々急ぎで1週間や2週間後には納品という場合もある。
内容は、ウェブサイトのトップページとテンプレートになるページを1〜3ページだけをこちらでHTML/CSS/JSを書いて、あとは納品まで相手任せだったり、他人が作ったWordPressサイトのちょっとした修正からリニューアル、自分が過去に納品したサイトの改修やメンテ、新規のWPサイトをいちから作るなど。他、カラーミーショップなどを使ってECショップの作成をすることも。
概ね、最初のデザインカンプを受け取ってから1週間以内で最初のプレビューを出すペース。案件が複数並走する場合もあるが、しんどいので、なるべく避けたい。ただ、スケジュールの打診があっても、カンプの入稿が遅れるのもザラなので、スケジュール調整はほぼ諦めている。その結果締め切りがタイトになったら徹夜で終わらす。先方の都合でデータ遅れるのにこっちの締め切りが伸びないのはかなりむかつくが、それでも仕上げてしまうので、重宝されているのかなという節はある。

いうまでもなく、コーディングはウェブサイト制作の最下流の工程である。私が仕上げたものが一般に公開される。一方で、上流の工程に口を出す事はほぼない。本来、上流の工程で検討されるべきことが、この最下流までなあなあにされているプロジェクトもよくある。結果、コーディングの際に大量の確認事項やここで決定される機能も少なくない。仕様書さえない仕事も少なくないが、そのことを誰も問題と思っていないようである。取引先とは付き合いが長いため、詳しい説明を聞かずとも大体このぐらいの感じで作れば良いというのが曖昧にはあるのは確かだが、明文化とか、上流工程ではっきり決めて欲しいと思うことも多々ある。

コーディングについて

基本的にオリジナルで制作

デザインをもらって新しいサイトをコーディングする場合、bootstrap などのフレームワークを利用する事はほぼなく、あまり詳しくもない。フレームワークを使わない理由は、そもそも依頼されるデザインがフレームワークと相容れないような独自のデザインであることが多いから。デザイン通りのレイアウトを満たすフレームワークを探す時間を使うなら、過去に自分が作ったCSSから切り貼りした方が早いと判断してしまう。それが理にかなっているかどうかはわからない。

同じ理由でWordPress案件なら、WordPress公式テーマをベースにしてオリジナルでテーマを作る。無料有料問わず、ちまたにあるテーマをベースに開発しようと思った事はない。有料テーマでも開発が止まる事はあるし無料テーマは言わずもがな。一方で公式テーマはそれなりに考え込まれたものではあろうし、コードには学ぶものもあるので、新しいものが出るたび必ずチェックして利活用するようにしている。

コード以外の制作物

マニュアル

CMSを使ったウェブサイトの納品では、特段の依頼があればマニュアルは作るものの、積極的には作らない。手がけているのはたいてい規模の小さいビジネスのWordPressサイトなのでサイトの管理者が変更になることも少なく、一度手順を覚えてもらえれば継続的に使えるようにしているため。なるべく管理画面上で多くのヒントを残しておくようにするなど工夫する。

情報アーキテクチャのドキュメント

制作依頼の段階で、サイトマップ、ページ一覧がない場合に作って共有する場合がある。これは依頼主側が提供してくるものが不十分であることや、そもそもこのような書類を作る文化のない人も多いと感じる。ワイヤーフレームを書くことなどは割と得意なので、上流工程への関わりを持つことが単価アップにつなげられるのではないかという思いもあるが、少々面倒くさい。面倒というのは、そもそも、クライアントの傾向として、情報アーキテクチャに対して費用をかけるという発想がないので、その部分をお金にするにはまず説得から入らなければならない。

スタイルガイド

明確に求められる事はないが、時々自分のために作っておくことがあった。今後は積極的に作り、残すことで、デザイナの次の仕事に生かしてもらえることを考えている。

要件定義について

このプロセスに介入したいと思っているが、あまりうまくいっていない。直接クライアントとやりとりをする立場にないし、プロジェクトに関わる際もほんの一部で直接に状況がわからないため、ウェブサイト制作全体の要件定義についてはほぼ無理と思っている。
一方で、コーディング発注者との間の要件定義については、求められないが、こちらのWBSを書くついでに、簡単にまとめるようにしている。ただ、相手に渡しても確認されていなかったり理解されなかったりするので、意味を成さないなと感じる。これも課題。

契約書について

書いたことも書かされたこともほぼない。ウェブサイトのメンテナンス契約をするときだけ、業務内容の確認として簡単なものを書いて渡す事はある。これは改善が必要なのではないかと常々思っているが、取引先でもあまりその文化や習慣がないのでなあなあになっていると感じる。


ワークフローというより、前提の確認という文書になってしまった。続く記事でもう少し作業プロセスについて詳しく書きたい。

思うのは、書籍などを読んでいても、私が、現実的に、出会うクライアントや取引先とのやり取りとかけ離れすぎていて、あまり参考にならない気がすること。情報アーキテクチャに対する意識も低い、プロセスの透明化や意思決定の経緯やプロジェクト自体の透明化、諸般の事柄の明文化、プロジェクト管理、スケジュール管理などあらゆるものが曖昧糢糊としている印象だ。また、ウェブやデジタル化への意識も周回遅れ、世代遅れと感じる。書籍などを書く人は第一線を走る人であろうし、出てくる例もそれなりに先を走る人たちの例なのだろうと思う、意識高いと思う。逆に自分や現実のお客さんは、どうだろう。ギャップがあるように感じるのは私が物を知らないせいだろうか。

などと、愚痴めいたことを言っていても仕方ないので、まず、隗より始めよ、かなと思っている。

次の記事はこちら↓↓↓↓↓

サイトマップ・ページ一覧・ワイヤーフレームの役割を考え直す

これは、サイトを設計するときの「三種の神器」と言えるほど重要なものだと思っていますが、どうも形骸化しているように感じるので、もう一度これらのドキュメントについて考え直して見たいと思います。
とにかく、ちゃんと作ろうよ、という話です。

何かをちゃんと考えてみるとき、5W1Hについてそれぞれ考えます。
すなわち「What Who When Where Why How」。
5Wではこれらのドキュメントの役割について見直し、1Hではどう作るかについて、実際にテンプレートを用意しようと考えています。

What このドキュメントは「何」なのか?

サイトマップサイトの構造を示す
各コンテンツがサイト内でどのように分類されるのかを示す
どのようなページに分かれるのかを示す
ページ一覧サイト内のページを一覧化したもの
ページのタイトルやURLなどのページごとの固有の情報を網羅したもの
ワイヤーフレームページにどんなコンテンツが入るのかを示すもの
サイトの機能として必要なものを仮にレイアウトするもの(あくまで仮置き)

Who このドキュメントは「誰」が作るのか?

基本的には Web ディレクタの責任においてこのドキュメントが作られるべきだと考えています。
基本的にはウェブサイトの制作会社がクライアントに提出して承認をもらうものだと思いますが、稀にはクライアント社内に Web ディレクタが存在している場合には、その人の責任で作られて制作会社に提供されることがあるかもしれません。
ディレクタより下流の作業担当者の責任でこのドキュメントを作ることは考えにくいです。Web デザイナの仕事であるとは思えません。ただし、ページ一覧についてはコーダーが制作したり、精査するとより良いものになると考えます。Web ディレクタの仕事の肩代わりではなく、あくまでコーダーが代筆したものを、Web ディレクタが責任を持って確認する、ということになると思いますが、ディレクタが忙しい場合はコーダーに依頼をすることも検討に入れると良いと思います。

When このドキュメントは「いつ」作るのか?

ウェブサイトの企画が決まり、仕様書が与えられ、要件定義書を同意した後に、これらのドキュメントがクライアントに提出されるものと想定しています。
この3つのドキュメント自体の制作順については、
①サイトマップ
②ページ一覧
③ワイヤーフレーム
と進むのが自然だと思いますが、ページ一覧を作りながらサイトマップに訂正を入れたり、ワイヤーフレームを書きながら見落としたページをページ一覧に書き入れたり、など、現実には3つそれぞれを同時に編集しながら進めることが考えられます。
作り始めるタイミングは、要件定義書にはサイトマップを含むことがあることから、要件定義書と並行して進めることが考えられます。また、リニューアルの案件の場合、現行のサイトのページ一覧を企画の段階で入手していることも考えられます。もちろん、この場合は新しいプロジェクトに合わせて新旧比べながら比較のできるページ一覧を作ることが望ましいです。
また、これらのドキュメントを仕上げながら、同時にデザインを進める場合も考えられます。それは構わないと思いますが、デザインが全て仕上がる前には、このドキュメントについて決着がついている必要があります。

Where このドキュメントは「どこ」にあるのか?

クライアントに承認されたのちは、クライアント、Web ディレクタ、Web デザイナ、コーダーなど、プロジェクトに関わる人全てがこのドキュメントを共有すべきと考えます。
クラウドなどにおいて、編集権限を管理しつつ、いつでも最新版や過去の変更経緯が確認できるようになっているとより良いですね。

Why このドキュメントは「なぜ」作るのか?

これまでの話にちょいちょい出てきますが、最終的には、これから作るサイトについて「クライアントに承認を得るため」に作ります。また、承認までの過程、すなわち制作会社内での検討やクライアントとの検討のためにも利用されます。
では、それぞれ「何を」検討したり承認してもらうものなのか?

サイトマップ・サイトの構造
・どんなコンテンツがあるか(概要)

→サイトの概要をざっと把握してもらい必要なページやナビゲーションを想起する
ページ一覧・作成するページがいくつあるか
・ページの基本情報(記事タイトル、URLなど)
・ページのメタ情報(ウインドウタイトル、SEO概要、SEOキーワードなど)
・更新する頻度

→全てのページを一覧して過不足の確認やそれぞれに必要な情報を想起する
→更新頻度などページやサイトの管理運用について想起する
ワイヤーフレーム・サイトに必要なナビゲーション
・ナビゲーションのラベル
・分類などがある場合はそれの列挙とラベル
・コンテンツの具体的な内容

→具体的なナビゲーションや分類を把握してそれらのラベルの妥当性を検討する
→原稿を揃えるために必要な情報を提示する

・・・・いかがでしょうか?
あったりまえじゃん、と思った方も多いことでしょう。
他方で、これらのドキュメントを「なんとなく」作っていたかもと思う方もあるかもしれません。
何を検討したり把握してもらって承認してもらうのかを念頭におくと、なんのためにこれらの書類が必要なのかよくわかると思います。
ここからは、少し余談なので、大事なことはわかったからどう作ればいいのかを知りたい方は先に進みましょう。

俺が分かっていればいいじゃないか
by. Web ディレクタ

なんていう声があるかもしれません。
「俺が歩くドキュメントだから、これらの書類をいちいち作る必要はない、時間の無駄だ」
とおっしゃる方があるかもしれません。ここまで横暴な言い方ではなくても、自分の頭にあって「よく十分に把握している」のに、わざわざ書面にして共有する必要を感じない、また、共有したり、はっきり承認を得てしまうと、かえって都合が悪い、そういう風に考える向きはあるように思います。
ですが、わざわざ私がこんな記事を書いているのはなぜなのか?
「わざわざ書面に起こして共有して承認を得ることが必要である」
と、私が考えているからです。お、相容れないぞw

Web ディレクタって忙しいでしょ?

Web ディレクタという立場にある人を数人思い浮かべてみると、どの方も、大抵、もっすごい忙しいと思います。でも、それは、これらのドキュメントを作らずに、自分の頭に全てをしまってあるために、結果、忙しくなっているのではないかな、と思います。
これらのドキュメントを作らずプロジェクトを進めるとき、デザイナもコーダーも、作るものについて何か不明点が見つかって確認が必要になった時に、その都度ディレクタに尋ねるしかなくなります。でも、ディレクタは忙しい、つかまらない、返事がこない・・・・・その結果デザイナやコーダーの作業は滞ります。
また、ディレクタ自身も「よく十分に把握している」という状況はおそらく一過性のものであって「必ず忘れます」「必ず見落としがあります」。人間の頭なんてそんなものです。
自分の頭から取り出して、ドキュメントに起こすことで固着し、かつ他の人に見てもらうことで検討が進んでより確かなものになります。その価値は、決して「時間の無駄」などではありません。
ディレクタは自分の頭をよく読んでくれる有能な右腕を育てましょう。

それでも「時間の無駄だ」と言われたら?

「クライアントにこのようなドキュメントを見せても理解してもらえない」
「デザインを早く見せろと言われる」
「上司にこれらの書類に時間をかけるなと言われる」
「コーダーやデザイナからこれらの書類を求められたことがない」
などなどがこれらのドキュメントに対する否定的な意見として耳にしたことがあるものでしょうか。
それでも、これらのドキュメントを作りましょう。人に見せる100%完璧なものでなくてもいいのです。
ページ一覧だけは、ページを省くわけにはいきませんが、その他のものは手書きレベルや大事なページだけを抜き出すなど、手間を減らしてでも、作りましょう。
正直、これらのドキュメントが不要だという人の方がおかしいです。また、これらのドキュメントを作るための時間や費用を確保しないプロジェクトや進め方もやはり危険と考えた方が無難だと思います。
こういうドキュメントをきちんと作れる能力の方が、それを認めない上司やクライアントやプロジェクト自体よりも、ずっと大事ですし、あなたのキャリアにつながると私は確信します。

プロジェクト全体のこのドキュメントの役割とは

以上で5Wの検討を終えました。
残す1Hを検討する前に、もうひとつの問題点をしておきたいと思います。それは、 Web ディレクタだけでなく、ウェブサイトの制作にあたって、そのプロジェクトに関わる人がそれぞれの役割を把握していないのではないか、という点です。プロジェクト全体を俯瞰する時に、やるべきタスクが、プロジェクトに関わる人(プレイヤー)に正しく振り分けられていないのではないか?ということ。
なので、少し引いて、ウェブサイト制作全体でどんな段階があり、これらのドキュメントが全体の中でどのような役目を担っているかを考えてみます。

0. プロジェクトの始まり

ウェブサイトを作ると決まる前の話です。おそらく、企業には何らかの課題があり、その課題についての解決にウェブサイトが必要、もしくはウェブサイトに新しい役割を持たせるなどの判断が下されたはずです。ここで「ユーザーの需要」や「サイトの目的」の芽が生まれているはずです。クライアントの中で、何かモヤモヤとした「なんとかしたい」の思いが渦巻き始めていることでしょう。
成果物:クライアントの要求

1. プロジェクトの企画

クライアントのモヤモヤは企画書という形になって制作会社の選定を行うかもしれません。もしくは、クライアントのモヤモヤを受け取った制作会社が素敵な企画書を仕上げるでしょう。クライアントも企画書を承認してくれました。
成果物:企画書

2. サイトの要件定義書

素敵な企画書をもとに、これから作るサイトの要件を定義します。サイトの目的、目標、納品物についてや、ターゲットブラウザ、機能や実装した後の運用について、細かく話し合い、定めていきます。なかなか面倒な作業ですが大事なことです。何をどこまで誰がやるのかをクライアント、制作会社の両者で同意が得られるまで、決めていきます。
この段階でサイトの完成までに必要な作業全てをスコープしてそれぞれのプレイヤーに振り分けていきます。
成果物:要件定義書

3. サイトの構造を考える

要件定義書を手掛かりに、ウェブサイトに必要なコンテンツをピックアップし、どのような構造でサイトを練り上げていくか考えます。具体的にはサイトマップを形にし、必要なページを一覧にしていきます。コーダーがそわそわとページ一覧を眺めて自分のタスクを考え始めています。あ、今、ページ一覧に修正を依頼しました。何か足りないものがあったようです。
そろそろ最終のスケジュールも視野に入れて、進捗管理のタスクリストも作り始めるころですね、Web ディレクタの頑張りどころです。
成果物:サイトマップ、ページ一覧

4. サイトの骨格を考える

サイトの構造ができたところで、各情報にたどり着くように、具体的なナビゲーションを検討します。ようやくウェブサイトの見た目や操作についての検討になってきました。この辺りからデザイナやコーダーも頻繁に会議で発言するようになるでしょう。サイトマップとページ一覧を片手に、ワイヤーフレームとにらめっこしてたどり着けないページがないように検討しなくてはいけません。また、サイトの原稿についても不足がないか、どんなものがある方がわかりやすいページになるか、デザイナは想像を巡らすでしょう。写真やイラスト、図説、魅力的なキャッチコピー・・・ああ、そうですね、ライターも招いて会議が必要かもしれません。
ここで基本的なUIについても検討します。最終的にはデザイナのさじ加減でしょうか。コーダーはハラハラしながら自分の工数を数え始めます。手を動かしていないと不安になってきたのか、テスト環境を整え始めました。
成果物:ワイヤーフレーム

5. サイトのデザインを考える

ワイヤーフレームとこれまでの資料を片手に、デザイナはサイトデザインをヴィジュアルとして落とし込んでいきます。UIの要件を満たし、ナビゲーションの要件を満たし、さらに盛り込むべき情報の要件を満たしていきます。なおかつ、魅力的な見え方をするように、頭を絞ります。あ、今、とても画期的なレイアウトを思いついたようですが、レスポンシブのスマホ画面で問題になるため、コーダーが渋い顔をしました。工数が増えすぎるようですね。デザイナからのUI上の問い合わせに対して、コーダーはテスト環境上で簡単なモックやデモを見せて答えているようです。
デザイナが頑張っている間に、続々とサイトの素材が集まってきました。
成果物:デザインカンプ

6. サイトのデータを作り込む

デザイナが全てのデザイン的な課題を解き終えるのを待たずに、コーダーは決定しそうな部分からサイトのデータを作り込みます。サイトマップから構造を読み取り、CMSの構造を整え、ページの一覧を眺めながらURL構造と折り合いをつけ、すでに決定しているメタデータを組み込むでしょう。またワイヤーフレームを参考にHTMLの要素を並べ、UIを実装していきます。そうこうしているうちにデザインカンプにクライアントの承認がおり、デザイナから最終のデータを渡されました。そしてついに、サイトの全てのデータが仕上がりました。コーダーは力尽きて倒れているようです。

7. サイトのテストと確認作業

コーダーの作業がひと段落する頃、プロジェクトの人員を集めて、要件定義書を改めて確認しながら、サイトのテストと確認をします。ここでサイト一覧がまた活躍します。このドキュメントをもとに、全てのページをもれなく確認します。一覧があれば、作業の分担ができます。誰がどのページをチェックしたかを書き込めば重複が防げますし、責任の所在もはっきりします。ダブルチェックも容易になるでしょう。
ワイヤーフレームがあることでサイトを初見するスタッフにもそのページがどのようなコンテンツを持つべきなのか、画面に表示されているページが妥当かのかを判断することができるようです。
そしてこれらのテストの後、クライアントとも同じようにテストと確認を行い、サイトはめでたく納品されました。

8. 半年後のウェブサイトを修正する

みんなで健闘をたたえあったプロジェクトの打ち上げから半年後、クライアントからクレームの電話がありました。ウェブサイトのページが思ったように更新できないと言うのです。連絡を受けたWeb ディレクタはもう次のプロジェクトを進めていて、納品してしまったプロジェクトのことは覚えていません。でも、なんだかクライアントの言い分には違和感があります。まず、要件定義書を確認しました。最終の要件定義にはその機能については記載がありません。次にページ一覧を確認しますが、そのページについては更新頻度は1年以上もしくは更新しないと言う記載があります。クライアントはもしかしたら、他のページと勘違いをしているのかもしれない、そう思いながらディレクタはもう一度クライアントと話をした結果、やはり勘違いだと言うことが発覚しました。ページ一覧と要件定義書を共有してあったので、何ページのなになにを確認してください、と言う話でまあるく和解ができたのです。

・・・・・・・・・などと、気がついたら物語調になってしまいました。この後、リニュアル依頼編も用意してありますが、さすがに蛇足がすぎるのでやめておきます。
いかがでしょうか?サイトマップ、ページ一覧、ワイヤーフレームが所々で利用されていることがわかったと思います。と同時に、これらのドキュメントがなかった場合、スタッフ間で情報の共有が難しかったり、作業分担ができなくなったり、確認漏れが出たりなど、プロジェクトは混乱に満ちたものになるでしょう。

How これらのドキュメントを「どう」作るか?

なぜ作るのか?で挙げた、それぞれのドキュメントでの検討や承認を得る目的を踏まえて、Googleドキュメントでテンプレートを作成してみました。

ウェブサイトツール(Googleドライブ)

記事の公開日の時点ではページ一覧のみテンプレートがあります。
そのほかは現在鋭意製作中ですm(_ _)m

2019/10/8追記 サイトマップのサンプルを掲載しました。ワイヤーフレームはUIツールをいくつか追加しました。