<?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>Effective Development &#187; code</title>
	<atom:link href="http://www.effectivedevelopment.net/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.effectivedevelopment.net</link>
	<description>Thoughts from the World Of Practical Web Development</description>
	<lastBuildDate>Thu, 06 May 2010 15:36:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<cloud domain='www.effectivedevelopment.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>How to Effectively Use the Development Community</title>
		<link>http://www.effectivedevelopment.net/2009/05/use-the-development-community/</link>
		<comments>http://www.effectivedevelopment.net/2009/05/use-the-development-community/#comments</comments>
		<pubDate>Wed, 06 May 2009 12:30:42 +0000</pubDate>
		<dc:creator>bill breen</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[experiences]]></category>

		<guid isPermaLink="false">http://www.effectivedevelopment.net/?p=272</guid>
		<description><![CDATA[This may seem obvious to most, especially to regular blog readers but don&#8217;t forget the development community when working on projects. There is a large community of developers and many are willing to share ideas, code, and techniques. When I am stumped, or simply taxed with a problem that has a common element to it, [...]


Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/06/using-the-basecamp-api-to-create-project-reports/' rel='bookmark' title='Permanent Link: Using the Basecamp API to Create Project Reports'>Using the Basecamp API to Create Project Reports</a> <small>A few months ago I wrote a post describing the...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/02/share-information/' rel='bookmark' title='Permanent Link: good development teams share information'>good development teams share information</a> <small>Sometimes its hard to effectively share everything among all members...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/07/software-6-questions-to-ask-yourself-when-deciding-to-build-or-buy/' rel='bookmark' title='Permanent Link: Software: 6 Questions to Ask Yourself When Deciding to Build or Buy'>Software: 6 Questions to Ask Yourself When Deciding to Build or Buy</a> <small>A common dilemma of many tech managers and businesses in...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>This may seem obvious to most, especially to regular blog readers but don&#8217;t forget the development community when working on projects. There is a large community of developers and many are willing to share ideas, code, and techniques.</p>
<p>When I am stumped, or simply taxed with a problem that has a common element to it, I have a pretty standard sequence of steps I take to see if I can get help or find a component that someone else created already.  Most projects break down into 2 items, common problems and issues specific to your company, environment, etc&#8230;</p>
<p>Recently while talking with our operations manager he mentioned he was having problems with an old isapi filter we use to receive and parse incoming customer service tickets.  The filter was written over 6 years ago, and the source code is gone.  We are lacking a good deploy plan for this filter and we needed to replace it soon. We came up with a very simple solution. Have our mail server dump the incoming .msg files to a secure directory, and write a simple parser to monitor, parse, and insert the tickets into our system.   </p>
<p>So I set to work.  We are primarily a ColdFusion shop here, however we do write in many other languages. This was a task that would be easily written in ColdFusion and would also run extremely fast.  It seemed like the right tool for the job.  ColdFusion also has an event monitor that will monitor a directory for new or changed files and trigger code. I have had mixed results with it in the past, but this seemed like a good place to try again. If not, I could simply schedule the script to run at set intervals. </p>
<p>First step, open a msg file and see what we got. Wow, that was going to be a mess to parse. But I had  a hunch someone wrote a basic email parser in ColdFusion. If I found one, that would let me spend the time coding the specific pieces of this project related to our environment.  So I immediately turned to the community. </p>
<p>Here is a general run down of the steps I take when looking for some code or tips.<br />
- I send an email to my development team.  If they already wrote or found similar code, then problem solved.</p>
<p>- Next, I Google my issue. In this case “coldfusion email parser” </p>
<p>- Check a few of the code community sites I have bookmarked in Delicious. In <a href="http://delicious.com/billy999">Delicious</a> I keep code and community sites tagged with the language they serve.  In this case, <a href="http://www.fusionauthority.com/">fusion authority</a>, <a href="http://www.adobe.com/devnet/">adobe</a>, <a href="http://www.coldfusionjedi.com/">ray camdem&#8217;s blog</a>, etc&#8230;  Whenever I come across a code repository, or good language specific blog, I tag it in delicious.   You never know when you&#8217;ll need it.</p>
<p>- Twitter: I don&#8217;t send a tweet often to ask for help rather, I run a search similar to Google in <a href="http://www.tweetdeck.com/beta/">TweetDeck</a>. I may create one or two searches and let them run.  This usually leads me to people who are having similar issues, or possibly written about something I need.  </p>
<p>- Finally, if I have time to wait for a response, I go back to some of the code specifics resources I mentioned earlier, and post a question.  </p>
<p>One of these usually leads me to the path I need. I have had great success with these methods.  Sometimes the module I find is slightly out of date or missing a few key elements I have to add. This is fine, it at least give you a starting point.  For example I found a BaseCamp component that worked with their old API.  I found it quite easy to add the new API methods and bring it up to date.  It provided a nice clean framework to work with.  I recommend if you do make changes that the community might find beneficial, please give it back to the community.  As soon as I clean up the BaseCamp component, I plan to submit it back to the repository I found it.  </p>
<p>This same process can be applied to whole open source apps, you are not limited to simple components when looking for a building block for your project. That&#8217;s what makes the development community on the web so useful.  </p>
<p>Do you have other techniques, or processes to find help and code you need?  Let us know in the comments.</p>
<p><em>Update 5/7/2009 by Bill: I did eventually find a ColdFusion component that parses emails via my google search. It was on <a href="http://mollerus.net/tom/projects/emailParseCFC/">Tom Mollerus&#8217; WebLog</a>. It worked great, and saved me a lot of time. I was able to get this running in a few hours, instead of days. </em>  </p>
<div class="linkwithin_hook" id="http://www.effectivedevelopment.net/2009/05/use-the-development-community/"></div><!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.effectivedevelopment.net/2009/05/use-the-development-community/')" href="http://www.sphere.com/search?q=sphereit:http://www.effectivedevelopment.net/2009/05/use-the-development-community/">Sphere: Related Content</a></span><br/><br/>

<p>Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/06/using-the-basecamp-api-to-create-project-reports/' rel='bookmark' title='Permanent Link: Using the Basecamp API to Create Project Reports'>Using the Basecamp API to Create Project Reports</a> <small>A few months ago I wrote a post describing the...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/02/share-information/' rel='bookmark' title='Permanent Link: good development teams share information'>good development teams share information</a> <small>Sometimes its hard to effectively share everything among all members...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/07/software-6-questions-to-ask-yourself-when-deciding-to-build-or-buy/' rel='bookmark' title='Permanent Link: Software: 6 Questions to Ask Yourself When Deciding to Build or Buy'>Software: 6 Questions to Ask Yourself When Deciding to Build or Buy</a> <small>A common dilemma of many tech managers and businesses in...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.effectivedevelopment.net/2009/05/use-the-development-community/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Good Software Design Is Still An Important Art</title>
		<link>http://www.effectivedevelopment.net/2009/04/good-software-design-important/</link>
		<comments>http://www.effectivedevelopment.net/2009/04/good-software-design-important/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 14:36:44 +0000</pubDate>
		<dc:creator>bill breen</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[experiences]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.effectivedevelopment.net/?p=196</guid>
		<description><![CDATA[Solid Architecture is a Dying Art When I was in my CS program from 1992-97, we coded in ANSI C and COBOL. As a web developer, a lot of the specific code we wrote is no longer applicable today.  One major concept that was vital to writing code during my college years that I feel [...]


Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/03/use-project-collaboration-software/' rel='bookmark' title='Permanent Link: Use Project Collaboration Software'>Use Project Collaboration Software</a> <small>We use BaseCamp here for managing projects. It is extremely...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/knowing-your-users-make-effective-decisions/' rel='bookmark' title='Permanent Link: Knowing your users will help make effective decisions'>Knowing your users will help make effective decisions</a> <small>If you are reading my blog, there is a very...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/09/link-the-duct-tape-programmer/' rel='bookmark' title='Permanent Link: Link: The Duct Tape Programmer'>Link: The Duct Tape Programmer</a> <small>This is a great Article I found on Joel On...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p><strong>Solid Architecture is a Dying Art</strong></p>
<p>When I was in my CS program from 1992-97, we coded in ANSI C and COBOL.  As a web developer, a lot of the specific code we wrote is no longer applicable today.  One major concept that was vital to writing code during my college years that I feel is useful and probably not a focus these days is writing tight, effective code.</p>
<p>When I graduated college, my first job was pretty groundbreaking. We were writing full featured mobile apps for field use.  We had to work with heavy handheld devices that communicated with CDPD or dial-up to transfer their data.  They had 256k RAM, 4Mb harddrives, and 9,600 baud modems.  We had to focus on writing tight code, and conserving space on locally and for data transfer.</p>
<p>Today harddrive space, RAM, and processing power is cheap.  Very cheap, and you don&#8217;t even have to have your own.  <a href="http://aws.amazon.com/ec2/#pricing">You can rent power</a> and spawn processes and database space as needed  on Amazon ec2 servers.</p>
<p>Even users&#8217; machines are way more powerful.  Users have high speed connections with unlimited data and huge hard drives. Because of Windows Vista, even non-gamers are putting 4Gb RAM in their machines.  This is great for us as developers in some ways. Running slick Flash and AJAX apps on clients machine is no longer a problem.  We can be very creative, and deal with problems later as they arise.</p>
<p>Too often traditional computer science techniques are being thrown out the window.  This is tolerated because of the cheap power we can buy.  A shortfall in the code or architecture is simply fixed by adding hardware.  Twitter blew up so fast their initial poor design had to be <a href="http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster">tweaked many times</a>. To this day, they have some <a href="http://gojko.net/2009/03/16/qcon-london-2009-upgrading-twitter-without-service-disruptions/">questionable design elements</a> in their architecture and it shows.  Fail Whales  and slowdowns are part of the daily routine of twitter users.<br />
<img src="http://www.effectivedevelopment.net/wp-content/uploads/2009/04/twitterfailwhale.jpg" alt="fail whale" title="Good Software Design Is Still An Important Art" /></p>
<p>I am not saying we can&#8217;t or shouldn&#8217;t take advantage of cheap hardware these days. I&#8217;m also not implying that the developers at Twitter are not smart, they certainly are. Spending hundreds of hours coding for problems you don&#8217;t yet have is a huge waste of time.  But a good artecture basis is imperative, so that changes can be made with minimal impact to users.</p>
<p>This is definitely a dying art, but its importance will become more evident as mobile computing becomes more relevant.  More and more users are browsing sites on smart phones and net books. These are less powerful appliances by nature, and are usually coupled by slower 3G data transfer speeds.  That means bandwidth is now becoming slower and more expensive again.  Storage becomes a premium again. Developers will need to be more mindful of their bandwidth and storage usage when writing code.</p>
<p>Finally I want to briefly mention a story I was talking about with a colleague today. In 2006, users were racking up huge data fees <a href="http://www.nytimes.com/2009/04/12/business/12immig.html?pagewanted=3&amp;_r=3&amp;em">downloading mobile maps</a>.  Google assigned a room of their best engineers to the issue, and could not come up with anything.  Then one young designer came up with the idea to simply reduce the amount of colors on the maps from 256 to 20-40.  Users didn&#8217;t notice, and amount of binary data to transfer was greatly reduced.  It was heralded as being genius and a breakthrough idea. Granted it is smart, but do you honestly think a room of old school DOS or UNIX developers would not have thought of this sooner?  Tricks like this have been around forever.</p>
<p>What do you think? Should you code away at your users expense, or be more mindful of conserving resources?  And if you are in school or recently graduated, tell me if I am completely wrong and maybe you were taught to focus on good design.</p>
<div class="linkwithin_hook" id="http://www.effectivedevelopment.net/2009/04/good-software-design-important/"></div><!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.effectivedevelopment.net/2009/04/good-software-design-important/')" href="http://www.sphere.com/search?q=sphereit:http://www.effectivedevelopment.net/2009/04/good-software-design-important/">Sphere: Related Content</a></span><br/><br/>

<p>Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/03/use-project-collaboration-software/' rel='bookmark' title='Permanent Link: Use Project Collaboration Software'>Use Project Collaboration Software</a> <small>We use BaseCamp here for managing projects. It is extremely...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/knowing-your-users-make-effective-decisions/' rel='bookmark' title='Permanent Link: Knowing your users will help make effective decisions'>Knowing your users will help make effective decisions</a> <small>If you are reading my blog, there is a very...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/09/link-the-duct-tape-programmer/' rel='bookmark' title='Permanent Link: Link: The Duct Tape Programmer'>Link: The Duct Tape Programmer</a> <small>This is a great Article I found on Joel On...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.effectivedevelopment.net/2009/04/good-software-design-important/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web Tools Tips And Talk: #2</title>
		<link>http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/</link>
		<comments>http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 13:00:13 +0000</pubDate>
		<dc:creator>bill breen</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web resources/tools]]></category>

		<guid isPermaLink="false">http://www.effectivedevelopment.net/?p=124</guid>
		<description><![CDATA[Semi-weekly wrap up of links, tidbits, and other sites that came across my plate.   Code, development, management, anything I found interesting since the last post.  Feel free to suggest other links in the comments. Web Tools 15 Helpful In-Browser Web Development Tools &#8211; Most people are going to be familiar with these tools, especially if [...]


Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk: #1'>Web Tools Tips and Talk: #1</a> <small>Today, I am going to post a little weekly wrap...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/web-tools-tips-and-talk-0/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk #4'>Web Tools Tips and Talk #4</a> <small>As usual, a semi-weekly wrap up of links, tidbits, and...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/07/web-tools-tips-and-talk-9/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk: #9'>Web Tools Tips and Talk: #9</a> <small>It&#8217;s been another 2 weeks (plus holiday weekend), so here...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Semi-weekly wrap up of links, tidbits, and other sites that came across my plate.   Code, development, management, anything I found interesting since the last post.  Feel free to suggest other links in the comments.</p>
<p><strong>Web Tools</strong></p>
<ul>
<li><a href="http://www.smashingmagazine.com/2008/11/18/15-helpful-in-browser-web-development-tools/">15 Helpful In-Browser Web Development Tools</a> &#8211; Most people are going to be familiar with these tools, especially if you found this blog, but nonetheless, its a good list to keep handy. Even if you keep the list to help new junior developers setup their browsers for development.</li>
<li><a href="http://www.webresourcesdepot.com/">Free Web Resources</a> &#8211; I only recently bookmarked this site, and follow it briefly.  So far what i&#8217;ve seen has been borderline.  I will add it to my RSS reader and give it a few weeks. Does anyone read this site?</li>
</ul>
<p><strong>Web Talk/Blogs</strong></p>
<ul>
<li><a href="http://www.37signals.com/svn/posts/1626-the-most-powerful-word-is-no">The Most Powerful Word is No</a> &#8211; Short message from 37Signals about saying NO.</li>
<li><a href="http://www.joelonsoftware.com/items/2009/03/09.html">How to Be a Program Manager</a> &#8211; Good article about a program manager and why good software teams need one. I would refer to this role as a Product Manager, and I plan to post my thoughts on Product Vs Project Managers roles in Web Development soon.</li>
<li><a href="http://thinkvitamin.com/dev/web-development-is-moving-on-are-you/">Web Development is Moving On &#8211; Are you?</a> &#8211; I really like this article.  Talks about the changes in Web Development, and how we need to change with it to remain relevant. I recommend reading this article.</li>
</ul>
<p><strong>Web Tips/Resources</strong></p>
<ul>
<li><a href="http://www.makeuseof.com/tag/top-5-sites-to-learn-some-css-programming/">Top 5 Sites To Learn Some CSS Programming</a> &#8211; Good list of some intro sites for beginner CSS.</li>
<li><a href="http://www.smashingmagazine.com/2009/02/18/9-common-usability-blunders/">9 Common Usability Blunders</a> &#8211; Anyone developing web software should keep these basics in mind when designing UIs.</li>
</ul>
<p>Post any good resources or links you use in the comments.</p>
<div class="linkwithin_hook" id="http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/"></div><!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/')" href="http://www.sphere.com/search?q=sphereit:http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/">Sphere: Related Content</a></span><br/><br/>

<p>Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk: #1'>Web Tools Tips and Talk: #1</a> <small>Today, I am going to post a little weekly wrap...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/web-tools-tips-and-talk-0/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk #4'>Web Tools Tips and Talk #4</a> <small>As usual, a semi-weekly wrap up of links, tidbits, and...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/07/web-tools-tips-and-talk-9/' rel='bookmark' title='Permanent Link: Web Tools Tips and Talk: #9'>Web Tools Tips and Talk: #9</a> <small>It&#8217;s been another 2 weeks (plus holiday weekend), so here...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.effectivedevelopment.net/2009/03/web-tools-tips-talk-032009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iterative Development is Effective</title>
		<link>http://www.effectivedevelopment.net/2009/03/iterative-development-effective/</link>
		<comments>http://www.effectivedevelopment.net/2009/03/iterative-development-effective/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 13:24:48 +0000</pubDate>
		<dc:creator>bill breen</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[experiences]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://www.effectivedevelopment.net/?p=91</guid>
		<description><![CDATA[Here at SmartMoney, we have been using iterative development techniques for years. Even before the term was made popular in the technology field, we ditched the long drawn out style of project development. For the most part, we now employ a more cyclical style of development where individual features are coded, tested, deployed. New features are added [...]


Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/04/deploy-schedules-do-not-work/' rel='bookmark' title='Permanent Link: deployment schedules are not effective'>deployment schedules are not effective</a> <small>Simply put, deploying code on a set schedule is not...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/knowing-your-users-make-effective-decisions/' rel='bookmark' title='Permanent Link: Knowing your users will help make effective decisions'>Knowing your users will help make effective decisions</a> <small>If you are reading my blog, there is a very...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/03/use-project-collaboration-software/' rel='bookmark' title='Permanent Link: Use Project Collaboration Software'>Use Project Collaboration Software</a> <small>We use BaseCamp here for managing projects. It is extremely...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Here at SmartMoney, we have been using <a href="http://en.wikipedia.org/wiki/Iterative_and_incremental_development" target="_blank">iterative development</a> techniques for years. Even before the term was made popular in the technology field, we ditched the long drawn out style of project development. For the most part, we now employ a more cyclical style of development where individual features are coded, tested, deployed. New features are added based on lessons learned from the earlier cycle. From there we try to gauge the public&#8217;s reception to the feature through usability testing and feedback, then either work to improve that feature, or begin work on additional features within the same short cycle.</p>
<p>In the past we tried creating wikis for our projects and writing document specs.  These are really a waste of time, and just do not work.  They take weeks to create, and are often outdated as soon as they are delivered.  Better yet, even if they are not outdated, they are usually ignored. Iterative development gives you the opportunity to deploy, test, and most importantly to be wrong.  If a feature is not accepted by your users, you can easily refine or remove it.  You are more apt to admit your mistakes and remove a feature that took 2 weeks to deploy, than one that took 6 months.</p>
<p>The problem with getting buy in for iterative development at most companies is usually not with the technology group.  Developers and technology managers usually embrace the techniques.  It keeps things fresh, it involves less red tape and lets developers get to what they love &#8211; code.  I find for me it keeps things moving. You feel less stale when you are always moving through these mini life cycles.</p>
<p>I find resistance to this style of development tends to come from the business side. Groups like marketing and sales prefer a larger &#8220;completely finished&#8221; project to sell to clients. Project managers tend to prefer larger projects to maintain their value on the project. The larger the project, the more management it will need. Finally, some people just don&#8217;t consider it a web project without a large cycle of gathering specs, creating wireframes, refining code, QA/Testing, <em>repeat ad nauseum</em>, then finally deploy.  These are the people in your company that need to be sold on the benefits of Iterative development. I found an article today that discusses getting business people and anyone who needs it to embrace the philosophies of Iterative Development.<br />
<a href="http://www.bivingsreport.com/2009/embracing-an-iterative-approach-to-site-development">Embracing an Iterative Approach to Site Development</a>.  Its a quick read, and simply states some cost and time benefits you may find useful when trying to sell the idea to someone where you work.</p>
<p>Iterative development is practical and effective because it ensures you are keeping your projects lean and agile.  I really recommend looking into this style of development and trying to find areas where you can incorporate it into your workplace.  Even if the majority of your projects employ long spec-code-test-deploy cycles, you may be able to work with these methodologies in small ways.  Try to take a large project and see what can be broken down into manageable iterative chunks. My experience is that you will most likely have luck looking at the back-end development needed.  This area of a project has the lowest visibility, as most project stakeholders care about the UI. Get familiar with breaking down the requirements to a bare minimum, coding for that minimum, then repeat the cycle if necessary.  Once you have a few wins, or successful iterative projects, you may find others in your company are more willing to adapt their style as well.  The benefits will speak for themselves.</p>
<div class="linkwithin_hook" id="http://www.effectivedevelopment.net/2009/03/iterative-development-effective/"></div><!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.effectivedevelopment.net/2009/03/iterative-development-effective/')" href="http://www.sphere.com/search?q=sphereit:http://www.effectivedevelopment.net/2009/03/iterative-development-effective/">Sphere: Related Content</a></span><br/><br/>

<p>Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/04/deploy-schedules-do-not-work/' rel='bookmark' title='Permanent Link: deployment schedules are not effective'>deployment schedules are not effective</a> <small>Simply put, deploying code on a set schedule is not...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/knowing-your-users-make-effective-decisions/' rel='bookmark' title='Permanent Link: Knowing your users will help make effective decisions'>Knowing your users will help make effective decisions</a> <small>If you are reading my blog, there is a very...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/03/use-project-collaboration-software/' rel='bookmark' title='Permanent Link: Use Project Collaboration Software'>Use Project Collaboration Software</a> <small>We use BaseCamp here for managing projects. It is extremely...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.effectivedevelopment.net/2009/03/iterative-development-effective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>good development teams share information</title>
		<link>http://www.effectivedevelopment.net/2009/02/share-information/</link>
		<comments>http://www.effectivedevelopment.net/2009/02/share-information/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 15:12:52 +0000</pubDate>
		<dc:creator>bill breen</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[dev team]]></category>
		<category><![CDATA[experiences]]></category>

		<guid isPermaLink="false">http://effectivedevelopment.wordpress.com/?p=17</guid>
		<description><![CDATA[Sometimes its hard to effectively share everything among all members of a group.  We have weekly meetings to review our projects and their status and we use project collaboration software but sometimes we simply get absorbed in our own projects and workload. A great way to share information among team members is through fixing error [...]


Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/02/allow-developers-to-make-mistakes/' rel='bookmark' title='Permanent Link: Allow Developers To Make Mistakes'>Allow Developers To Make Mistakes</a> <small>Keep an environment where developers, and all employees for that...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/deploy-schedules-do-not-work/' rel='bookmark' title='Permanent Link: deployment schedules are not effective'>deployment schedules are not effective</a> <small>Simply put, deploying code on a set schedule is not...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/02/keep-teams-lean/' rel='bookmark' title='Permanent Link: Keep Teams Lean'>Keep Teams Lean</a> <small>Developing effectively starts with the team. Of course projects requirements,...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Sometimes its hard to effectively share everything among all members of a group.  We have weekly meetings to review our projects and their status and we use project collaboration software but sometimes we simply get absorbed in our own projects and workload.</p>
<p>A great way to share information among team members is through fixing error logs.  For years, our developers were responsible for monitoring and fixing errors on their projects whenever they show up in the error logs.  A year ago I implemented a new system for fixing errors which keeps developers working on new code, and aware of other projects within the group.</p>
<p>We have a team of 5 web developers.  There is an automated nightly process that gathers our application server error logs and distributes them to the development group.  In the past each developer was tasked to look through the logs for errors pertaining to their code or areas of responsibility, and fix them.  This was boring and inefficient.  At times all 5 developers were sifting through the exact same logs, looking at the exact same errors.</p>
<p>Under the new system, the logs are assigned to one developer for the week.  First, they look for errors new projects deployed in the last week or two.  These errors are assigned to the developer or team responsible for that project using bug tracking software.   We use an open source solution written in ColdFusion by Ray Camden called <a href="http://lighthousepro.riaforge.org/">LightHouse Pro</a>.   It works great for us.</p>
<p>With those obvious errors out of the way the developer now looks for patterns in the error logs.  These patterns could be a reoccurring error across the servers, or one server prone to a specific issue.  They may also notice a pattern happening at a certain time of day.  This is one of the many benefits of having the same set of eyes assigned to the error logs for 5 business days in a row.  These errors are addressed first.  If fixing one piece of code can stop a pattern causing 100s of errors, this is your biggest bang for the buck, and most worth the time and effort.  Finally they look through remaining issues and try to work on something they are not familiar with.   A developer is expected to devote about 1.5 &#8211; 2 hours each morning of their assigned week.  On Friday, they issue a summary of errors fixed, assigned, and the remaining open errors.</p>
<p>Sometimes when someone in the group is so close to fixing an error, or has invested time and research to that issue, they keep ownership of that issue.  This is not required, but the system fosters a sense of ownership and pride in fixing a problem.</p>
<p>Before we started this system, our logs were a mess and considered a chore to work on.  When we began, our logs could have 1000+ errors in a 24 hour period, and take a full 2 hours each day.  One year later, our logs average a few hundred errors, and usually take an hour or less to work on.  Some weeks, there are only a handful of issues to fix.</p>
<p>The are many benefits to this system.  Everyone gets familiar with various areas of the site they would not normally have worked on.  Developers get familiar with other pieces of code on the site, and get a better sense of the big picture.  We are able to spot error patterns and also get a chance to work with well written code.  All this allows us to develop more effectively on our own projects.</p>
<div class="linkwithin_hook" id="http://www.effectivedevelopment.net/2009/02/share-information/"></div><!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.effectivedevelopment.net/2009/02/share-information/')" href="http://www.sphere.com/search?q=sphereit:http://www.effectivedevelopment.net/2009/02/share-information/">Sphere: Related Content</a></span><br/><br/>

<p>Related posts:<ol><li><a href='http://www.effectivedevelopment.net/2009/02/allow-developers-to-make-mistakes/' rel='bookmark' title='Permanent Link: Allow Developers To Make Mistakes'>Allow Developers To Make Mistakes</a> <small>Keep an environment where developers, and all employees for that...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/04/deploy-schedules-do-not-work/' rel='bookmark' title='Permanent Link: deployment schedules are not effective'>deployment schedules are not effective</a> <small>Simply put, deploying code on a set schedule is not...</small></li>
<li><a href='http://www.effectivedevelopment.net/2009/02/keep-teams-lean/' rel='bookmark' title='Permanent Link: Keep Teams Lean'>Keep Teams Lean</a> <small>Developing effectively starts with the team. Of course projects requirements,...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.effectivedevelopment.net/2009/02/share-information/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
