<?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>Agile Web Development &#38; Operations &#187; General</title>
	<atom:link href="http://www.agileweboperations.com/category/general/feed" rel="self" type="application/rss+xml" />
	<link>http://www.agileweboperations.com</link>
	<description>Practical advice for rapidly delivering customer value</description>
	<lastBuildDate>Mon, 06 Feb 2012 20:24:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The 5 Biggest Mistakes When Hiring</title>
		<link>http://www.agileweboperations.com/the-5-biggest-mistakes-when-hiring</link>
		<comments>http://www.agileweboperations.com/the-5-biggest-mistakes-when-hiring#comments</comments>
		<pubDate>Thu, 08 Sep 2011 08:16:27 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=2952</guid>
		<description><![CDATA[GoTRISI Sad but true &#8211; it&#8217;s pretty rare for managers to hire the right people. If there are too many candidates, effective filtering is critical. Too few candidates, and it&#8217;s hard to get applications at all, much less the right ones. I want to describe the top five errors you make when trying to hire [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><div class="wp-caption alignleft" style="width: 240px">
	<img alt="" src="http://farm4.static.flickr.com/3519/3277771465_c989f48772_m.jpg" title="Not Hiring Sign von GoTRISI bei Flickr" width="240" height="240" /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://www.agileweboperations.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.flickr.com/photos/extremeezine/3277771465/" title="Not Hiring Sign von GoTRISI bei Flickr" target="_blank">GoTRISI</a></small>
	<p class="wp-caption-text"> </p>
</div>Sad but true &#8211; it&#8217;s pretty rare for managers to hire the right people.<br />
If there are too many candidates, effective filtering is critical. Too few candidates, and it&#8217;s hard to get applications at all, much less the right ones. I want to describe the top five errors you make when trying to hire the best people.</p>
<p><br/></p>
<h3>No clear picture of your dream candidate</h3>
<p>Usually, people slap together a list of things they need a candidate to know or to have experience in. But this isn&#8217;t enough. Too many companies are already searching similar profiles on that level of detail. Imagine your dream candidate: What is his current situation? What is he doing right now? What are his fears and dreams? Only if you zoom in and create a very vivid and detailed picture of your dream candidate, will you be able to address the right people.  </p>
<h3>No compelling message</h3>
<p>A job ad is like a sales letter. It needs to address the problem you solve for your candidate (find a great job) and it needs to show why your job is the best solution. Additionally, it needs to address objections the candidates might have reading your job ad (&#8220;will they keep my inquiry confidential?&#8221;, &#8220;will they offer fair payment?&#8221;, etc). Furthermore, it helps to add some testimonials to your job ad: Let your team mates describe how switching jobs was for them. And, last but not least, you need to create a compelling reason why your job is unique and not just like any other engineering job out there.</p>
<h3>Searching the wrong places</h3>
<p>The best job ad is worthless if it doesn&#8217;t reach the desired candidates. Instead of just posting it to general purpose job sites like monster.com, you have to chase down your dream candidates and find the places they hang out. Failing to do so means getting flooded by the wrong candidates and wasting a lot of time and money. If you&#8217;re looking for a ruby expert, who regularly shares his thoughts and code, you might find them on twitter, github, or stackoverflow.</p>
<h3>Poor Handling of Applications</h3>
<p>Too much can go wrong in the final stages of the hiring process. The best way to lose great candidates is waiting too long. Waiting too long to invite them for an interview, waiting too long to give them feedback, waiting too long to make an offer. When you start the recruiting process you need to define the exact procedures for following up with candidates. Who needs to decide what? How fast can they make those decisions, etc. If you communicate a clear process with well defined timing, chances are your candidate will be engaged and stay tuned.</p>
<h3>Failure to close the deal</h3>
<p>After going through all the necessary interviews, you&#8217;ve lined up a dream candidate for hiring. This is a critical step in the process. You need to make a compelling offer and <strong>dissolve all objections</strong> the candidate might have about signing up with you. And it&#8217;s time again to <strong>re-emphasize your uniqueness</strong> to stop the candidate shopping around for comparable offers. Only if the candidate knows everything about your company which helps them make a positive decision, will you be able to close the deal.</p>
<p>What are your worst experiences when trying to hire someone or when trying to join a company? Please share your horror stories in the comments.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/the-5-biggest-mistakes-when-hiring/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Do Annual Budgets Hurt Agility?</title>
		<link>http://www.agileweboperations.com/do-budgets-kill-agility</link>
		<comments>http://www.agileweboperations.com/do-budgets-kill-agility#comments</comments>
		<pubDate>Thu, 04 Aug 2011 05:57:03 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=3496</guid>
		<description><![CDATA[Ken Teegardin Desktop application development is traditionally done in waterfall development mode. Specifications and requirements are gathered over a period of months before being unleashed upon a &#8220;pool&#8221; of developers for implementation. Development times run into thousands of man days after which a &#8220;beta&#8221; product is released to the QA team (or perhaps some very [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><div class="wp-caption alignleft" style="width: 240px">
	<img alt="" src="http://farm6.static.flickr.com/5293/5537894072_c4e46bfce1_m.jpg" title="Numbers And Finance von Ken Teegardin bei Flickr" width="240" height="160" /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://www.agileweboperations.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.assistedseniorliving.net/" title="Numbers And Finance von Ken Teegardin bei Flickr" target="_blank">Ken Teegardin</a></small>
	<p class="wp-caption-text"> </p>
</div>Desktop application development is traditionally done in waterfall development mode. Specifications and requirements are gathered over a period of months before being unleashed upon a &#8220;pool&#8221; of developers for implementation. Development times run into thousands of man days after which a &#8220;beta&#8221; product is released to the QA team (or perhaps some very brave customers). After another thousand days of bugfixing, you slap a product version onto a shrink wrapped box, burn the CD-ROM and ship. </p>
<p>While it may be hard to believe, this is how the majority of software development has been done for almost half-a-century. The older the company, the better the chance they follow this exact release cycle. There are annual budget meetings to determine which departments and projects will gain the largest developer pools. It&#8217;s excruciating to watch these behemoths try to introduce agile into such an environment and I believe budgets are toxic to agile development!</p>
<p>Yes, we know that budgets have an extremely important place in every day business. This is how we plan our operating costs, growth and future development projects. However, when budgeting meets project management, there is no way to be agile. Take the following statement: &#8220;If we aren&#8217;t allocated these 10 resources tomorrow, there is no way we can finish this project within 12 months.&#8221; </p>
<p>Try to wrap your head around that sentence. Finishing the project says nothing about a customer release. And what exactly are these &#8220;10 resources&#8221;? Mainframes executing COBOL statements? Project managers frantically waving Excel spreadsheets? Developers attending specification meetings? Can we so easily secure next year&#8217;s release just by offering up these resources like lambs upon the project manager&#8217;s sacrificial altar?</p>
<p>My almost instantaneous answer to such a hollow statement is &#8220;Given these 10 resources and 12 months of development, you will <strong>never</strong> be able to ship a quality product.&#8221; And the reality is probably even more bleak &#8211; they won&#8217;t be able to ship anything at all! </p>
<p>Think about 12 months from now. It&#8217;s so far away. We can take our time building a sound architecture, something that will be infinitely scaleable, meticulously documented and a joy to use. See? Scope creep has happened already without a single line of code being written!</p>
<p>If you aren&#8217;t challenged to regularly engage the user, to ship your code at least once a month, you fall into a false sense of security &#8211; a dangerous reality distortion field is emitted from your project that can even have detrimental effects to projects that rely on yours.</p>
<p>Not all desktop applications follow such a cycle. Google has pioneered regular release cycles on the desktop with it&#8217;s Chrome browser (4-6 week release cycles). Now, if only we could get a glimpse inside of their PM process.</p>
<p>What do you think of annual budgets and their effect on scrum?</p>
<p>Other posts:</p><ul>
<li><a href='http://www.agileweboperations.com/why-excel-spreadsheets-hurt-project-management' rel='bookmark' title='Why Excel Spreadsheets Hurt Project Management'>Why Excel Spreadsheets Hurt Project Management</a></li>
<li><a href='http://www.agileweboperations.com/state-of-development-annual-address-on-how-we-ship-software' rel='bookmark' title='State of Development: Annual Address on How We Ship Software'>State of Development: Annual Address on How We Ship Software</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/do-budgets-kill-agility/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Stabilizing Application Architectures Through Simplification</title>
		<link>http://www.agileweboperations.com/stabilizing-application-architectures-through-simplification</link>
		<comments>http://www.agileweboperations.com/stabilizing-application-architectures-through-simplification#comments</comments>
		<pubDate>Thu, 14 Jul 2011 07:00:00 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=3131</guid>
		<description><![CDATA[benjamin-nagel Consider the following: People are complicated and companies are run by a lot of people. A relationship between two people is complicated. Relationships between companies? Well, you see where I&#8217;m going. Outsource a software development project requiring 10 developers, an on-site team of 3 managers and 4 developers, involving a total of 4 external [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><div class="wp-caption alignleft" style="width: 240px">
	<img alt="" src="http://farm4.static.flickr.com/3043/2958888965_f3e70a8593_m.jpg" title="Canon EF 28-300 / 3.5-5.6L IS USM von benjamin-nagel bei Flickr" width="240" height="160" /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://www.agileweboperations.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.flickr.com/photos/benjamin-nagel/2958888965/" title="Canon EF 28-300 / 3.5-5.6L IS USM von benjamin-nagel bei Flickr" target="_blank">benjamin-nagel</a></small>
	<p class="wp-caption-text"> </p>
</div>Consider the following: People are complicated and companies are run by a lot of people. A relationship between two people is complicated. Relationships between companies? Well, you see where I&#8217;m going. </p>
<p>Outsource a software development project requiring 10 developers, an on-site team of 3 managers and 4 developers, involving a total of 4 external companies. Surprised that the shipped product is more complicated than you originally planned? You shouldn&#8217;t be.</p>
<h3>Complexity is in the details</h3>
<p>We&#8217;ve all encountered this phenomenon in software projects. If it seems too easy, it&#8217;s because you&#8217;re missing something. This is why we do Planning Games &#8211; to spend an extra hour carefully thinking about these &#8220;easy&#8221; stories &#8211; picking apart the plain vanilla requirements and finding some very important open questions.</p>
<p>As software engineers, we tend to overdesign and overarchitect. Now, offshore the project and get ready for the fireworks. External engineers have no clue about your business, and could care even less about the project&#8217;s success. On top of this, the channels of communication are constricted. Sufficiently insulated from reality, the offshore team is free to dream of the &#8220;perfect solution&#8221;.</p>
<h3>Perfection meets reality</h3>
<p>In a perfect world, nothing fails. And this is exactly how those consultants engineered the architecture. No fail-over servers, no backups, and no documentation. </p>
<p><strong>Pro-tip</strong>: make the consultant reboot the server at lunch time every day of their last week. Make detailed bug reports of all the failures that occur and get them fixed <em>before</em> the consultant takes another job!</p>
<h3>Stability through Simplicity</h3>
<p>You know your business and, hopefully, what your customers need. I&#8217;ve done enough &#8220;in-shoring&#8221; of projects and architectures by now, to recognize the patterns. Over-implemented security measures, unnecessary servers and lots of external ISP support.</p>
<p>Cutting through the baked-in complexity of a project <strong>years</strong> in the making isn&#8217;t easy. But, if you focus on the end customer value, you can quickly get through to the real meat.</p>
<p>Other posts:</p><ul>
<li><a href='http://www.agileweboperations.com/role-based-permissions-for-your-ruby-on-rails-application' rel='bookmark' title='Aegis: Role-based Permissions for your Ruby on Rails application'>Aegis: Role-based Permissions for your Ruby on Rails application</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/stabilizing-application-architectures-through-simplification/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Three Traits of Successful Engineers</title>
		<link>http://www.agileweboperations.com/top-three-traits-of-successful-engineers</link>
		<comments>http://www.agileweboperations.com/top-three-traits-of-successful-engineers#comments</comments>
		<pubDate>Tue, 07 Jun 2011 06:30:02 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=3031</guid>
		<description><![CDATA[George Vnoucek You know it within an hour of working with them. A special kind of sysadmin or developer that not only knows how to do their job, but really cares about doing it right. This is the person that makes you refactor that duplicate method or add that one last test. The kind of [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="wp-caption alignleft" style="width: 240px">
	<img alt="" src="http://farm5.static.flickr.com/4062/4539825400_401e9c2481_m_d.jpg" title="The Engineers von George Vnoucek bei Flickr" width="240" height="180" /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://www.agileweboperations.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.flickr.com/photos/georgevnoucek/4539825400/" title="The Engineers von George Vnoucek bei Flickr" target="_blank">George Vnoucek</a></small>
	<p class="wp-caption-text"> </p>
</div>
<p>You know it within an hour of working with them. A special kind of sysadmin or developer that not only knows how to do their job, but really <strong>cares</strong> about doing it right. This is the person that makes you refactor that duplicate method or add that one last test. The kind of engineer that dots every i and crosses every t. David Lutz (<a href="https://twitter.com/#/dlutzy">@dlutzy</a>) tweeted this last week <a href="https://twitter.com/dlutzy/status/73985946441355264">&#8220;Of the IT professionals I&#8217;ve worked with, talented sysadmins and programmers, only a select few are worthy of the title Engineer.&#8221;</a>, which really struck a chord with me.</p>
<p>I asked him what were the three common traits he thought these successful engineers exhibited, to which he replied <a href="https://twitter.com/dlutzy/status/73999828136366081">&#8220;1. deep understanding of how things work.  2. thorough and methodical approach. 3. ongoing analysis of results&#8221;</a>. I think he nailed this and I&#8217;d like to dig a bit deeper into each of these traits.</p>
<h2>Deep Understanding</h2>
<p>It&#8217;s one thing to be able to code to an API or install an OS from a CD. But, to really understand, on a system level, everything that&#8217;s happening in the background to make all the &#8220;magic&#8221; possible is a different level altogether. From taking measures to avoid race conditions in software, to ensuring an SCM based OS configuration for automatically bootstrapping new server instances, successful engineers employ these traits irregardless of time constraints.</p>
<p>For me, a deep understanding means <strong>decades</strong> of researching, experimenting with and testing of new technologies. I spent the first <em>half</em> of 2010 learning puppet and creating server configurations for not only my productive and staging environments, but the continuous integration server, wiki and blog. One year later, I&#8217;ve learned just as much about puppet (and my servers) as I did in those first intense six months. Do I have a deep understanding of puppet? Hell no.</p>
<h2>Thorough and Methodical</h2>
<p>So what about those pesky time constraints I mentioned. Unfortunately, they&#8217;re what make average developers bad developers. They are encouraged by management to &#8220;just finish it&#8221; at the cost of code quality, countless bugs and many late nights. How often have you heard a developer say &#8220;My manager says we don&#8217;t have time for tests.&#8221; ?</p>
<p>Successful engineers know that doing things right means taking the extra time needed to make sure that a feature or a service works exactly as expected. That means writing exhaustive tests <strong>and</strong> introducing monitors which ensure these things are up and running not only on the live site, but after <em>every</em> change made to the system.</p>
<h2>Ongoing analysis</h2>
<p>Just because it&#8217;s out in the wild, doesn&#8217;t mean an engineer&#8217;s job is done. In the constant pursuit of perfection, they analyze how it&#8217;s performing &#8211; does it react to load and other issues as expected? Poring over megabytes of log files and checking those Cacti graphs every morning is just an ingrained habit by now.</p>
<p>As a system matures, usage changes, requirements change &#8211; refactoring and upgrades need to be regularly applied to keep the system healthy and growing. Often times, it&#8217;s those little tweaks months after the release that make or break the future of a platform. A simple query cache tweak here, or a refined Apache configuration there and suddenly the application is fun to use again. </p>
<p>Successful engineers know the intrinsic value of these often behind-the-scenes and unrewarded &#8220;patches&#8221;. They keep on doing it because they take pride in their work, and desire to honor the profession of engineering and engineers everywhere.</p>
<h2>Sharing ideas</h2>
<p>Twitter is such an incredibly cool platform. Being able to casually share such deep insights with like-minded people instantly is truly amazing. It&#8217;s exactly this kind of brain candy that has me totally hooked.<br/><br />
<img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2011/06/3_traits_engineers.png" alt="" title="" width="533" height="205" class="aligncenter size-full wp-image-3041" />Who are some inspiring, successful engineers that you follow on Twitter? Please share with <a href="https://twitter.com/#/mmarschall">@mmarschall</a>, <a href="https://twitter.com/#/danackerson">@danackerson</a> or in the comments below!</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/top-three-traits-of-successful-engineers/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Migrate Your WordPress Blog to a Bitnami EC2 Instance</title>
		<link>http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance</link>
		<comments>http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance#comments</comments>
		<pubDate>Thu, 20 Jan 2011 07:01:51 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bitnami]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[migrate]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=2717</guid>
		<description><![CDATA[The cool thing about doing geeky things like this is the ability to share the howto with other folks who can actually get just as excited. Amazon&#8217;s announcement of a 12 month free usage tier, plus the fact that this blog doesn&#8217;t run on sugar plums and candy canes, put us in the short list [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance" title="Permanent link to Migrate Your WordPress Blog to a Bitnami EC2 Instance"><img class="post_image alignleft" src="http://bitnami.org/images/bitnami-logo.png?1288694771" width="250" height="78" alt="Post image for Migrate Your WordPress Blog to a Bitnami EC2 Instance" /></a>
</p><p>The cool thing about doing geeky things like this is the ability to share the howto with other folks who can actually get just as excited. Amazon&#8217;s <a href="http://aws.amazon.com/free/">announcement of a 12 month free usage tier</a>, plus the fact that this blog doesn&#8217;t run on sugar plums and candy canes, put us in the short list for migration. As Matthias has done the bulk of the <a href="http://www.joyent.com/">joyent server setups</a> &#038; <a href="http://www.linode.com/index.cfm">linode migrations</a>, it was high-time I got my hands dirty. Without further ado, here&#8217;s how I migrated AWO to our first Amazon EC2 instance. Let&#8217;s get our geek on!</p>
<h3>Choosing BitNami</h3>
<p>Initial plans were to grab some debian-based Amazon Machine Image (AMI) and follow the various <a href="http://www.google.com/search?q=howto+config+wordpress+on+lamp">&#8220;howto config wordpress on lamp&#8221;</a> posts out there, but Matthias asked if I was going to take a look at BitNami. I&#8217;d never heard of it before and, truth be told, it actually sounded like some kind of BitTorrent client to me. Digging in a little deeper, I soon understood what all the hoopla was about and I was sold on a nicely contained, pre-configured <a href="http://bitnami.org/stack/wordpress">BitNami WordPress AMI</a>. There&#8217;s even an AMI which automatically bootstraps an Elastic Block Storage (EBS) &#8211; how&#8217;s that for easy?</p>
<p>Just in case you don&#8217;t know what EBS is good for &#8211; a running EC2 instance doesn&#8217;t come with a disk for storing your data by default. Meaning if you plan on making changes to your AMI at runtime that you&#8217;d like to see after a reboot, you need to attach a disk (EBS in Amazon AWS speak).</p>
<h3>Setting up a new EC2 instance on AWS</h3>
<p>One of the catches for a 12 month, free EC2 instance is a new Amazon account, so be sure to register a new email address or you might get a surprise bill next month! And, yes, you will also need a valid credit card to open your account, because if your instance exceeds the free usage tier limits, you will be charged.</p>
<p>Launch a new intstance, click over to Community AMI&#8217;s and copy/paste the BitNami image in question:</p>
<p><img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2010/12/aws_bitnami_ami.png" alt="" title="aws_bitnami_ami" width="560" height="183" class="aligncenter size-full wp-image-2719" />Note the ebs based root device &#8211; now we&#8217;re cooking with crisco! After selecting the image, you&#8217;ll be guided through a fairly simple setup. The <em>free</em> instance is &#8220;Micro&#8221;, so be sure to change the default selection:</p>
<p>You should definitely spend a few minutes considering the region in which to launch the instance. If you&#8217;re using Analytics, checkout your Map Overlay to see from where your visitors are coming. Our biggest block primarily comes from the U.S. West Coast, but there are significant folks throughout the continental U.S. and Europe.</p>
<p><img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2010/12/awo_viewership-300x183.png" alt="" title="awo_viewership" width="300" height="183" class="aligncenter size-medium wp-image-2720" />We ultimately went with the mid-point &#8220;U.S. East&#8221; region.</p>
<p><img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2011/01/micro_instance.png" alt="" title="" width="555" class="aligncenter size-medium wp-image-2817" />Do <strong>not</strong> take the default security group setting as it provides neither SSH nor HTTP access. Create your own custom group adding at least these ports.</p>
<p>After your instance launches, click on it in the AWS Management Console. The description tab below will list a &#8220;Public DNS&#8221;. Point your browser to this URL and you&#8217;ll see the BitNami Welcome page with a few links including your new WordPress install. Not too shabby &#8211; a running blog on a new virtual server in all in the space of about 15 minutes.</p>
<p>At some point creation phase above, you were prompted to download a .pem file &#8211; this is your SSH keypair to get in the back door of your new instance. You&#8217;ll need to <code>chmod 644 my_aws_ec2.pem</code> &#038; then <code>ssh -i my_aws_ec2.pem bitnami@public_dns.amazonaws.com</code> to access your EC2 server via ssh. The bitnami user has sudo access.</p>
<p>Last, but not least, make an EBS snapshot of your running instance so you have a known fallback before entering the next phase of the migration. Don&#8217;t forget about this capability &#8211; at every step where you feel you&#8217;ve accomplished an important step, back it up!</p>
<h3>Migrating Your WordPress Blog</h3>
<p>On your existing blog, dump your database and tarball your WordPress htdocs path.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ mysqldump <span style="color: #660033;">-uwordpress</span> <span style="color: #660033;">-p</span> awo <span style="color: #000000; font-weight: bold;">&gt;</span> awo_wp.sql
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-cjf</span> awo_htdocs.bz2 <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>awo<span style="color: #000000; font-weight: bold;">/</span>public</pre></div></div>

<p>Now, let&#8217;s get those dumps copied over to your new EC2 instance:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">scp</span> <span style="color: #660033;">-i</span> my_aws_ec2.pem awo_wp.sql awo_htdocs.bz2 bitnami<span style="color: #000000; font-weight: bold;">@</span>public_dns.amazonaws.com:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>originals<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>And, don&#8217;t forget to copy over any releveant configurations and performance tweaks in your Apache (<code>apache2.conf</code>, <code>httpd.conf</code>) and MySQL (<code>my.cnf</code>, <code>conf.d/*.cnf</code>) setups. </p>
<p>Moving on to the IP address. Goto the <a href="https://console.aws.amazon.com/ec2/home#s=Addresses">Elastic IP&#8217;s</a> entry in your AWS console. Allocate New Address and associate it with your newly created (and probably only) EC2 instance. While we&#8217;re waiting for the DNS to catch up, edit your local (meaning the computer you&#8217;re using to do the migration) /etc/hosts accordingly, overriding your blog domain with this new IP address.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>hosts
...
<span style="color: #000000; font-weight: bold;">&lt;</span>NEW_ELASTIC_IP<span style="color: #000000; font-weight: bold;">&gt;</span> www.agileweboperations.com</pre></div></div>

<p>On the new instance do something like the following (remembering your EBS snapshot above <img src='http://awostatic.agileweboperatio.netdna-cdn.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ),</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xjf</span> ~<span style="color: #000000; font-weight: bold;">/</span>originals<span style="color: #000000; font-weight: bold;">/</span>awo_htdocs.bz2 <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>wordpress
$ mysql <span style="color: #660033;">-uroot</span> <span style="color: #660033;">-pbitnami</span> bitnami_wordpress <span style="color: #000000; font-weight: bold;">&lt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>originals<span style="color: #000000; font-weight: bold;">/</span>awo.sql</pre></div></div>

<p>Note the location of the BitNami wordpress, and the MySQL root password and wordpress database schema.</p>
<p>Now, let&#8217;s setup a virtual host to point to your new blog:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>httpd.conf
...
<span style="color: #666666; font-style: italic;"># Virtual hosts</span>
Include conf<span style="color: #000000; font-weight: bold;">/</span>extra<span style="color: #000000; font-weight: bold;">/</span>httpd-vhosts.conf
...
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>extra<span style="color: #000000; font-weight: bold;">/</span>httpd-vhosts.conf
...
<span style="color: #000000; font-weight: bold;">&lt;</span>VirtualHost <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">&gt;</span>
    DocumentRoot <span style="color: #ff0000;">&quot;/opt/bitnami/apps/wordpress/htdocs&quot;</span>
    ServerName agileweboperations.com 
    ServerAlias www.agileweboperations.com
    ErrorLog <span style="color: #ff0000;">&quot;logs/awo-error_log&quot;</span>
    CustomLog <span style="color: #ff0000;">&quot;logs/awo-access_log&quot;</span> common
<span style="color: #000000; font-weight: bold;">&lt;/</span>VirtualHost<span style="color: #000000; font-weight: bold;">&gt;</span>
...</pre></div></div>

<p>Any special apache configuration (<code>KeepAliveTimeout</code>, <code>ServerTokens</code>, etc.) can be edited @ <code>/opt/bitnami/apache2/conf/extra/httpd-default.conf</code>. Be sure to include these edited files in the base apache conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>httpd.conf
...
<span style="color: #666666; font-style: italic;"># Server-pool management (MPM specific)</span>
Include conf<span style="color: #000000; font-weight: bold;">/</span>extra<span style="color: #000000; font-weight: bold;">/</span>httpd-mpm.conf
...
<span style="color: #666666; font-style: italic;"># Virtual hosts</span>
Include conf<span style="color: #000000; font-weight: bold;">/</span>extra<span style="color: #000000; font-weight: bold;">/</span>httpd-vhosts.conf
...
<span style="color: #666666; font-style: italic;"># Various default settings</span>
Include conf<span style="color: #000000; font-weight: bold;">/</span>extra<span style="color: #000000; font-weight: bold;">/</span>httpd-default.conf</pre></div></div>

<p>Finally, remember your canonical redirects! No duplicate content here:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>.htaccess
RewriteEngine On
RewriteCond <span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>HTTP_HOST<span style="color: #7a0874; font-weight: bold;">&#125;</span> .
RewriteCond <span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>HTTP_HOST<span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #000000; font-weight: bold;">!</span>^www\.agileweboperations\.com
RewriteRule <span style="color: #7a0874; font-weight: bold;">&#40;</span>.<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.agileweboperations.com<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$1</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #007800;">R</span>=<span style="color: #000000;">301</span>,L<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Restarting processes with Bitnami is accomplished using the <code>ctlscript.sh</code>. To restart Apache, just run <code>sudo /opt/bitnami/ctlscript.sh restart apache</code>.</p>
<p>MySQL my.cnf may be edited @ <code>/opt/bitnami/mysql/my.cnf</code> and the restart is accomplished in much the same way : <code>sudo /opt/bitnami/ctlscript.sh restart mysql</code>.</p>
<p>You can also use <code>ctlscript.sh</code> to check out your apache &#038; mysql status:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>ctlscript.sh status
apache already running
mysql already running</pre></div></div>

<h3>Gotchas &#038; Caveats</h3>
<p>Installing <code>ec2-api-tools</code> is <em>not</em> possible on a <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/634487">t1.micro Ubuntu instance</a>. If you know you&#8217;ll need this, either install the instance initially as m1.small or you can <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/634487/comments/20">stop/switch</a> an existing instance (which is what I had to do).</p>
<p>This was also a bit of a learning experience, as stopping an instance removes the elastic IP address. Sure, makes sense &#8211; but if you don&#8217;t know this you&#8217;ll wonder why you can no longer ssh into your restarted instance. Additionally the &#8220;Public DNS&#8221; name will also dynamically change upon starting an instance. Plus, just starting an instance immediately costs you 1 hour of computing time, so don&#8217;t be surprised to see a bit more usage than you&#8217;d expect if you do this a few times.</p>
<p>YMMV, but the <code>bitnami:daemon</code> user:group which owned <code>/opt/bitnami/apps/wordpress/htdocs</code> was not sufficient for performing any &#8220;inline&#8221; wordpress upgrades/installs &#8211; meaning trying to upgrade/install a plugin asked for FTP access information. Performing a <code>sudo chown -Rf daemon:daemon /opt/bitnami/apps/wordpress/htdocs</code> did the trick, however. Anyone more familiar with BitNami, please feel free to step in and clarify.</p>
<p>MySQL died the first night after relaunch. A strange &#8220;Killed&#8221; showed up in the <code>/opt/bitnami/mysql/data/mysqld.log</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">101229</span> <span style="color: #000000;">15</span>:<span style="color: #000000;">41</span>:<span style="color: #000000;">33</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Note<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>mysqld.bin: ready <span style="color: #000000; font-weight: bold;">for</span> connections.
Version: <span style="color: #ff0000;">'5.1.50'</span>  socket: <span style="color: #ff0000;">'/opt/bitnami/mysql/tmp/mysql.sock'</span>  port: <span style="color: #000000;">3306</span>  MySQL Community Server <span style="color: #7a0874; font-weight: bold;">&#40;</span>GPL<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Killed
<span style="color: #000000;">101230</span> 00:<span style="color: #000000;">15</span>:<span style="color: #000000;">51</span> mysqld_safe Number of processes running now: <span style="color: #000000;">0</span>
<span style="color: #000000;">101230</span> 00:<span style="color: #000000;">15</span>:<span style="color: #000000;">51</span> mysqld_safe mysqld restarted
<span style="color: #000000;">101230</span>  <span style="color: #000000;">0</span>:<span style="color: #000000;">15</span>:<span style="color: #000000;">53</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Note<span style="color: #7a0874; font-weight: bold;">&#93;</span> Plugin <span style="color: #ff0000;">'FEDERATED'</span> is disabled.
Killed
<span style="color: #000000;">101230</span> 00:<span style="color: #000000;">15</span>:<span style="color: #000000;">54</span> mysqld_safe mysqld from pid <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>ip-<span style="color: #000000;">10</span>-<span style="color: #000000;">112</span>-<span style="color: #000000;">91</span>-<span style="color: #000000;">108</span>.pid ended
<span style="color: #000000;">101230</span> 07:<span style="color: #000000;">32</span>:02 mysqld_safe Starting mysqld.bin daemon with databases from <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>bitnami<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>data
...</pre></div></div>

<p>Turns out, the Bitnami image makes use of Linux&#8217;s <a href="http://linux-mm.org/OOM_Killer">OOM Killer</a> which takes a heavy-handed approach to potential Out of Memory issues before they over swap the server. The problem was I forgot to include the httpd-mpm.conf file I had altered so carefully above in the httpd.conf, so there were a bunch more simultaneous clients than this micro server could manage.</p>
<p>After upgrading to WP 3.0.4, and doing a <code>sudo apt-get update</code> &#038; <code>sudo apt-get upgrade</code>, accessing any pages in wp-admin somehow deadlocked the entire server (loads of 10-15 observed). The only thing that finally fixed this was restarting the entire instance.</p>
<p>After you get an elastic IP setup, delete the <code>/opt/bitnami/updateip</code> file. Otherwise, restarting the instance, Bitnami <strong>resets</strong> the wp_options values to the Public DNS server name. If you forget, you must change this back or else your blog won&#8217;t work:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ mysql <span style="color: #660033;">-uroot</span> <span style="color: #660033;">-p</span> bitnami_wordpress
mysql<span style="color: #000000; font-weight: bold;">&gt;</span> update wp_options <span style="color: #000000; font-weight: bold;">set</span> option_value = <span style="color: #ff0000;">'http://www.agileweboperations.com'</span> where option_name <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'siteurl'</span>, <span style="color: #ff0000;">'home'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
Query OK, <span style="color: #000000;">2</span> rows affected <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">0.00</span> sec<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Let&#8217;s see how are &#8220;free&#8221; year works out &#8211; for such little effort (~1 day), it&#8217;s well worth the savings (and maybe AWO gets into the black for the first time in 2011 <img src='http://awostatic.agileweboperatio.netdna-cdn.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). And, check out where the rubber meets the road &#8211; our Pingdom response times before and after the relaunch:<br />
<img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2011/01/pingdom_awo_relaunch_ec2.png" alt="" title="pingdom_awo_relaunch_ec2" width="631" height="291" class="aligncenter size-full wp-image-2798" /></p>
<h3>Professional Grade Virtual Computing for &#8220;Free&#8221;</h3>
<ul>
In case you missed my other posts on acquiring, maintaining, backing-up and monitoring your virtual server, here&#8217;s the complete list:</p>
<li>Performance : <a href="http://www.agileweboperations.com/wordpress-caching-for-high-performance-ec2-micro-instances">WordPress Caching For High Performance EC2 Micro Instances</a></li>
<li>Backups : <a href="http://www.agileweboperations.com/poor-mans-automated-snapshots-for-ec2">Poor Man’s Automated Snapshots for EC2</a></li>
<li>Monitoring : <a href="http://www.agileweboperations.com/free-cloudkick-monitoring-ec2">Cloudkick Monitoring for EC2</a></li>
</ul>
<p>Other posts:</p><ul>
<li><a href='http://www.agileweboperations.com/wordpress-caching-for-high-performance-ec2-micro-instances' rel='bookmark' title='WordPress Caching For High Performance EC2 Micro Instances'>WordPress Caching For High Performance EC2 Micro Instances</a></li>
<li><a href='http://www.agileweboperations.com/poor-mans-automated-snapshots-for-ec2' rel='bookmark' title='Poor Man&#8217;s Automated Snapshots for EC2'>Poor Man&#8217;s Automated Snapshots for EC2</a></li>
<li><a href='http://www.agileweboperations.com/free-cloudkick-monitoring-ec2' rel='bookmark' title='Free Cloudkick Monitoring for EC2'>Free Cloudkick Monitoring for EC2</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Recap 2010 &#8211; Year in Review</title>
		<link>http://www.agileweboperations.com/recap-2010-year-in-review</link>
		<comments>http://www.agileweboperations.com/recap-2010-year-in-review#comments</comments>
		<pubDate>Tue, 11 Jan 2011 14:24:23 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=2760</guid>
		<description><![CDATA[2010 was a great year here at Agile Web Development &#038; Operations. Since 2008, we&#8217;ve written close to 200 posts (many not so good, but, luckily, there were also quite a few you liked). You guys left over 450 comments (You Rock!) and spammers tried to swamp us with over 22.000 comments (they Suck! and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>2010 was a great year here at Agile Web Development &#038; Operations. Since 2008, we&#8217;ve written close to 200 posts (many not so good, but, luckily, there were also quite a few you liked). You guys left over 450 comments (You Rock!) and spammers tried to swamp us with over 22.000 comments (they Suck! and that&#8217;s the reason why we still have comment moderation on <img src='http://awostatic.agileweboperatio.netdna-cdn.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ).</p>
<p>So many more folks were interested in what we (and our great guest posters &#8211; more about that later) wrote that our traffic (over 84.000 visitors) and our subscriber numbers (over a thousand already) more than doubled through 2010 &#8211; wow!</p>
<p><img src="http://awostatic.agileweboperatio.netdna-cdn.com/wp-content/uploads/2011/01/2010vs2009_visits.png" alt="" title="2010vs2009_visits" width="570" height="120" class="aligncenter size-medium wp-image-2778" /></p>
<p>Here are some of our most interesting posts (as well as some big mistakes) from 2010. Enjoy!</p>
<p>Our detailed tutorial about how to make <a href="http://www.agileweboperations.com/xen-debian-lenny-dom0-with-ubuntu-lucid-guest">Xen run on Debian Lenny Dom0 with Ubuntu Lucid Guest</a> was definitely one of the winners in 2010. It was viewed close to 7k times and received over 40 comments.</p>
<p>Another clear hit was our list of <a href="http://www.agileweboperations.com/20-devops-guys">20 Devops Guys you should follow</a>. If you haven&#8217;t checked it out yet, do so. Now. These guys are awesome!</p>
<p>Other popular posts were:</p>
<ul>
<li><a href="http://www.agileweboperations.com/using-kanban-for-devops-projects">Using Kanban for DevOps projects</a></li>
<li><a href="http://www.agileweboperations.com/launch-dates-the-good-the-bad-and-the-ugly">Launch Dates: The Good, the Bad, and the Ugly</a></li>
<li><a href="http://www.agileweboperations.com/visualizing-small-batch-sizes-with-git">Visualizing Small Batch Sizes with git</a></li>
<li><a href="http://www.agileweboperations.com/bugfixes-without-tests-are-anti-fixes">Bugfixes without tests are anti-fixes</a></li>
</ul>
<p>And, last, but not least (on the contrary!), we had a great bunch of guest posters &#8211; especially the <a href="http://www.agileweboperations.com/devops-series">DevOps series</a> we started in November 2010 was fantastic. Thanks again to everybody who participated. And, even cooler, it&#8217;s not over yet. Make sure you subscribe not to miss some great upcoming posts.</p>
<p>And, yes, we promised to tell you our worst stuff in 2010. Here you go:</p>
<p>I totally blew that one: <a href="http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform">Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a>. I tried to teach my students the benefits of agile by simulating a waterfall project first. Well, they rebelled and I stopped the simulation within the first hour. No student in the world can survive one day of a waterfall project it seems.</p>
<p>Talk about reinventing the wheel: <a href="http://www.agileweboperations.com/simple-db-updates-ruby">Simple Database Updates with Ruby</a>. I suffered with this for almost 6 months before waking up and using <code>rake db:migrate</code>. Ouch!</p>
<p>We hope you&#8217;ve had a good start in 2011 and we&#8217;re looking forward to bringing more interesting stuff to you!</p>
<p>Dan and Matthias</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/recap-2010-year-in-review/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Web Operations: What do YOU want it to be?</title>
		<link>http://www.agileweboperations.com/agile-web-operations-what-do-you-want-it-to-be</link>
		<comments>http://www.agileweboperations.com/agile-web-operations-what-do-you-want-it-to-be#comments</comments>
		<pubDate>Tue, 09 Feb 2010 21:00:45 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1820</guid>
		<description><![CDATA[For nearly two years Dan and I have shared our experiences and ideas about agile development and system administration. With every post we hoped to be helpful, and maybe some of them even were&#8230; Now, as we approach 500 subscribers, we would like to ask you, our dear readers, how we could help you to [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>For nearly two years Dan and I have shared our experiences and ideas about agile development and system administration. With every post we hoped to be helpful, and maybe some of them even were&#8230;</p>
<p>Now, as we approach 500 subscribers, we would like to ask <em>you</em>, our dear readers, how we could help you to become even more agile and have more fun doing your job.</p>
<p>Please take our short survey at: <a href="http://www.surveymonkey.com/s/LJVMRG9">http://www.surveymonkey.com/s/LJVMRG9</a> and tell us about your situation, your goals and how you would profit most from our experiences.</p>
<p>We&#8217;d love to hear from you!</p>
<p>Dan &#038; Matthias</p>
<p>Other posts:</p><ul>
<li><a href='http://www.agileweboperations.com/1st-birthday-best-of-agile-web-operations' rel='bookmark' title='1st Birthday: Best of Agile Web Operations'>1st Birthday: Best of Agile Web Operations</a></li>
<li><a href='http://www.agileweboperations.com/about' rel='bookmark' title='About Agile Web Development &amp; Operations'>About Agile Web Development &#038; Operations</a></li>
<li><a href='http://www.agileweboperations.com/the-12-principles-behind-the-agile-manifesto-adapted-to-web-operations' rel='bookmark' title='The 12 principles behind the agile manifesto adapted to web operations'>The 12 principles behind the agile manifesto adapted to web operations</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/agile-web-operations-what-do-you-want-it-to-be/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>1st Birthday: Best of Agile Web Operations</title>
		<link>http://www.agileweboperations.com/1st-birthday-best-of-agile-web-operations</link>
		<comments>http://www.agileweboperations.com/1st-birthday-best-of-agile-web-operations#comments</comments>
		<pubDate>Thu, 04 Jun 2009 20:37:27 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1383</guid>
		<description><![CDATA[It&#8217;s time to say &#8220;Thank you&#8221; to all of you, our loyal readers. Thanks for reading, commenting and subscribing to our posts for exactly one year now. That&#8217;s right, Agile Web Operations is now one year old. I can hardly put into words how great it is to have you with us! 103 posts and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>It&#8217;s time to say <strong>&#8220;Thank you&#8221;</strong> to all of you, our loyal readers. Thanks for reading, commenting and subscribing to our posts for exactly one year now. That&#8217;s right, Agile Web Operations is now one year old. I can hardly put into words how great it is to have you with us!</p>
<p>103 posts and 113 comments. That&#8217;s the result of our first year. And, exactly 200 of you have subscribed to our RSS feed &#8211; an excellent choice. For all of you who joined recently (and to remind you veterans), check out the five most read posts:</p>
<ol>
<li><a href="http://www.agileweboperations.com/puppet-or-capistrano-use-the-right-tool-for-the-job/">Puppet or Capistrano &#8211; Use the Right Tool for the Job</a> (Guest post by <a href="http://twitter.com/littleidea">Andrew Shafer</a>)</li>
<li><a href="http://www.agileweboperations.com/puppet-vs-capistrano-short-comparison/">Puppet vs. Capistrano &#8211; a short comparison</a></li>
<li><a href="http://www.agileweboperations.com/system-configurations-code-revisions-continuous-integration-ftw/">System Configurations + Code Revisions = Continuous Integration FTW</a> (Guest post by <a href="http://twitter.com/patrickdebois">Patrick Debois</a>)</li>
<li><a href="http://www.agileweboperations.com/thoughtworks-mingle-vs-pivotal-labs-tracker/">Thoughtworks Mingle vs. Pivotal Labs Tracker</a></li>
<li><a href="http://www.agileweboperations.com/agile-tool-vendors-please-dont-try-to-manage-complexity-simplify-my-life/">Agile Tool Vendors: Please don’t try to manage complexity &#8211; simplify my life!</a></li>
</ol>
<p>And don&#8217;t miss out on our three most commented posts:</p>
<ul>
<li><a href="http://www.agileweboperations.com/agile-quo-vadis/">Agile on steroids</a></li>
<li><a href="http://www.agileweboperations.com/configuration-management-remixed-introducing-carpet/">Configuration Management remixed: Introducing Carpet</a></li>
<li><a href="http://www.agileweboperations.com/visible-ops-rolling-out-change-management/">Visible Ops: Rolling Out Change Management</a>
</ul>
<p>I hope you enjoy reading Agile Web Operations as much as we do writing it. Keep the comments flowing and don&#8217;t forget to tell your friends!</p>
<p>We&#8217;re looking forward to the coming years of Agile Web Operations.</p>
<p>Sincerely yours,</p>
<p>Dan &#038; Matthias</p>
<p>Other posts:</p><ul>
<li><a href='http://www.agileweboperations.com/agile-web-operations-what-do-you-want-it-to-be' rel='bookmark' title='Agile Web Operations: What do YOU want it to be?'>Agile Web Operations: What do YOU want it to be?</a></li>
<li><a href='http://www.agileweboperations.com/about' rel='bookmark' title='About Agile Web Development &amp; Operations'>About Agile Web Development &#038; Operations</a></li>
<li><a href='http://www.agileweboperations.com/improving-operations-with-agile' rel='bookmark' title='Improving Operations with Agile'>Improving Operations with Agile</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/1st-birthday-best-of-agile-web-operations/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc
Database Caching 5/61 queries in 0.076 seconds using apc
Object Caching 1671/1744 objects using apc
Content Delivery Network via awostatic.agileweboperatio.netdna-cdn.com

Served from: www.agileweboperations.com @ 2012-02-07 23:54:55 -->
