<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Clint Hill &#187; work</title>
	<atom:link href="http://clint-hill.com/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://clint-hill.com</link>
	<description>Father, Son, Brother, Uncle</description>
	<lastBuildDate>Thu, 11 Aug 2011 13:57:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='clint-hill.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Clint Hill &#187; work</title>
		<link>http://clint-hill.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://clint-hill.com/osd.xml" title="Clint Hill" />
	<atom:link rel='hub' href='http://clint-hill.com/?pushpress=hub'/>
		<item>
		<title>Virtual Machine</title>
		<link>http://clint-hill.com/2011/07/30/virtual-machine/</link>
		<comments>http://clint-hill.com/2011/07/30/virtual-machine/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 17:15:36 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://clint-hill.com/?p=92</guid>
		<description><![CDATA[Something that Oracle could do to truly revolutionize the Sun stack they bought: drop the &#8220;Java&#8221; from the Virtual Machine name. This would solidify the fact that you can use nearly any style language you wish, not just Java. Twitter moving to the JVM more and more The important part of this presentation is about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=92&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Something that Oracle could do to truly revolutionize the Sun stack they bought: drop the &#8220;Java&#8221; from the Virtual Machine name. This would solidify the fact that you can use nearly any style language you wish, not just Java.</p>
<span style="text-align:center; display: block;"><a href="http://clint-hill.com/2011/07/30/virtual-machine/"><img src="http://img.youtube.com/vi/ohHdZXnsNi8/2.jpg" alt="" /></a></span>
<p><a title="Twitter moving to the JVM more and more" href="http://ontwik.com/rails/oreilly-oscon-java-2011-raffi-krikorian-twitter-from-ruby-on-rails-to-the-jvm/" target="_blank">Twitter moving to the JVM more and more</a></p>
<p>The important part of this presentation is about the virtual machine and it&#8217;s performance/scaling. Not the language. In fact if he never mentioned languages at all the presentation is still valuable.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=92&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/07/30/virtual-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Next Exciting Thought Exercise</title>
		<link>http://clint-hill.com/2011/07/23/next-exciting-thought-exercise/</link>
		<comments>http://clint-hill.com/2011/07/23/next-exciting-thought-exercise/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 07:27:00 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">https://clinthill.wordpress.com/?p=89</guid>
		<description><![CDATA[At work and personally my next new shiny thing is the design of a framework for delivering JavaScript applications. It&#8217;s more than building modules, listing them in a gallery and then HOWTO documents, rather a top-to-bottom application UX delivery system. This is more tricky than might be imagined. It&#8217;s a gallery of modules. It&#8217;s a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=89&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At work and personally my next new shiny thing is the design of a framework for delivering JavaScript applications. It&#8217;s more than building modules, listing them in a gallery and then HOWTO documents, rather a top-to-bottom application UX delivery system.</p>
<p>This is more tricky than might be imagined. It&#8217;s a gallery of modules. It&#8217;s a development environment. It&#8217;s a hosting environment. It&#8217;s a core library. And not always in this order.</p>
<p>It&#8217;s exciting stuff to think about. And it&#8217;s really cool to think about doing it with JavaScript (client and server sides). A few things that cause concern are the definitions of things.</p>
<ul>
<li>What is a module?</li>
<li>What is a component?</li>
<li>Is there a difference?</li>
<li>Or are components applications?</li>
<li>What does &#8220;development environment&#8221; mean?</li>
<li>Does hosting mean you get what you get or does it mean you can get what you want?</li>
</ul>
<p>It&#8217;s answers to these questions that are critical in designing a system like this.</p>
<p>Fun stuff.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=89&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/07/23/next-exciting-thought-exercise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Sometimes it needs to be said</title>
		<link>http://clint-hill.com/2011/07/17/sometimes-it-needs-to-be-said/</link>
		<comments>http://clint-hill.com/2011/07/17/sometimes-it-needs-to-be-said/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 16:50:37 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[smart]]></category>

		<guid isPermaLink="false">http://clint-hill.com/?p=64</guid>
		<description><![CDATA[And this post says it so well: http://plope.com/smartest_guy_in_the_room<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=64&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>And this post says it so well: <a href="http://plope.com/smartest_guy_in_the_room" target="_blank">http://plope.com/smartest_guy_in_the_room</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=64&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/07/17/sometimes-it-needs-to-be-said/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Educate the junior</title>
		<link>http://clint-hill.com/2011/07/04/educate-the-junior/</link>
		<comments>http://clint-hill.com/2011/07/04/educate-the-junior/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 05:10:15 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[software education experience]]></category>

		<guid isPermaLink="false">https://clinthill.wordpress.com/?p=54</guid>
		<description><![CDATA[One of the bigger tasks I have at work is to create software libraries and systems that others will reuse. The hardest part of that task is to create something that will prevent common mistakes and/or prevent a developer from implementing non-standard software. It&#8217;s my opinion there is a missed opportunity to educate the users. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=54&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the bigger tasks I have at work is to create software libraries and systems that others will reuse. The hardest part of that task is to create something that will prevent common mistakes and/or prevent a developer from implementing non-standard software. It&#8217;s my opinion there is a missed opportunity to educate the users.</p>
<p>There&#8217;s an old joke about the C programming language that says it allows you to shoot yourself in the foot. And mostly that is a fair statement to make, with one caveat. The caveat is: if you don&#8217;t know what you&#8217;re doing, you will shoot yourself in the foot. And this isn&#8217;t a software programming thing. You can say this about a lot of things. But with software it just so happens that as a lesser experienced developer you are capable of creating and doing quite a number of things with the power to shoot yourself in the foot and not know it until there&#8217;s blood everywhere.</p>
<p>Creating libraries and systems that can be reused and won&#8217;t allow the user to do something bad (knowingly or not) is really hard to do. How do you write a recipe for a casserole that prevents the cook from burning it? Or how do you give someone directions to your house that prevents them from missing the street sign? Now imagine writing a recipe for a casserole that allows someone else to write their own recipe for a casserole? That&#8217;s what a software library should do when it&#8217;s really good.</p>
<p>It&#8217;s difficult if the target audience of the library or system is what some call &#8220;junior&#8221;. This is to say they have less experience or don&#8217;t have the skill set utilized in the library. A Java developer using a JavaScript library for example. Juniors may barely have experience with JavaScript but now be tasked with using this library. Obviously a good library will help them do things with the limited experience. But that doesn&#8217;t help them with the things outside of the library. And it certainly won&#8217;t prevent all the mistakes that can be made.</p>
<p>I was reminded of this today as I was putting together a desk I bought from Target. The instructions were written with a tone of &#8220;don&#8217;t worry we&#8217;ve written instructions to all but do the work for you.&#8221; Pretty bold claims. Then I imagined myself without the experience I have with regular tools. What if I wasn&#8217;t sure what a Phillips screwdriver was? And what if I didn&#8217;t know the difference between that and a flat-head? Sure there is a picture showing both, but the screws provided accept both. Hmmm. One is certainly better than the other for this setup, but what if I didn&#8217;t know better. The problem is the instructions gave me just enough to get the work done, but not prevent blood. What was missing was experience or an education of how to use the tools and in what context they&#8217;re suited best.</p>
<p>It&#8217;s my opinion that what is really missing in a lot of software development is education. Not the school kind of education, but the hands-on side-by-side kind. Giving presentations, pair programming and one-on-one work are a few ways to help educate. In most cases it just takes time, sitting with a junior and showing them. Write some code. Make some changes. Explain. Rinse and repeat. It&#8217;s quite alright to develop libraries and systems that make mistakes go away. But it would be even better to educate. With an educated development crew, the libraries can focus on doing cool stuff and drop the need for all the preventative stuff. Teach the developer to prevent mistakes themselves.</p>
<p>Educating the junior isn&#8217;t easy. In fact it&#8217;s down-right hard. Each developer learns differently and at varying pace. But if taught there is more to gain than what a perfectly written library could ever achieve. In fact that is the crux of my thought. More juniors turned into seniors is always a better investment. A library may prevent the majority of mistakes but it will always be just a library. A developer who is educated will always be capable of producing more.</p>
<p> </p>
<p> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=54&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/07/04/educate-the-junior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Decisions, decisions</title>
		<link>http://clint-hill.com/2011/06/25/decisions-decisions/</link>
		<comments>http://clint-hill.com/2011/06/25/decisions-decisions/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 15:56:17 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">https://clinthill.wordpress.com/?p=51</guid>
		<description><![CDATA[There are decisions to make almost everyday where I work. Software development is literally chock full of decisions. Who makes the decisions is most often is not the problem. Rather the lack of someone making a decision is most often the problem. I work in a company that is pretty typical with corporate hierarchal authority. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=51&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are decisions to make almost everyday where I work. Software development is literally chock full of decisions. Who makes the decisions is most often is not the problem. Rather the lack of someone making a decision is most often the problem.</p>
<p>I work in a company that is pretty typical with corporate hierarchal authority. There are your C level people, VPs and all kinds of middle management. Mostly it makes sense who is who.</p>
<p>It&#8217;s only confusing however at the lower levels. The levels where there isn&#8217;t a hierarchy. In most cases the upper levels of authority like to empower the lower levels (they say they do at least). That word empowerment is funny. By definition it means to relinquish power to someone else. All well and good. But does that mean that every subordinate has authority? And what are the boundaries to that empowerment? When everyone has the power to make a decision, who gets the last one? There has to be a final decision right?</p>
<p>In software development some would call this &#8220;design by committee&#8221; and generally it&#8217;s with a bad connotation. The dislike for committees is likely due to the belief that there ought to be a final decision in software design. Even if that decision is temporary or up for change later, it&#8217;s kind of final and work can move forward. Otherwise if there isn&#8217;t a final decision work doesn&#8217;t progress. Instead it&#8217;s debated and deliberated ad nauseam.</p>
<p>There are good reasons to have committees. There are also very good reasons to debate decisions. Some decisions are long lasting and making the wrong call could effect a large number of people in a harmful way. These kinds of decisions need thorough analysis. But those kinds of decisions are few and far between. Really far between. If decisions are rated on a scale of 1-5 with 5 being &#8220;really impacting&#8221; and 1 being &#8220;harmless to all&#8221; I would guess that 90% of all decisions are below a 3. Committees should be for the 4 &amp; 5 decisions. In all other cases there should be only one person making the decisions. Leave the debating to the important stuff. One person should make a call on the rest allowing everyone to move forward.</p>
<p>The trouble is when there isn&#8217;t a hierarchy at the levels where 90% of decisions exist. Those decisions are then left for the upper levels of authority to make. And then the volley starts. Upper levels say &#8220;go ahead with whatever you think best&#8221; and then lower levels say &#8220;we&#8217;ve come up with a bunch of options &#8211; which one do you want&#8221; and then back and forth. Empowerment is great, but it&#8217;s not always useful for a group or committee.</p>
<p>For me personally, it&#8217;s frustrating when groups don&#8217;t have a single lead, decision maker or tie-breaker. It&#8217;s really aggravating in some cases. It&#8217;s pretty often that I really want to make the call, and most often I do voice my opinion. Sometimes I get it right and others will follow. Sometimes I get it wrong and someone else gets it right. Generally I&#8217;m Ok with this (but often I think my decision is better for whatever ego driven reason). I&#8217;m sure many others feel this same way, it&#8217;s pretty natural I&#8217;d guess. And I&#8217;m sure there are others that don&#8217;t really care to make a decision, rather they&#8217;d prefer to be told. This is fine too, in fact it would argue my point that each level of organization ought to have one decision maker. Consider what would happen to a team that is full of people not interested in making a decision but have been empowered to do so?</p>
<p>Decision making occurs everyday. There ought to be someone designated to do just that at all levels of an organization. At least someone designated as a tie-breaker.</p>
<p> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=51&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/06/25/decisions-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Working on large code bases for large web sites</title>
		<link>http://clint-hill.com/2011/04/30/working-on-large-code-bases-for-large-web-sites/</link>
		<comments>http://clint-hill.com/2011/04/30/working-on-large-code-bases-for-large-web-sites/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 00:15:19 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[software platform]]></category>

		<guid isPermaLink="false">http://clint-hill.com/?p=36</guid>
		<description><![CDATA[I watched a presentation today from a Facebook engineer that ended with valuable information. Generally an interesting presentation about the ups and downs they faced with their code. Surprisingly blunt about technology choices as well. Around 46:40 he talks about Practical Advice. This is the part that caught me. Evolution of Code Design at Facebook [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=36&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I watched a presentation today from a Facebook engineer that ended with valuable information. Generally an interesting presentation about the ups and downs they faced with their code. Surprisingly blunt about technology choices as well.</p>
<p>Around 46:40 he talks about Practical Advice. This is the part that caught me.</p>
<p><a title="Evolution of Code Design at Facebook" href="http://www.infoq.com/presentations/Evolution-of-Code-Design-at-Facebook" target="_blank">Evolution of Code Design at Facebook</a></p>
<h3>Don&#8217;t Branch</h3>
<p>This I wholeheartedly agree with. In my opinion when you decide to branch code to do any form of refactoring you immediately create new problems for yourself. The first problem is &#8220;when&#8221; to merge back into trunk. Do you merge after everything in your branch is perfectly tested? Or do you wait till both your branch and trunk are perfectly tested? If there was bug fixing going on in trunk while you&#8217;re branched testing has to occur for both &#8211; but which version do you accept &#8211; the trunk or the branch?</p>
<p> </p>
<p>The second problem is what to do with conflicts of the merge that exist on the edges of your changes. Do you refactor the trunk just enough to fit the edges? Or do you change your branch to accomodate those edges in trunk? Do you allow these edges to change your design in the branch? And how much time do you spend doing this &#8211; just enough to mash it together or enough to have long lasting durability?</p>
<p>The easy answer in my opinion is stay in trunk. Get over your fear of &#8220;what happens when my code change breaks the rest of it&#8221;. That&#8217;s what revisions are for and if you&#8217;re smart with your unit testing and judicious with your commits you should never run into broken builds. Most often in my experience developers who immediately reach for a branch are developers who don&#8217;t have sufficient tests for their code (me included).</p>
<p><strong>Confession</strong>: I am often saying &#8220;I&#8217;ve never been mad at myself for branching&#8221;. And the reason I say this is because I work(ed) in environments where trunk is abused and brittle. Or often too many developers are making too many changes at once. I say it with the sentiment that I want to branch and not have to worry about what the flaky trunk might do. And when I merge, my branch is the winner in all cases. But always (and I mean always) this causes me to have to make code changes in trunk after I merge. Always. And usually afterwards I say &#8220;should&#8217;ve stayed in trunk&#8221;.</p>
<h3>Take advantage of product churn</h3>
<p>Ah. I love this one. It&#8217;s so obvious but yet so hard to really get. In most large websites there is a product group of folks who decide the features. They change their minds a lot. And that is exactly their job. So when they do, why would you stick with a design and/or architecture that solved the previous problem. Or why would you try to design something so long lasting? Take advantage of a clean slate.</p>
<p> </p>
<p>There are plenty of arguments to be made for architecting solid systems that can support change. My point is don&#8217;t get bound up in architecture decisions so tightly that when change does occur you become adverse. Be flexible and open to the idea that product teams may come to you and say feature X is the next best thing. And that feature may create a ripple in your architecture. If it does, roll with it and re-architect.</p>
<p>It&#8217;s my experience that the reason why you get this adversity to re-architect is generally due to the size of the development staff. When you&#8217;re dealing with a large staff it is nearly impossible to make <strong>quick</strong> changes to the architecture. Every developer has to be at a minimum aware of the change, and most of them often implement the change. And when the number of developers is high, the slower the change can occur.</p>
<h3>Focus on usability</h3>
<p>This is targeted at developer APIs and frameworks, and I do agree but I&#8217;m less adamant about it. Or should I say that my version of adoption isn&#8217;t so much about winning hearts and minds as much as working with people willing to adopt. And there is a big difference. Top down mandates are a result of working with a development staff that is just not very good with adoption. Organic adoption happens with a certain chemistry and culture. Develop those things first then adoption comes with it. This is a tricky bit to do. And in my experience top down mandates have always been easier (especially in larger development groups). I wish it were different, and I realize my personal style is much different than others.</p>
<p> </p>
<p>It all depends at which level you are. For instance I hate being told &#8220;which way to do it&#8221;. But if I&#8217;ve come up with a better way I wish I could give the top down mandate. Organic adoption is always better, but it just doesn&#8217;t always work.</p>
<p>Generally I agree with all of these kinds of advice. But admittedly I&#8217;m more liberal in my approach to design/architecture/coding. I find myself more open than others to change and especially using yet unfamiliar technology. I dislike rigor and unnecessary structure or process, but I&#8217;m not opposed to smart and reasonable standards. But the advice given was sound in my opinion.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=36&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/04/30/working-on-large-code-bases-for-large-web-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>HIG is dead, long live HIG</title>
		<link>http://clint-hill.com/2011/01/07/hig-is-dead-long-live-hig/</link>
		<comments>http://clint-hill.com/2011/01/07/hig-is-dead-long-live-hig/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 08:57:26 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://clint-hill.com/?p=29</guid>
		<description><![CDATA[At work on numerous occasions I&#8217;ve had debates with co-workers about what a good JavaScript library provides. Specifically we debate about &#8220;widgets&#8221;. Or rather I always chide about them Widgets are those things that the library creates for you like text box, button, drop-down and the infamous Calendar. And in doing so the library relieves [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=29&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At work on numerous occasions I&#8217;ve had debates with co-workers about what a good JavaScript library provides. Specifically we debate about &#8220;widgets&#8221;. Or rather I always chide about them <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Widgets are those things that the library creates for you like text box, button, drop-down and the infamous Calendar. And in doing so the library relieves you of some effort, and/or provide you some uniformity. That second bit is what my co-workers always bring to the table. Their point is that if you have 100 developers all building software for your website &#8211; you really want them building these widgets in the exact same way to help with maintenance/updating and general look and feel. And that&#8217;s a huge point. It&#8217;s critical. And on occasion they bring up companies like Apple to point to the fact that when you build software for the Mac you get these &#8220;widget&#8221; libraries built in, so that your app looks like a &#8220;Mac app&#8221;. If the core library gets updated to change the menu bars for example, your app receives the same treatment for free. No work on your part.</p>
<p>I always retort with &#8220;Ok but let&#8217;s not build every single widget out there for our library&#8221; or more often &#8220;we don&#8217;t need a library that has all that built in already.&#8221; And what I mean by that is, in my opinion, I&#8217;ve never seen websites in particular use the exact same widgets across multiple pages. Sure there are the few, staple widgets that in fact are the same across whole sites. But that list is small. No more than 10. Everything else is some variation of a staple. And if that&#8217;s the case it would be better to have a library that provides the absolute core set of widgets, but has huge extensibility built into it. Which is to say, a developer could start with the core widget, but extend it to add features for his/her own needs.</p>
<p>The bottom line is that there has to be uniformity across all the widgets (colors, button positions etc). Most often this is referred to as HIG (Human Interface Guidelines). However, it&#8217;s my opinion that HIG should not always be followed. Developers always start with HIG, but usually it falls away after a special new feature is requested and it doesn&#8217;t quite fit into whatever HIG they&#8217;ve adopted. What do you do? Do you change the intent of the new feature to match the HIG? Or do you side-step the HIG to get the new feature just right? And why would a JavaScript library be involved in that decision?</p>
<p>That last question is always where I end. Why would I use a library that caused me to choose one way or the other? If for example the library had &#8220;all the widgets I needed&#8221; with little extensibility, I&#8217;d be forced to look at reducing the feature possibly to fit into the capability of the library or because of the HIG. And is the HIG always the final answer? But if the library had all the extensibility I needed, is it more possible I could meet the HIG by developing a 1-off widget?</p>
<p>This is a tricky situation. There are a lot of ramifications in both directions. Generally speaking you&#8217;ll stay out of trouble with a library that &#8220;does it all&#8221;. And more often than most people would like to admit, you&#8217;ll encounter a circumstance where that library doesn&#8217;t do &#8220;this one thing&#8221;. I don&#8217;t claim to be right, but I stand by my style and philosophy. I usually lean on the side of &#8220;give the developers the room&#8221; instead of the other side &#8220;give the developers all they&#8217;ll need&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=29&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2011/01/07/hig-is-dead-long-live-hig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
		<item>
		<title>Observations on expectations and praise</title>
		<link>http://clint-hill.com/2010/12/11/observations-on-expectations-and-praise/</link>
		<comments>http://clint-hill.com/2010/12/11/observations-on-expectations-and-praise/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 19:32:30 +0000</pubDate>
		<dc:creator>Clint Hill</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://clint-hill.com/?p=15</guid>
		<description><![CDATA[There are a few things I&#8217;ve observed recently that have made me understand work relationships a little better. Regarding expectations, I&#8217;ve noticed that those who are expected of and feel they deliver on those expectations often get disappointed. This is usually due to the fact that what they delivered was expected and therefore not praised [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=15&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are a few things I&#8217;ve observed recently that have made me understand work relationships a little better.</p>
<p>Regarding expectations, I&#8217;ve noticed that those who are expected of and feel they deliver on those expectations often get disappointed. This is usually due to the fact that what they delivered was expected and therefore not praised as some work of heroics. Or maybe they weren&#8217;t praised at all. Generally: do as you&#8217;re asked and nothing happens.</p>
<p>Put another way, those who continue to deliver as expected are generally asked to do more of the same. And with each delivery less and less praise is received (if at all). This is strictly because it is expected to be done. However this disappoints those who deliver on expectations because everyone could use a &#8220;pat on the back&#8221;.</p>
<p>Now consider those who deliver more than expected. This often receives some form of &#8220;praise&#8221;. Naturally praise is given when &#8220;above and beyond the call of duty&#8221; work is performed. For those who did the work ,this feels great. And sometimes it&#8217;s motivational. People will want to do it again.</p>
<p>Let&#8217;s then consider when &#8220;above and beyond the call of duty&#8221; work is performed again and again. That creates a new normal. A new expectation level. Above and beyond is now expected. Praise then wanes. Disappointment brews in those who do the work. This demotivates those doing the work. Sometimes indignation creeps into those doing the work.</p>
<p>In all cases bad blood is created between those asking for the work and those doing the work.</p>
<p>In my opinion there are things that each side can change that may prevent disappointment and bad blood.</p>
<p>For those doing the work: do it for yourself &#8211; not for praise from others. Remember that work is what you make it. If you are lucky enough to really enjoy your work, leave it at that. If you don&#8217;t enjoy your work, well that&#8217;s an entirely different problem. Expecting praise will lead to disappointment because it&#8217;s never enough. Face it, people are busy and what you do in the big picture is yours. No one else is going to really appreciate your work. Learn to praise yourself and learn to need only yourself to feel good about what you do. If you are happy doing exactly as you&#8217;re expected, good for you. The world needs more of you. If you want to do more and go beyond the call of duty, good for you. You should be proud of yourself for being a person who wants to do more. But in either case don&#8217;t get ruined when others don&#8217;t provide you some form of recognition. Recognize yourself.</p>
<p>For those asking for the work: remember what people are sacrificing. At work it&#8217;s easy to say that within the window of 8-5, people are willingly giving up life&#8217;s pleasures such as free time and leisure activities. But don&#8217;t forget that there are emotional and psychological sacrifices made all the time. Pride and ego are big things, and you shouldn&#8217;t inadvertently stomp all over them by simply forgetting to throw a little praise around. If people are delivering on your expectations, remind them that you know. Let them know that you&#8217;re paying attention. Rub their pride a little with an easy &#8220;thanks&#8221; or &#8220;good job&#8221;.</p>
<p>&#8220;No good deed goes unnoticed&#8221;. Bullshit. They do all the time. So keep doing those deeds for yourself and learn to notice others doing the same.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clinthill.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clinthill.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clinthill.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=clint-hill.com&amp;blog=12465104&amp;post=15&amp;subd=clinthill&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://clint-hill.com/2010/12/11/observations-on-expectations-and-praise/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb6ca1943e287398e9b81acad2db919d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">clinthill</media:title>
		</media:content>
	</item>
	</channel>
</rss>
