<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Musings of a Software Development Manager</title>
	
	<link>http://edgibbs.com</link>
	<description>Lessons from managing developers</description>
	<lastBuildDate>Fri, 30 Jul 2010 23:08:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MusingsOfASoftwareDevelopmentManager" /><feedburner:info uri="musingsofasoftwaredevelopmentmanager" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Agile Rollout Warning Signs</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/bxpIIyqop88/</link>
		<comments>http://edgibbs.com/2010/07/30/agile-rollout-warning-signs/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 23:08:01 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/2010/07/30/agile-rollout-warning-signs/</guid>
		<description><![CDATA[I was working with some clients recently when one of them leaned back in his chair and announced: &#8220;Well Paul&#8217;s leaving. I guess he finally got fed up.&#8221; The group of developers and sysadmins were disappointed at the news. They wondered why he decided to leave as it turned out he was a key champion [...]]]></description>
			<content:encoded><![CDATA[<p>I was working with some clients recently when one of them leaned back in his chair and announced:</p>
<p>&#8220;Well Paul&#8217;s leaving.  I guess he finally got fed up.&#8221;</p>
<p>The group of developers and sysadmins were disappointed at the news.  They wondered why he decided to leave as it turned out he was a key champion from the QA group in pushing a closer working with development.  He had a development background and had been key in moving the group from manual testing to working closely with developers on tests and adding automated regression suites.  </p>
<p>Early the group had explained they had adopted Scrum in the development group about 18 months prior and it had been going fairly well with now 5-6 Scrum teams.  One of the biggest successes had been the closer work with testing.  And a familiar problem area had been the problem in getting the true product managers to attend the Scrums as they largely delegated to business analysts and much was lost in the translation.</p>
<p>Apparently the QA team was going to take this hard as Paul had been a champion of theirs in evolving their practices and fighting for respect for QA at the table.  It sounded like he had pushed hard and been denied many things because of an unwillingness to imagine QA outside of their traditional role.  This shop also had the Mercury suite of testing tools which often is a sign of a dedication to focusing on bug databases and record and playback style automation that doesn&#8217;t go nearly far enough in improving the effectiveness of QA.  </p>
<p>I hope they succeed as the people I worked with all seemed bright and dedicated to improving things, but a couple of these items are classic warning signs in an Agile adoption that is likely to run out of steam.  </p>
<ul>
<li>Agile champions like this QA developer pitching in the towel.</li>
<li>Product managers delegating day to day involvement in the Scrums.</li>
<li>Use of less than Agile style tools like the Mercury suite.</li>
<li>QA still having a real perception problem in the organization.</li>
</ul>
<p>I certainly hope that this test lead doesn&#8217;t turn out to be a canary in the coal mine in regards to their Agile rollout.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/bxpIIyqop88" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/07/30/agile-rollout-warning-signs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/07/30/agile-rollout-warning-signs/</feedburner:origLink></item>
		<item>
		<title>Second Wave of SOA</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/hp3qUjv5nYk/</link>
		<comments>http://edgibbs.com/2010/06/16/second-wave-of-soa/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 05:07:30 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[soa]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=848</guid>
		<description><![CDATA[After an incredible hype cycle back in 2005 many organizations took the plunge. We were going to ride SOA into a new highly productive development environment. The idea was we&#8217;d build business services and then start composing applications on the fly based on these service components. The reasons for diving headfirst into SOA included: Gartner [...]]]></description>
			<content:encoded><![CDATA[<p>After an incredible hype cycle back in 2005 many organizations took the plunge.  We were going to ride SOA into a new highly productive development environment.  The idea was we&#8217;d build business services and then start composing applications on the fly based on these service components.  The reasons for diving headfirst into SOA included:</p>
<ul>
<li>Gartner and many tech magazines pushed hard that this was the wave of the future.  We haven&#8217;t had a tech hype cycle since.</li>
<li>At a high level the story was compelling, especially the idea of working closely with the business.</li>
<li>Enterprise vendors needed a new story to sell complex, high cost software after ERP packages started having so many expensive failures, and app servers were largely commoditized by the success of JBoss.</li>
<li>As a baseline XML had become well understood, and web services were a much easier integration story than CORBA.</li>
</ul>
<p>So a large number of IT shops jumped in to build their SOA solutions.  Some efforts crashed and burned completely and the organization walked away.  Others fought through the learning curve, the mass of WS* specs, and delivered some useful services.  Still others worked with large system integrators and delivered solutions that were little more than overly complex integration services with large XML payloads presented as a grand new SOA Architecture.</p>
<p>Many others sat out the the whole SOA revolution.  They didn&#8217;t go out and buy an expensive ESB/BPEL/Composite Application Suite.  They let others go through the pain and tried to decide if it was worth it.  In the Java space it was similar to the large number of shops who decided to pass on EJB and just stuck with web containers like Tomcat.</p>
<p>What I see now out in the field is a number of those IT shops taking a second look at SOA.  There are a number of factors that make it worth taking a second look at SOA:</p>
<ul>
<li>Integrating with other organizations these days often assumes you can hook up to a web service they already have.</li>
<li>The testing story has gotten better, even if much of it is still functional testing.</li>
<li>The tool vendors have created reasonably decent tools unlike the early generation that were plagued with bugs</li>
<li>The open source solutions things like Camel and ActiveMQ are proven </li>
<li>The cloud computing meme is putting an emphasis on thinking and utilizing services to create a complete application.</li>
</ul>
<p>As I&#8217;m out at client sites over the next year I expect to continue to see this trend increase with many sites taking a second look at implementing some sort of SOA.  (And yes SOA is still a fuzzy term that I don&#8217;t hope to define here.)</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/hp3qUjv5nYk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/06/16/second-wave-of-soa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/06/16/second-wave-of-soa/</feedburner:origLink></item>
		<item>
		<title>JUnit 4 with Hamcrest Examples</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/oCG30VOPiQM/</link>
		<comments>http://edgibbs.com/2010/05/23/junit-4-with-hamcrest-examples/#comments</comments>
		<pubDate>Sun, 23 May 2010 20:08:09 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=842</guid>
		<description><![CDATA[I&#8217;ve been meaning to put together an example of all the Hamcrest assertions that have been added to JUnit 4 way back in 2007 now. My assumption based on a number of recent client engagements is that if unit testing is being done with JUnit the default is still to rely on assertEquals() as the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to put together an example of all the Hamcrest assertions that have been added to JUnit 4 way back in 2007 now.  My assumption based on a number of recent client engagements is that if unit testing is being done with JUnit the default is still to rely on assertEquals() as the default.  I found developers were very enthused about the new assertThat() style if you showed them some examples.  In order to better understand all of the new Core Matcher options I put together a little tutorial example of all the defined matchers.</p>
<ul>
<li><a href="http://edgibbs.com/junit-4-with-hamcrest/">JUnit 4 Hamcrest Assertions with Complete Examples</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/oCG30VOPiQM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/05/23/junit-4-with-hamcrest-examples/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/05/23/junit-4-with-hamcrest-examples/</feedburner:origLink></item>
		<item>
		<title>Apache has an Attic</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/Be-XVd_HDFo/</link>
		<comments>http://edgibbs.com/2010/02/17/apache-has-an-attic/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:31:11 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=800</guid>
		<description><![CDATA[Everyone has that trunk of old junk tucked away in the attic. It&#8217;s almost spring and time to think about getting organized, tossing out old junk, and having a garage sale. Apache has managed to create an online concept of a software attic. Old open source projects that have outlived there useful lives can be [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://edgibbs.com/images/attic.jpg" /><br />
<!-- http://www.flickr.com/photos/oldcockatoo/4118891245/ -->
</div>
<p>Everyone has that trunk of old junk tucked away in the attic.  It&#8217;s almost spring and time to think about getting organized, tossing out old junk, and having a garage sale.  Apache has managed to create an online concept of a software attic.  Old open source projects that have outlived there useful lives can be retired there.  The concept is intuitive and useful in a world with hundreds of thousands of open source projects, many abandoned early in there life.</p>
<p>I&#8217;m not sure how long the Apache attic has been around, but I came across it accidentally.  I&#8217;ve been doing a lot of architecture assignments recently which often involves digging through big source code trees to get a sense of how their development has evolved.  In Java land I run into dozens of different web frameworks, and I came across a project utilizing <a href="http://attic.apache.org/projects/beehive.html">Apache Beehive</a>.  I recalled it was some extra XDoclet like commented annotations on top of Struts that was adopted by Weblogic as their default framework years ago.  I&#8217;m all too familiar with classic Struts, but now I needed to go look up Apache Beehive to see where the framework was currently.</p>
<p>It didn&#8217;t take too long to arrive at the <a href="http://attic.apache.org/">Apache Attic</a> page.  The mission was stated as such:</p>
<blockquote><p>
The Apache Attic was created in November 2008 to provide process and solutions to make it clear when an Apache project has reached its end of life.
</p></blockquote>
<p>Brilliant!  Explaining that the time has come to evolve the codebase is much easier when Apache has officially retired the project.  Unlike so many other open source projects I don&#8217;t have to do the following investigation on arriving at some SourceForge page where it appears the project has been abandoned.  I don&#8217;t have to make an argument that though despite a few check ins in the last year that on active projects there will typically be hundreds of check ins and that the project is essentially dead.  I don&#8217;t have to point out that despite having a plugin architecture for some framework there are only say 5 plugins that have been developed and the last one was 3 years ago.  And finally my explanation to management has the official endorsement of Apache.</p>
<p>I&#8217;d like to encourage more of this in the future.  I await the day when Struts Classic moves to the Apache attic.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/Be-XVd_HDFo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/02/17/apache-has-an-attic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/02/17/apache-has-an-attic/</feedburner:origLink></item>
		<item>
		<title>Clean Code Band</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/5m2Ioy8D-3o/</link>
		<comments>http://edgibbs.com/2010/01/09/clean-code-band/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 02:23:29 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=792</guid>
		<description><![CDATA[The image above probably needs a bit of explanation. After having a lingering todo I finally made a donation and requested a Green Clean Code band from Uncle Bob Martin. I was at a talk of his at SD West 2005. At that point he pointed out a rubber band he was wearing that he [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
	<img src="http://edgibbs.com/images/clean_code.jpg" />
</div>
<p>The image above probably needs a bit of explanation.  After having a lingering todo I finally made a donation and requested a <a href="http://butunclebob.com/ArticleS.UncleBob.GreenWristBand">Green Clean Code</a> band from Uncle Bob Martin.  I was at a talk of his at SD West 2005.  At that point he pointed out a rubber band he was wearing that he would snap on his wrist every once in a while to remind him to run the tests.  It was a mark that he took TDD as part of his professional duties.  </p>
<p>The green band you get sits at the top of the image.  The yellow band below wasn&#8217;t a warning type band.  The words on have worn out, but it said &#8216;Go Kenji!!&#8217;.  Kenji is the son of a neighborhood friend who was diagnosed about a year and a half ago with Stage IV Neuroblastoma.  It was heartbreaking to see him go through chemo radiation and finally a stem cell transplant, but he&#8217;s a happy cancer survivor today.  Today was a good day to retire the band.  Cancer is a nasty disease, but it&#8217;s better to move on as soon as you&#8217;ve vanquished it.</p>
<p>So next time I run into anyone I&#8217;ll be wearing this band as a reminder to always keep my code clean with tests and refactoring, even when that code is hairy or written in some language and frameworks that are inherently hard to test.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/5m2Ioy8D-3o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/09/clean-code-band/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/09/clean-code-band/</feedburner:origLink></item>
		<item>
		<title>Faulty Hopes for UI Testing Tools</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/nn6UTKSZU18/</link>
		<comments>http://edgibbs.com/2010/01/05/faulty-hopes-for-ui-testing-tools/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 06:54:59 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[acceptence testing]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=790</guid>
		<description><![CDATA[Michael Feathers wrote a tough post recently on UI testing tools. The fact of the matter is that UI based testing should be used for UIs: that&#8217;s it. You should not be testing your full application end-to-end through a UI Testing tool. First of all, that sort of testing couples some of the most important [...]]]></description>
			<content:encoded><![CDATA[<p>Michael Feathers wrote a tough post recently on UI testing tools.</p>
<blockquote><p>The fact of the matter is that UI based testing should be used for UIs: that&rsquo;s it. You should not be testing your full application end-to-end through a UI Testing tool. First of all, that sort of testing couples some of the most important tests in your system to one of the most volatile parts of it.</p>
<p>&#8211;<a href="http://blog.objectmentor.com/articles/2010/01/04/ui-test-automation-tools-are-snake-oil">Michael Feathers</a>
</p></blockquote>
<p>I understand the frustration he speaks from, but I&#8217;ve always realized that you don&#8217;t really want to completely try to test through the front-end of the application.  It can be useful with legacy systems to get a minimal test harness in place.  With the right testers I&#8217;ve even seen some of the Mercury products used effectively for UI testing, though it probably required a 3-1 ratio of QA to developers and the tests were not customer tests, but written more as a regression suite.</p>
<p>My use of functional testing tools like Selenium has generally been for a spattering of end to end tests and some amount of customer tests.  I&#8217;ve never really tried to achieve a high level of coverage with these tests.  Obviously testing the business logic through something like Fitnesse is more effective or even setting up BDD style tests tend to make better customer tests.</p>
<p>I&#8217;ve actually been saddened over the past five years or so to see that tools like Fitnesse haven&#8217;t seen more adoption.  I think the BDD development has put more of a focus on developing customer style tests, but in general if there are automated end-to-end test suites in place there often overly reliant on something like Selenium.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/nn6UTKSZU18" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/05/faulty-hopes-for-ui-testing-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/05/faulty-hopes-for-ui-testing-tools/</feedburner:origLink></item>
		<item>
		<title>Developer Expectations</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/Vov7ckHmNh8/</link>
		<comments>http://edgibbs.com/2010/01/04/developer-expectations/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 05:44:18 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[acceptence testing]]></category>
		<category><![CDATA[automated builds]]></category>
		<category><![CDATA[code reviews]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=788</guid>
		<description><![CDATA[I came across a note of mine from last year on my baseline expectations for developers: All code is checked into source control on an hourly basis or at most daily. Every project has an automated build. (Maven, Ant) All projects are setup in continuous integration (Hudson) All code follows the current Java/Groovy coding standards. [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a note of mine from last year on my baseline expectations for developers: </p>
<ul>
<li>All code is checked into source control on an hourly basis or at most daily.</li>
<li>Every project has an automated build. (Maven, Ant)</li>
<li>All projects are setup in continuous integration (Hudson)</li>
<li>All code follows the current Java/Groovy coding standards.</li>
<li>Unit test coverage of new code must meet a 70% target. TDD is preferred.</li>
<li>Code reviews or regular pair programming are required.</li>
<li>Code should meet a standard of low cyclomatic complexity through refactoring and design.</li>
<li>Some level of functional, integration, and acceptance tests should be performed.</li>
<li>High value documentation is maintained.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/Vov7ckHmNh8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/04/developer-expectations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/04/developer-expectations/</feedburner:origLink></item>
		<item>
		<title>Multiple IDEs</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/wh_XXq7p6xQ/</link>
		<comments>http://edgibbs.com/2010/01/03/multiple-ides/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 04:27:18 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[automated builds]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=786</guid>
		<description><![CDATA[According to a Forester report the multiple IDEs for Java developers is standard practice: While Eclipse is common, it won&#8217;t become the only Java IDE in enterprise IT shops any time soon. Less than one out of five Java developers have a single primary Java IDE and no other. &#8211; Jeffery S. Hammond (Forrester Research) [...]]]></description>
			<content:encoded><![CDATA[<p>According to a Forester report the multiple IDEs for Java developers is standard practice:</p>
<blockquote><p>While Eclipse is common, it won&rsquo;t become the only Java IDE in enterprise IT shops any time soon. Less than one out of five Java developers have a single primary Java IDE and no other.</p>
<p>&#8211; Jeffery S. Hammond (Forrester Research)<br />
<a href="http://www.microsoft.com/presspass/itanalyst/docs/02-12-08IDEUsageTrendsJeffreyHammond.PDF">IDE Usage Trends</a></p></blockquote>
<p>As a victim of attempts to standardize on a single IDE, this is a good counter-weight argument.  My personal experience is I primarily work on Java code in IntelliJ IDEA, but every once in a while I want to use some specific Eclipse plug-in.  More regularly I&#8217;ll drop back to TextMate for some Groovy or Ruby work as well.  </p>
<p>Despite the efforts of commercial vendors to sell IT management on the concept of higher productivity with their brand of IDE, the idea hasn&#8217;t worked.  At the end of the day as a developer in any shop I want to know I can pull down a codebase and run an automated build with no IDE at all.  I don&#8217;t care if the original developer did it in Eclipse or Netbeans.  The key to being a successful coding shop is to remember that IDEs are just tools and should never be required to build, test, or deploy an application.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/wh_XXq7p6xQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/03/multiple-ides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/03/multiple-ides/</feedburner:origLink></item>
		<item>
		<title>Java Development Skill Defaults: Spring/Hibernate/jQuery</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/VHVTbHzyTak/</link>
		<comments>http://edgibbs.com/2010/01/02/java-development-skill-defaults-springhibernatejquery/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 04:34:11 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=784</guid>
		<description><![CDATA[Not too long ago a local recruiter noted at a JUG meeting: &#8220;I don&#8217;t care what else you have on your resume, but you have to have Spring and Hibernate. I know it was all EJB and SOA just a few years ago, but now if you don&#8217;t have Spring/Hibernate you&#8217;re not getting past the [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
 <img src="http://edgibbs.com/images/bear_sign.jpg" /><br />
<!-- http://www.flickr.com/photos/57402879@N00/341533554/ -->
</div>
<p>Not too long ago a local recruiter noted at a JUG meeting:</p>
<blockquote><p>&#8220;I don&#8217;t care what else you have on your resume, but you have to have Spring and Hibernate.  I know it was all EJB and SOA just a few years ago, but now if you don&#8217;t have Spring/Hibernate you&#8217;re not getting past the HR screen.&#8221;</p></blockquote>
<p>As a development manager and even in my professional services role I tend to screen dozens of resumes.  I have noticed the preponderance of Spring/Hibernate taking over the usual emphasis on EJB and Struts on the average mid-level java developer.  It&#8217;s actually a pleasant change to know that the open source community ended up victorious in the marketing war over the official specifications.  </p>
<p>Knowing Spring can mean all sorts of things since it&#8217;s a fairly large framework.  At a minimum I expect a developer to have an idea of using it for dependency injection, but it&#8217;s nice to see some exposure to Spring&#8217;s AOP concepts, Spring Security, or even something like Spring Batch.  It&#8217;s a bounus when they have exposure to something like Grails which has been added to the Spring family and wraps much of the low level Spring items in a nice DSL framework.</p>
<p>With Hibernate most developers have left behind either the old hand rolled JDBC DAO patterns or potentially entity beans.  Generally, I expect they can handle any sort of mapping and understand things like named queries, lazy loading, and second level caches that can catch developers new to Hibernate by surprise.</p>
<p>I&#8217;ve also noted that jQuery in the last year or so has largely become the winner among Javascript libraries and is typically the most common experience I see on resumes.  The days of getting by with largely full page reloads for any new request are gone and the Web 2.0 sites have increased UI expectations even for corporate users. </p>
<p>Looking back a few years it was still the rare corporate shop that cared about frameworks like Spring or Hibernate.  The emphasis was on heavyweight solutions like classic EJB or closer to the metal approaches like rolling your own JDBC for every database request.  The progress to Spring/Hibernate has been an impressive win for developers wanting something simpler.</p>
<p>I do have a few regrets that JUnit and unit testing are still not a default requirement with most development shops.  Almost every java developer has the keyword somewhere on their resume, but I screen enough people to know usually that means they&#8217;ve written a handful of unit tests for perhaps one project in their career and really don&#8217;t understand the value of it.</p>
<p>I also regret that in Java land there are not a handful of default web frameworks.  Instead we have dozens of options.  .NET, Python, PHP, and Ruby have been more successful in this arena with a handful of web frameworks to choose from in each camp.  Usually if you move to a new job you&#8217;re going to have to get up to speed on yet another web framework, because the options are so splintered.  Maybe this will consolidate in the next few years.  At least with the new languages on the JVM you&#8217;re seeing only one or two web frameworks like Groovy with Grails, Scala with Lift, or even JRuby with Rails.  The example in Ruby with Rails merging with Merb for 3.0 is something the Java world needs to do more of.</p>
<p>So if you&#8217;re a java developer and you haven&#8217;t had any real exposure to Spring and Hibernate, I&#8217;d advise at least spending some time with some tutorials at home.  The economy is bad enough that you never know when you&#8217;ll be dropped back onto a fairly hostile job market and you&#8217;ll at least need them as baseline skills.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/VHVTbHzyTak" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/02/java-development-skill-defaults-springhibernatejquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/02/java-development-skill-defaults-springhibernatejquery/</feedburner:origLink></item>
		<item>
		<title>An Open Letter to Helpdesk Managers on Developer Admin Access</title>
		<link>http://feedproxy.google.com/~r/MusingsOfASoftwareDevelopmentManager/~3/6gofSecVGFU/</link>
		<comments>http://edgibbs.com/2010/01/01/an-open-letter-to-helpdesk-managers-on-developer-admin-access/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 04:10:14 +0000</pubDate>
		<dc:creator>Ed Gibbs</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://edgibbs.com/?p=780</guid>
		<description><![CDATA[I know you wonder why developers come charging into the help desk right after you&#8217;ve delivered the sparkling new machine with 8GB of RAM, dual monitors and a quad core processor. They start babbling about how they need admin access or you might as well give them there old Pentium 4 box so they can [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://edgibbs.com/images/helpdesk.jpg" /><br />
<!-- http://www.flickr.com/photos/andypiper/4040455314/ -->
</div>
<p>I know you wonder why developers come charging into the help desk right after you&#8217;ve delivered the sparkling new machine with 8GB of RAM, dual monitors and a quad core processor.  They start babbling about how they need admin access or you might as well give them there old Pentium 4 box so they can get something done.  Their face is flushed with frustration and they seem very passionate about this.  You try to patiently explain that they can just fill out a ticket and they&#8217;ll send someone over to update their JDK or install Visio.  They just throw up there hands stomp off, and before long you&#8217;re talking to a development manager.  What is the big deal really?</p>
<p>Developers live and breath on their machines and the good ones are constantly trying new tools, updating old ones pulling down app servers, setting up local databases or LDAP servers.  Most of them have a high end laptop at home and a cushy two monitor setup that is often better than the one provided at work.  It frustrates them that the company doesn&#8217;t understand the gains in productivity they could get just updating the hardware.  Then the day comes where they&#8217;re granted a new machine and they dream about it waiting weeks for it to show up.</p>
<p>They come in one morning and see the new machine setup and deployed.  Their old machine is missing from the cube, and that causes some concern.  Ignoring warning signs of danger they log in with their trusty network login and start running through a list of the most important things to get installed first.  They login, fire up IE and go grab an install of Firefox.  Starting the installer a dialog box shows up informing them that access is denied.  Blood pressure doubles in the next minute.  Then they try to stay calm as they dial up the help desk to get admin rights granted to the account.</p>
<p>A cheerful voice on the phone informs them that the current policy is that no one gets admin access to their desktop.  The help desk will install all software.  The developer explains that they had admin access on their old machine.  Yes, but the new policy is being rolled out with the new hardware.  At this point the developer slams down the phone and sprints over the to the help desk to explain the craziness of denying admin access in person.</p>
<p>As a development manager soon after they&#8217;ve ranted at the help desk I get involved and have to calm myself down for a few minutes, because if anything I get more frustrated with these one size fits all admin access policies then my developers.  I simply send off an email at first listing the reasons the developers will need admin access:</p>
<ul>
<li>Developers install and update their tools on a regular basis and ruby or java development involves a constant updating of libraries.</li>
<li>Developers need to install open source tools on a constant basis such as IDEs, editors, diff tools, browsers, etc.</li>
<li>Waiting days or weeks for a help desk staff to install something is completely untenable when doing weekly iterations.</li>
<li>It is an incredible waste of the help desk&#8217;s staff time to come over and update or install software on probably a daily basis for even a small development team.  You&#8217;ll almost end up with one person per 10 developers to just do installs.</li>
<li>Developers are savvy enough not to fall for trojan horse software and other items that say an admin might install without realizing. </li>
<li>The fact that the developer&#8217;s machine might be hard to recover if it has a massive hardware failure is a perfectly acceptable risk and developer&#8217;s don&#8217;t expect the help desk to restore it back with all of there tools intact.</li>
</ul>
<p>To use an analogy not allowing your developer&#8217;s to have admin access to their desktops is like having to have a personal escort to unlock the bathroom for you every time you need to visit the restroom.  </p>
<p>So I apologize for the developers who appear half-crazed and unwilling to follow a simple admin access policy, but hopefully I&#8217;ve been able to give you some insight as to why they are so passionate about it.</p>
<img src="http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~4/6gofSecVGFU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://edgibbs.com/2010/01/01/an-open-letter-to-helpdesk-managers-on-developer-admin-access/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://edgibbs.com/2010/01/01/an-open-letter-to-helpdesk-managers-on-developer-admin-access/</feedburner:origLink></item>
	</channel>
</rss>
