<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Managing Product Development &#187; architecture</title>
	<atom:link href="http://www.jrothman.com/blog/mpd/category/architecture/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jrothman.com/blog/mpd</link>
	<description>Management, especially good management, is hard to do. This blog is for people who want to think about how they manage people, projects, and risk.</description>
	<lastBuildDate>Tue, 22 May 2012 13:23:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Creating a Partnership Between the PM and the Architect</title>
		<link>http://www.jrothman.com/blog/mpd/2007/01/creating-a-partnership-between-the-pm-and-the-architect.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2007/01/creating-a-partnership-between-the-pm-and-the-architect.html#comments</comments>
		<pubDate>Tue, 09 Jan 2007 15:55:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8000</guid>
		<description><![CDATA[&#160; Udi has a great post, Money?! Schedule?! But I]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Udi has a great post, <a href="http://udidahan.weblogs.us/archives/363">Money?! Schedule?! But I</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2007/01/creating-a-partnership-between-the-pm-and-the-architect.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Attempt at Pictures for Implement by Feature vs. Architecture</title>
		<link>http://www.jrothman.com/blog/mpd/2006/12/an-attempt-at-pictures-for-implement-by-feature-vs-architecture.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2006/12/an-attempt-at-pictures-for-implement-by-feature-vs-architecture.html#comments</comments>
		<pubDate>Sat, 09 Dec 2006 04:08:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[implement by feature]]></category>
		<category><![CDATA[agile architecture]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8010</guid>
		<description><![CDATA[&#160; Joshua asked me to clarify what I meant by implementing by architecture. Here&#8217;s my picture-story. When a team implements by architecture, they tend to be functionally-based teams implementing across the architecture. See . When a team implements by feature, &#8230; <a href="http://www.jrothman.com/blog/mpd/2006/12/an-attempt-at-pictures-for-implement-by-feature-vs-architecture.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Joshua <a href="http://www.haloscan.com/comments/jrothman/116526991602639187/#345985">asked</a> me to clarify what I meant by implementing by architecture. Here&#8217;s my picture-story.</p>
<p>When a team implements by architecture, they tend to be functionally-based teams implementing across the architecture. See <img src="http://www.jrothman.com/weblog/Architecturebyteams.jpg" alt="" />.</p>
<p>When a team implements by feature, they are cross-functional teams. See <img src="http://www.jrothman.com/weblog/Featuresbyteams.jpg" alt="" />.</p>
<p>When teams implement by feature, they do what&#8217;s needed in whatever part of the architecture is needed. To the outsider, it looks a little messy&#8211;sometimes incomplete. But to the team, the architecture is cohesive. And, most importantly, the team is not writing code they won&#8217;t use.</p>
<p>When teams implement by architecture, they are too likely to implement more than they need&#8211;ever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2006/12/an-attempt-at-pictures-for-implement-by-feature-vs-architecture.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Architect as Consultant?</title>
		<link>http://www.jrothman.com/blog/mpd/2006/05/architect-as-consultant.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2006/05/architect-as-consultant.html#comments</comments>
		<pubDate>Mon, 15 May 2006 19:21:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8054</guid>
		<description><![CDATA[&#160; Given the thoughtful comments on Architects Must Write Code and Testing Design, I&#8217;m wondering if some of the difference in our beliefs stem from our perceptions of the architect&#8217;s role. I see the architect as the technical lead who &#8230; <a href="http://www.jrothman.com/blog/mpd/2006/05/architect-as-consultant.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Given the thoughtful comments on <a href="http://www.jrothman.com/weblog/2006/04/architects-must-write-code.html">Architects Must Write Code</a> and <a href="http://www.jrothman.com/weblog/2006/05/testing-design.html">Testing Design</a>, I&#8217;m wondering if some of the difference in our beliefs stem from our perceptions of the architect&#8217;s role.</p>
<p>I see the architect as the technical lead who shepherds a product through the overall design, someone who explains enough about the system and how it hangs together so that the other developers can take their parts write/design them (in whatever way works for them). I now believe in as-little-as-possible design-up-front and as-much-as-possible emergent design. Because I see the architect role as a shepherding role, I see the architect as immersed in the project, and integral part of the project team who needs to continue to participate to see when things go south.</p>
<p>But I wonder if some of you are thinking about the architect as more of a consultant. The more up-front design and architecture you do, the more you can try to create the architect-as-consultant role. Certainly, architects for buildings do become &#8220;merely&#8221; consultants once the general contractor starts the actual construction. (Yes, this is one more reason the building construction metaphor doesn&#8217;t work for me.) If the role of the architect <strong>on your project</strong> is more of a consultant, then I can understand why you disagree.</p>
<p>I&#8217;m going to have to think about ways to make the architect-as-consultant model successful, even if I don&#8217;t believe in it. (For me, this all points to feedback for the architect.) Certainly, many of my clients believe in and use that model. Just because I can point out ways that it doesn&#8217;t work doesn&#8217;t mean these folks can or are willing to change. So, I&#8217;ll be thinking about ways to make it work&#8211;and the risks involved. (This will make the organize-your-project-team chapter easier to write too. Duh.) I may well ask you for your comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2006/05/architect-as-consultant.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Testing Design</title>
		<link>http://www.jrothman.com/blog/mpd/2006/05/testing-design.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2006/05/testing-design.html#comments</comments>
		<pubDate>Wed, 10 May 2006 14:06:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8055</guid>
		<description><![CDATA[&#160; In Architects Must Write Code, several architects responded that I was too prescriptive (I&#8217;m summarizing their comments). Maybe. But I don&#8217;t think so. I&#8217;m in a nice hotel, where things just don&#8217;t work completely right. Yes, the hotel is &#8230; <a href="http://www.jrothman.com/blog/mpd/2006/05/testing-design.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>In <a href="http://www.jrothman.com/weblog/2006/04/architects-must-write-code.html">Architects Must Write Code</a>, several architects responded that I was too prescriptive (I&#8217;m summarizing their comments). Maybe. But I don&#8217;t think so.</p>
<p>I&#8217;m in a nice hotel, where things just don&#8217;t work completely right. Yes, the hotel is clean (that&#8217;s the big thing with me). The hotel upgraded me to a suite with an oval bathtub. Clearly, people of normal height and weight had not tried to shower here&#8211;the tub is about 9 inches (a hand-width) from the toilet. <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.jrothman.com/weblog/uploaded_images/tub-753719.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://www.jrothman.com/weblog/uploaded_images/tub-724304.jpg" alt="" border="0" /></a>There&#8217;s no grab bar to balance on one foot while stepping into or out of the tub/shower. I tried to draw you a picture here.</p>
<p>I travel a lot and stay in lots of hotels. This problem is similar to many problems I encounter in hotels: outlets too far away from where I want to use them, chairs too high, sinks too high, and my favorite, too-high shower heads. Most of the time, the shower head is too far away for me to adjust. I&#8217;m short (5 feet tall), but if I can&#8217;t reach the shower head, it&#8217;s set for a 6-foot plus person. If the people who designed the hotel rooms had tried them at all, they would realize they were creating difficult situations for a significant percentage of the users.</p>
<p>So, it&#8217;s possible that architects don&#8217;t <strong>need</strong> to code and participate in a project. But I don&#8217;t know of other effective techniques to test the design. Testing design with a thought experiment is insufficient. Testing design by using it provides much more feedback.</p>
<p>However you arrange your project, think about how to test the design&#8211;the design in-the-large, and all the little pieces of design-in-the-small. Certainly, test-driven development is great for testing design-in-the-small. And if you have a whole project that&#8217;s willing to try test-driven design for overall architecture, that&#8217;s fabulous. But if you don&#8217;t or you can&#8217;t see how, at least think about how to build in testing of the design, especially design-in-the-large as you proceed through the project. Then you won&#8217;t end up with a bathtub practically in the toilet, requiring people to balance while stepping in and out of the shower.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2006/05/testing-design.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Architects Must Write Code</title>
		<link>http://www.jrothman.com/blog/mpd/2006/04/architects-must-write-code.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2006/04/architects-must-write-code.html#comments</comments>
		<pubDate>Wed, 26 Apr 2006 16:02:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile architecture]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[transition to agile]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8060</guid>
		<description><![CDATA[&#160; I had the opportunity to read Practices of an Agile Developer: Working in the Real World. The book has 45 tip to help developers become agile. And, it&#8217;s clear that Venkat and Andy know the problems of becoming an &#8230; <a href="http://www.jrothman.com/blog/mpd/2006/04/architects-must-write-code.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I had the opportunity to read <a href="http://pragmaticprogrammer.com/titles/pad/index.html">Practices of an Agile Developer: Working in the Real World</a>. The book has 45 tip to help developers become agile. And, it&#8217;s clear that Venkat and Andy know the problems of becoming an agile developer, because along with each tip, there&#8217;s a devil-thought to show people what happens in the real world. There are also angel-thoughts to show people why this tip works.</p>
<p>My favorite tip, and something I&#8217;ve been saying in my assessment reports for the last 10 years is &#8220;Architects Must Write Code.&#8221; (p. 155 in this book.) Venkat and Andy say this about ineffective architects:</p>
<blockquote><p><em>They typically come in during the beginning of a project, draw all kinds of diagrams, and leave before any serious implementation takes place. There are many &#8220;Powerpoint architects&#8221; out there, and they aren&#8217;t effective because of lack of feedback.</em></p></blockquote>
<p>I&#8217;ve been a part of projects for 30 years. I&#8217;ve been assessing projects for 10 years. And every time I&#8217;ve seen an architect who doesn&#8217;t participate in the code-writing part of the project, I&#8217;ve seen an architecture that doesn&#8217;t do what it&#8217;s supposed to do, never mind extend to inevitable changes in requirements that occur during the project.</p>
<p>Architects need feedback about their architecture. The only way to get feedback is to write the code, integrate it, and see what happens.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2006/04/architects-must-write-code.html/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Requirements and Architecture</title>
		<link>http://www.jrothman.com/blog/mpd/2003/09/requirements-and-architecture.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2003/09/requirements-and-architecture.html#comments</comments>
		<pubDate>Tue, 30 Sep 2003 07:51:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[product development]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8315</guid>
		<description><![CDATA[&#160; If you haven&#8217;t read Joel Spolsky&#8217;s entry on office architecture stop and read that first. Finally, an office in which people can successfully work alone andwith other people &#8212; and who don&#8217;t have to worry about keeping their voices &#8230; <a href="http://www.jrothman.com/blog/mpd/2003/09/requirements-and-architecture.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>If you haven&#8217;t read <a href="http://www.joelonsoftware.com/index.html">Joel Spolsky&#8217;s</a> entry on <a href="http://www.joelonsoftware.com/articles/BionicOffice.html">office architecture</a> stop and read that first. Finally, an office in which people can successfully work alone <em>and</em>with other people &#8212; and who don&#8217;t have to worry about keeping their voices down. I&#8217;m amazed at the space per person (425 sq. ft if I understood). Most offices give people 80-100 sq. ft. My home office is 22&#215;14, 308 sq. ft. I have room to spread out my various current projects, room to meet with one or two people, room for a flip chart and of course all the machinery I need. The offices must feel palatial to the people at Fog Creek.</p>
<p>What Joel describes is requirements starting with the users. Notice that he doesn&#8217;t separate functional requirements from non-functional requirements. What people call non-functional requirements are the attributes of the system that make it usable &#8212; or not. When you start with the users, and describe requirements holistically as Joel did, (well, ok, he has some design, such as &#8220;offices with doors&#8221;), you describe what makes the system (in this case, the offices) usable.</p>
<p>Esther and I are teaching consulting skills to architects this week. We have a variety of simulations as part of the workshop, and we&#8217;ve noticed that great architects act in certain ways:</p>
<ul>
<li>Great architects look for multiple alternatives to explore.</li>
<li>Great architects look for how the user claims to want to use the system, and continue to probe on currently-visible extensions for how people may want to use the system in the future.</li>
<li>Great architects discover the primary system attributes that will drive the system and build on that. One architect described this as building from the inside out.</li>
</ul>
<p>The primary system attribute, what other people call a non-functional requirement, is often unclear. For our simulations, the attribute was the ability to support a physical load. For software systems, it can be some aspect of performance, reliability, security &#8212; or some combination. Here&#8217;s an example. Our telephone systems in the USA are build around a primary system attribute: the system will have uptime of greater than 99.999% over the course of a year. (The telco requirements are probably higher than that, but it&#8217;s a lot of 9s after the decimal.) That means that you can virtually always pick up a land-line phone and get a dial tone. That requirement drove the architecture of the telephone systems, both for each central office and all the interconnections.</p>
<p>If you find that primary attribute, or the combination of attributes, the system architecture alternatives appear &#8212; to me it looks as if they become clear to architects by magic.</p>
<p>The lesson I&#8217;m taking away this week is that if you want a coherent architecture, it&#8217;s more important to discover the primary system attributes rather than all the functional requirements. No matter how you approach requirements, make sure you take a holistic approach. Don&#8217;t use techniques that separate functional and non-functional requirements. If you do, you won&#8217;t see the architecture emerge.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2003/09/requirements-and-architecture.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

