<html>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<title>Chapter 9: Planning Construction</title>
<link rel="STYLESHEET" type="text/css" href="images/xpolecat.css">
<link rel="STYLESHEET" type="text/css" href="images/ie.content.css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div STYLE="MARGIN-LEFT: 0.15in;"><a href="toc.html"><img src="images/teamlib.gif" width="62" height="15" border="0" align="absmiddle" alt="Team LiB"></a></div></td>
<td align="right"><div STYLE="MARGIN-LEFT: 0.15in;">
<a href="LiB0060.html"><img src="images/previous.gif" width="62" height="15" border="0" align="absmiddle" alt="Previous Section"></a>
<a href="LiB0062.html"><img src="images/next.gif" width="41" height="15" border="0" align="absmiddle" alt="Next Section"></a>
</div></td></tr></table>
<br>
<div class="chapter">
<a name="ch09"></a>
<h1 class="chapter-title"><span class="chapter-titlelabel">Chapter 9: </span>Planning Construction</h1><div class="section">
<h2 class="sect2-title">
<a name="276"></a>Overview</h2>
<a name="277"></a><a name="IDX-109"></a>
<p class="para">Okay, you've read the chapter title, and you're thinking, "What's a chapter on project planning doing in a technical architect's handbook?" But remember, part of the technical architect's role is to give the project manager information on construction tasks, the order in which they should be completed, and what dependencies exist. And these days, J2EE architects are often called on to fill the project management role.</p>
<div class="highlights">
<p class="first-para">This chapter develops and adds detail to the high-level requirements described in <a href="LiB0018.html#84" target="_parent" class="chapterjump">chapter 3</a>. After completing use-case analysis and object and data modeling, you should have enough information for a more detailed plan. My project plans typically have the following types of activities:</p>
<ul class="itemizedlist">
<li class="first-listitem">
<p class="first-para">Use-case analysis</p>
</li>
<li class="listitem">
<p class="first-para">Object modeling</p>
</li>
<li class="listitem">
<p class="first-para">Data modeling</p>
</li>
<li class="listitem">
<p class="first-para">Data migration/conversion activities</p>
</li>
<li class="listitem">
<p class="first-para">Coding and unit testing</p>
</li>
<li class="listitem">
<p class="first-para">System testing</p>
</li>
<li class="listitem">
<p class="first-para">User acceptance testing</p>
</li>
<li class="listitem">
<p class="first-para">Deployment activities</p>
</li>
</ul>
<p class="para">
<a name="278"></a><a name="IDX-110"></a>Many of these categories can be divided into lower-level tasks. For example, you could break down use-case analysis into major subject areas of the application. Typically, I divide coding and unit-testing activities into major classes, with one or two people assigned to each.</p>
<p class="para">
<a class="internaljump" href="#ch09fig01">Figure 9.1</a> shows a task list from the ProjectTrak application we've been using in the "<a href="LiB0028.html#123" target="_parent" class="chapterjump">Architect's Exercise</a>" sections.</p>
<p class="last-para">
<div class="miscfigure">
<a name="279"></a><a name="ch09fig01"></a>
<div class="miscfigure-informaltable">
<table border="1">
<thead>
<tr valign="top">
<th class="th" scope="col" align="left" valign="top" colspan="7">
<p class="table-para">Tasks</p>
</th>
</tr>
<tr valign="top">
<th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">ID</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">Task Name</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">Duration</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">Start</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">Finish</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">Resource Names</b>
</p>
</th><th class="th" scope="col" align="left">
<p class="table-para">
<b class="bold">% Complete</b>
</p>
</th>
</tr>
</thead>
<tbody>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">1</p>
</td><td class="td" align="left">
<p class="table-para">Use case analysis</p>
</td><td class="td" align="left">
<p class="table-para">1 day?</p>
</td><td class="td" align="left">
<p class="table-para">Thu 6/26/03</p>
</td><td class="td" align="left">
<p class="table-para">Thu 6/26/03</p>
</td><td class="td" align="left">�</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">2</p>
</td><td class="td" align="left">
<p class="table-para">
<b class="bold">Design Activities</b>
</p>
</td><td class="td" align="left">
<p class="table-para">24.5 days</p>
</td><td class="td" align="left">
<p class="table-para">Thu 6/26/03</p>
</td><td class="td" align="left">
<p class="table-para">Wed 7/30/03</p>
</td><td class="td" align="left">�</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">3</p>
</td><td class="td" align="left">
<p class="table-para">Screen design and prototype</p>
</td><td class="td" align="left">
<p class="table-para">16 hrs</p>
</td><td class="td" align="left">
<p class="table-para">Mon 7/28/03</p>
</td><td class="td" align="left">
<p class="table-para">Wed 7/30/03</p>
</td><td class="td" align="left">
<p class="table-para">Derek Ashmore</p>
</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">4</p>
</td><td class="td" align="left">
<p class="table-para">
<b class="bold">Object Modeling</b>
</p>
</td><td class="td" align="left">
<p class="table-para">4 days</p>
</td><td class="td" align="left">
<p class="table-para">Thu 6/26/03</p>
</td><td class="td" align="left">
<p class="table-para">Tue 7/1/03</p>
</td><td class="td" align="left">�</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">5</p>
</td><td class="td" align="left">
<p class="table-para">Base functionality</p>
</td><td class="td" align="left">
<p class="table-para">16 hrs</p>
</td><td class="td" align="left">
<p class="table-para">Thu 6/26/03</p>
</td><td class="td" align="left">
<p class="table-para">Fri 6/27/03</p>
</td><td class="td" align="left">
<p class="table-para">Derek Ashmore</p>
</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">6</p>
</td><td class="td" align="left">
<p class="table-para">Skill set tracking capability</p>
</td><td class="td" align="left">
<p class="table-para">8 hrs</p>
</td><td class="td" align="left">
<p class="table-para">Mon 6/30/03</p>
</td><td class="td" align="left">
<p class="table-para">Mon 6/30/03</p>
</td><td class="td" align="left">
<p class="table-para">Derek Ashmore</p>
</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
</tr>
<tr valign="top">
<td class="td" align="left">
<p class="table-para">7</p>
</td><td class="td" align="left">
<p class="table-para">Baseline capability</p>
</td><td class="td" align="left">
<p class="table-para">8 hrs</p>
</td><td class="td" align="left">
<p class="table-para">Tue 7/1/03</p>
</td><td class="td" align="left">
<p class="table-para">Tue 7/1/03</p>
</td><td class="td" align="left">
<p class="table-para">Derek Ashmore</p>
</td><td class="td" align="left">
<p class="table-para">0%</p>
</td>
<