<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4740937111045053616</id><updated>2011-12-26T17:48:55.471Z</updated><category term='lean'/><category term='user experience'/><category term='expedia'/><category term='scale'/><category term='cloud computing'/><category term='engineering'/><category term='development'/><category term='availability'/><category term='betfair'/><category term='offshoring'/><category term='distributed computing'/><category term='leadership'/><category term='entrepreneurialism'/><category term='product management'/><category term='agile'/><category term='systems'/><category term='internet'/><category term='quality'/><category term='performance'/><category term='project management'/><category term='failure'/><category term='architecture'/><category term='blogging'/><category term='management'/><category term='sporting index'/><title type='text'>The Fletcher Project</title><subtitle type='html'>The things I should have learned from years of putting together people and technology to get successful product online.  We’ll probably talk about strategy, distributed systems, agile development, webscale computing and of course how to manage those most complicated of all machines – the human being – in our quest to expose the most business value in the least expensive way.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.eachan.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.eachan.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default?start-index=101&amp;max-results=100'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>152</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5409985342874184680</id><published>2011-12-03T17:04:00.001Z</published><updated>2011-12-04T01:31:40.266Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='expedia'/><title type='text'>Eachan's 5 Laws of Platform Architecture</title><content type='html'>&lt;div style="text-align: justify;"&gt;Architecture - the shape of the system, the patterns used - is by far the most meaningful thing to get right in any system.&amp;nbsp;&amp;nbsp;Architectural decisions&amp;nbsp;have far more&amp;nbsp;influence on the capabilities and limitations of any given&amp;nbsp;system than the&amp;nbsp;implementation decisions&amp;nbsp;-&amp;nbsp;frameworks and languages - ever can.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This effect is hugely&amp;nbsp;magnified when you're building a platform, because you're creating tools and raw materials for other developers, and your decisions can enable them to easily build&amp;nbsp;apps any way they can&amp;nbsp;imagine&amp;nbsp;or limit their options to a handful of pre-configured choices.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Side note here; the internet is becoming full of platforms.&amp;nbsp; It has never been easier to programmatically consume services on the web, even through interfaces originally only intended for humans, and combine existing data in new ways to&amp;nbsp;create&amp;nbsp;whole new experiences.&amp;nbsp; You might put an app out there for customers, which you consider to&amp;nbsp;be&amp;nbsp;a finished product, and then discover that someone else is using &lt;em&gt;your app&lt;/em&gt; as a building block in &lt;em&gt;their app&lt;/em&gt;.&amp;nbsp; One man's front end becomes another man's back end.&amp;nbsp; I think this is a good thing&amp;nbsp;for momentum and creativity; allowing new takes on current ideas to be spun up and explored quickly and cheaply.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;But if you&amp;nbsp;&lt;em&gt;intend&lt;/em&gt;&amp;nbsp;to build a platform, if that's what you're explicitly setting out to do, then there are some design guidelines which will lend it greater&amp;nbsp;commercial utility.&amp;nbsp; Not patterns per se, more like principles, which I'm going to call the 5 laws of platform architecture:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;1st Law of Platform Architecture&lt;/strong&gt; - the value of a platform is directly proportionate to the amount of work it causes to be unnecessary.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Most web businesses are more similar than they are different.&amp;nbsp; There is&amp;nbsp;a set of web basics they all need (identity, profile, cart, payment, analytics...) and there are usually a set of line-of-business basics that most of them have in common (in my case that's things like inventory, price, geography, booking, weather...) and that's an awful lot of code that we're all writing.&amp;nbsp; If a platform solves the 'common problems' via a handful of simple web service calls, then partners using said platform can put the majority of their time and passion and investment where it will make the biggest difference to their business; building the unique features which distinguish them from the rest of the marketplace.&amp;nbsp; I like to ask "what &lt;em&gt;don't&lt;/em&gt; my partners have to do because we already did it?" and I like to have a long list of things to put into that bucket.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;2nd&amp;nbsp;Law of Platform Architecture&lt;/strong&gt; - ease of adoption maps directly to business momentum.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Most serious platforms are monetised in the same handful of ways, and in most cases the sooner you can have partners up and running the sooner you're counting revenue from them, ergo time to market for your partners is a lever in your own P&amp;amp;L and if you focus on ease of adoption you will bring on more partners, they will each 'go live' quicker, and it is cheaper than more traditional incentives such as offering improved commercial terms in exchange for faster rollouts etc.&amp;nbsp; The kinds of things you ought to consider here go beyond the simplicity of the services you expose (which must be easy for the most pedestrian of developers to grok - in&amp;nbsp;the platform game&amp;nbsp;you are penalised for externally-observable complexity) and into how much you invest in documentation, SDK and client code, and developer community support.&amp;nbsp; These things pay you back.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;3rd&amp;nbsp;Law of Platform Architecture&lt;/strong&gt; - entrypoint depth multiplies the business flexibility of any given service.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Higher layer abstractions always infer business logic.&amp;nbsp; That's what a composite service really is; someone decided that for use case &lt;em&gt;alpha&lt;/em&gt;, you always&amp;nbsp;do &lt;em&gt;X then Y then Z&lt;/em&gt;, and therefore aggregating calls out to services &lt;em&gt;A and B and C&lt;/em&gt; solves that problem in a single call.&amp;nbsp; You have just created a simpler solution for alpha - which is an admirable achievement and&amp;nbsp;it belongs in your platform exposed to everyone else who has use case &lt;em&gt;alpha&lt;/em&gt;.&amp;nbsp; But let's say I have use case &lt;em&gt;alpha prime&lt;/em&gt;?&amp;nbsp; A basically similar business process but with&amp;nbsp;key differences&amp;nbsp;that&amp;nbsp;no longer&amp;nbsp;require data from &lt;em&gt;B&lt;/em&gt;?&amp;nbsp; That's why your underlying services belong in your platform too; if&amp;nbsp;a&amp;nbsp;client&amp;nbsp;has some business logic which maps quite closely to the higher layer abstractions then that's great orchestration for that app.&amp;nbsp; If&amp;nbsp;a partner&amp;nbsp;want to do something a little different, then&amp;nbsp;he might have to consume those composites&amp;nbsp;and do a bunch of his own transformations on the data, perhaps even store the data himself, and then present it to the client apps&amp;nbsp;through his own interfaces.&amp;nbsp; With the option of consuming services from lower down the stack clients can build unique apps on top of the platform with far less 'back end' work (stripping out the inferred but irrelevant business logic) on the client side.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;4th&amp;nbsp;Law of Platform Architecture&lt;/strong&gt; - compute work becomes exponentially cheaper and faster as it approaches the edge.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At last something more technical!&amp;nbsp; If you're building a platform, and you're &lt;em&gt;not&lt;/em&gt; planning on comprehensive global coverage, then I would question your commitment to your idea on&amp;nbsp;a web where ubiquitousness has never been cheaper to claim.&amp;nbsp; So let's assume that you &lt;em&gt;are&lt;/em&gt; doing this globally.&amp;nbsp; Without getting into a discourse on distributed systems, you're going to want to deliver straightforward and performant access to every consumer regardless of where they're based.&amp;nbsp; That is a distributed system problem, and so your platform should run on a system with a diameter greater than 1, and you should try to service requests as close to the edge (and as high up in your stack) as you can.&amp;nbsp; There are plenty of mature grid and edge computing infrastructures out there to provide the scaffolding&amp;nbsp;for this.&amp;nbsp; What does it mean for your partners?&amp;nbsp; They're using a platform with better durability and lower latency than alternatives that they might choose, which translates into better SLAs and better service which also happens to be cheaper to deliver.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;5th Law of Platform Architecture&lt;/strong&gt; - as services become more atomic the addressable market segments become more broad.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;My 3rd law deals with entrypoints, and this is &lt;em&gt;nearly&lt;/em&gt; the same thing.&amp;nbsp; Lower layer abstractions allow platform consumption without constraining the use cases, but another critical property of those granular services is their atomicity.&amp;nbsp; Your low level granular services must&amp;nbsp;perform generic, stateless (independent) operations, all&amp;nbsp;be individually consumable, and each should&amp;nbsp;be of business value individually.&amp;nbsp; When I say individually consumable I think I really mean individually &lt;em&gt;usable&lt;/em&gt;.&amp;nbsp; If one has to consume a handful of other services to be able to make sense of the data returned from a single service, then it clearly isn't too useful in it's own right.&amp;nbsp; Perhaps it needs slightly more&amp;nbsp;data or metadata around it or maybe it is just noise in your stack - keeping the catalogue manageable is actually a harder problem than it may seem.&amp;nbsp; When your lower layer abstractions are &lt;em&gt;individually useful&lt;/em&gt; you find that more kinds of businesses can &lt;em&gt;make use of&lt;/em&gt; them.&amp;nbsp; To round this out with an example; exposing our geography data distinctly (i.e. outside of a composite which applies it to a booking flow) enables us to power navigation and mapping apps, instead of just travel apps.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;These are guidelines for architecting a platform to maximise its utility to developers and its commercial success as a set of business building blocks for a range markets.&amp;nbsp; But what about the shape of the system(s) behind each service?&amp;nbsp; That dimension of architecture - how you manifest each of your APIs - is just as important.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We all have our favourite ways of doing things, and pushing one pattern over another without an understanding of the business problem and environment is just bad science, so the best I can do here&amp;nbsp;is suggest&amp;nbsp;&lt;a href="http://eachanfletcher.wordpress.com/2008/02/01/back-to-basics/" target="_blank"&gt;establishing some engineering principles&lt;/a&gt;&amp;nbsp;to give engineers a decision making framework within which they can own the problem and still consistently meet the higher standards expected from platforms.&amp;nbsp; &lt;a href="http://eachanfletcher.wordpress.com/2008/02/04/scalability-101/" target="_blank"&gt;Scalability&lt;/a&gt;, &lt;a href="http://eachanfletcher.wordpress.com/2008/02/05/maintainability-101/" target="_blank"&gt;Maintainability&lt;/a&gt;, &lt;a href="http://eachanfletcher.wordpress.com/2008/02/06/quality-101/" target="_blank"&gt;Quality&lt;/a&gt;, &lt;a href="http://eachanfletcher.wordpress.com/2008/02/07/security-101/" target="_blank"&gt;Security&lt;/a&gt;, &lt;a href="http://eachanfletcher.wordpress.com/2008/02/09/availability-101/" target="_blank"&gt;Availability&lt;/a&gt;, and &lt;a href="http://eachanfletcher.wordpress.com/2008/02/10/user-experience-101/" target="_blank"&gt;User Experience&lt;/a&gt; have always worked for me.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Whatever you do keep in mind that if you operate a platform, then you're partly responsible for the availability and integrity and brand and revenue of &lt;em&gt;n&lt;/em&gt; number of businesses (i.e. the partners building their apps on your stuff) so you have an even greater responsibility for quality than you do when your building your own customer-facing apps.&amp;nbsp; I'm a pretty casual guy about most things, but that's a responsibility I take very seriously indeed...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5409985342874184680?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5409985342874184680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5409985342874184680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5409985342874184680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5409985342874184680'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/12/eachans-5-laws-of-platform-architecture.html' title='Eachan&apos;s 5 Laws of Platform Architecture'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1117657613959419111</id><published>2011-11-05T20:31:00.000Z</published><updated>2011-11-05T20:31:36.696Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>The difference between taking a shortcut and cutting a corner</title><content type='html'>&lt;div class="p1" style="text-align: justify;"&gt;There are two very different things to&amp;nbsp;talk about&amp;nbsp;here, with two very different implications for your software, but I'll admit that&amp;nbsp;which way around you label them&amp;nbsp;can simply be language pedantry.&amp;nbsp; So for the purposes of this discourse, let's say that:&lt;/div&gt;&lt;div class="p1" style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;Taking a shortcut is using your knowledge and experience in place of studying&amp;nbsp;things from first principles every time.&lt;/li&gt;&lt;li&gt;Cutting a corner is a compromise in quality or good practices in the place of the prudent actions otherwise required.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Both are used to speed progress through a given piece of work.&amp;nbsp; Using knowledge and experience is a time to market competitive advantage&amp;nbsp;gained through having talented people, compromising quality is a time to market advantage&amp;nbsp;gained through process; albeit purchased at the price of later cost.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Taking Shortcuts&lt;/strong&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Let's talk about taking shortcuts first.&amp;nbsp; When you can do this confidently&amp;nbsp;it is a magical place to be.&amp;nbsp; I like to hire really smart people and give them the freedom to use the experience they've gained throughout their careers to leap frog us straight over the other organisations who had to do it all from scratch, the sources of the experience I want to tap into.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Experienced people have been through years of doing everything&amp;nbsp;by careful analysis and research, gradually&amp;nbsp;proving out&amp;nbsp;a larger and larger set of assumptions which they can build up from, and using life's great feedback loops to tune their thinking until their instinctive decisions are as a good as a noobie's 3 months of science.&amp;nbsp; That's why we hire the kind of people we hire.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Having all that collective wisdom at hand and &lt;em&gt;not&lt;/em&gt; using it is irresponsible leadership and suffocating to the innovators you should be growing.&amp;nbsp; There are still times when the right thing to do is take things back to first principles and do that 3 months of science, but the beauty of experience is it also tells you when it's right to use your instincts and when it's right to&amp;nbsp;figure it out.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Cutting Corners&lt;/strong&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And now cutting corners.&amp;nbsp; Reducing time to market but doing something less well (sacrificing quality) or by skipping validation steps such as doing less testing (taking more risk) works in the sort term, but really just exchanges a short term temporal win for a lot more trouble later.&amp;nbsp; Often more later trouble than you really think, which is why this accelerent is so frequently misused.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I say 'freqently misused' quite deliberately, because in a pragmatic real world it is not always the wrong thing to do.&amp;nbsp; Occasionally it can even be the path to very big wins, when time is absolutely of the essence and every day counts materially.&amp;nbsp; But&amp;nbsp;it is &lt;em&gt;always&lt;/em&gt; the wrong thing to do to unconsciously blunder into cutting corners, to not be actively managing your quality, and to incur this type of technical debt without having a credible plan to come back to fix it up before it festers too long.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If you are not grown up enough to manage the payback, then you are not grown up enough to incur the debt.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;So...&lt;/strong&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hire people smarter than you are.&amp;nbsp; Empower them to use what they know and what they've done for your benefit - that's what they want anyway - and to use their time with you to further expand their horizons.&amp;nbsp; Carefully manage your quality, incur technical debt strategically, and never do it without paying it back.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You'll&amp;nbsp;do a good job&amp;nbsp;and everyone will have a good time, most importantly your consumers.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1117657613959419111?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1117657613959419111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1117657613959419111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1117657613959419111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1117657613959419111'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/11/difference-between-taking-shortcut-and.html' title='The difference between taking a shortcut and cutting a corner'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3577419500366185403</id><published>2011-09-18T21:52:00.000+01:00</published><updated>2011-09-18T21:52:50.999+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Nobody cares about your tickets</title><content type='html'>&lt;div style="text-align: justify;"&gt;As engineers we like to speak in tickets and stories and bugs IDs etc - those units of currency we find easy to grok; they're usually finite, easy to define, narrowly scoped, and uniquely identifiable.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Our customers - for the most part - like to speak in outcomes and business plans and commercial objectives and projects.&amp;nbsp; The longer term, more vague, abstracted-from-the-work things that we like to digest by breaking them down into those stories etc that we're so comfortable with.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This can lead to a weird situation where you have all your iterations scoped out and your releases forecast (with painstaking detail in every story) yet the business still lacks clarity about what's being delivered by who and when.&amp;nbsp; Hmmm.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I think a bit of generalisation can help us to understand this.&amp;nbsp; Lets appreciate that engineers, for the most part, are deeply practical people who are comfortable handling actionable tasks.&amp;nbsp; Since we're also geeks - again for the most part - this descends quickly into technical details.&amp;nbsp; You'd be surprised how unintelligible this can all be when you're not a developer. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;What I've learned over the years is that stakeholders are interested in the &lt;i&gt;meta problem&lt;/i&gt;, the commercial plans and outcomes, not the &lt;i&gt;tangible problem&lt;/i&gt;, the technical tasks and code which need to come together to solve it.&amp;nbsp; As technical leaders we need to talk about the meta problems with the business, and the technical problems with the engineers.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This comes with two obvious challenges - whenever we're talking about  the same things but using different currency we rely on a degree of interpretation and some things can be lost in  translation.&amp;nbsp; This most commonly surfaces as that old "unclear requirements" thing.&amp;nbsp; The other challenge is making sure that, as we solve our technical problems, we're solving our meta problems.&amp;nbsp; This isn't easy and this is why great product managers are so crazy hard to find!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This kind of interpretation of work - the aggregation of agile units into bigger picture project plans - is usually an early casualty of agile adoptions.&amp;nbsp; It is reminiscent of waterfall so we label it bad.&amp;nbsp; But it is a helpful mechanism which bridges the gap between agile execution and regular business planning.&amp;nbsp; It gives you both currencies.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Get awesome product people - they are the only other ones who live in this gap with you and have to speak both languages.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3577419500366185403?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3577419500366185403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3577419500366185403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3577419500366185403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3577419500366185403'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/09/nobody-cares-about-your-tickets.html' title='Nobody cares about your tickets'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-497540914053993425</id><published>2011-09-12T15:13:00.001+01:00</published><updated>2011-09-14T12:10:15.736+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>The secret of managing software projects</title><content type='html'>&lt;div style="text-align: justify;"&gt;As a technology manager there is almost unlimited discourse you can read about how to successfully manage delivery and control projects.&amp;nbsp; The real secret here is you don't manage &lt;i&gt;projects&lt;/i&gt;, you manage the &lt;i&gt;circumstances around a project&lt;/i&gt;...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This assumes that you have a team of talented engineers, a project manager as strong of character as he is on process, and an architecturally sound plan with some slack in your estimates.&amp;nbsp; If you don't already have this then don't worry, you're not about to fail, you've &lt;i&gt;already&lt;/i&gt; failed.&amp;nbsp; What you're about to experience is you doing your best to mitigate the consequences of poor leadership.&amp;nbsp; Good luck with that.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;But let's just say that you've got the structure right - now what?&amp;nbsp; If that's true, then the best contribution you can make as a leader is managing the environment around the project.&amp;nbsp; Provide a vision and simple insight into what moves the dial for the business and then move the obstacles, keep the distractions away, make sure the priorities don't change, and protect the productivity of the team members.&amp;nbsp; Keep the project fed and watered; get it the budget and skillsets it needs, get it the right visibility and attention from external teams who may be dependencies.&amp;nbsp; You're usually on the hook for the whole thing, so the temptation to dive into the details is often overwhelming.&amp;nbsp; Do it if you must but know that you probably aren't helping.&amp;nbsp; Your guys won't feel trusted and you won't be encouraging them to take ownership of their own space.&amp;nbsp; If you have a good plan on a sensible horizon, don't fiddle with it.&amp;nbsp; Every time you do you increase the chances of things not working out.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;That doesn't mean you should be disinterested or uninvolved - quite the opposite.&amp;nbsp; Be there 100% for every engineer every day and give them everything they need to give you what you need.&amp;nbsp; Be easily accessible and take on any potential problem, consequence-free, that your team feels like raising.&amp;nbsp; They don't want to waste your time any more than you want to waste theirs, so if they come to you with something, it will usually be because there is a genuine risk that you're not going to get what you planned and there is something you can do to put things back on track.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I love technology.&amp;nbsp; We all do.&amp;nbsp; That's why we got into this business.&amp;nbsp; I love what my guys do, and I love to talk to them about it, but I am always aware of when prudent interest in the organization's deliverables crosses the line and becomes micromanagement and interference.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;The most important thing you can give to any project is certainty.&amp;nbsp; Make a good plan based around people better than you are and then defend them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-497540914053993425?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/497540914053993425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=497540914053993425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/497540914053993425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/497540914053993425'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/09/secret-of-managing-software-projects.html' title='The secret of managing software projects'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3411074809792519264</id><published>2011-08-22T21:17:00.000+01:00</published><updated>2011-08-22T21:17:59.471+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Great Quote and Greater Source</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.randsinrepose.com/archives/2011/07/12/bored_people_quit.html"&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;"&gt;This article&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;"&gt; has a great take on developer-husbandry, and I particularly like the last paragraph:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: white; text-align: justify;"&gt;&lt;span lang="EN" style="mso-ansi-language: EN;"&gt;&lt;span style="color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;"&gt;"I’ve gone back and forth on whether managers should code and my opinion is: don’t stop coding. Each week that passes where you don’t share the joy, despair, and discovery of software development is a week when you slowly forget what it means to be a software developer. Over time it means you’ll have a harder time talking to engineers because you’ll forget how they think and how they become bored."&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background: white; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: white; text-align: justify;"&gt;&lt;span lang="EN" style="mso-ansi-language: EN;"&gt;&lt;span style="color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;"&gt;Even better is who sent it over to me - one of my commercial stakeholders.&amp;nbsp;&amp;nbsp;Being in a tech savvy business makes my job a lot easier in a million little ways.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3411074809792519264?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3411074809792519264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3411074809792519264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3411074809792519264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3411074809792519264'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/08/great-quote-and-greater-source.html' title='Great Quote and Greater Source'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2234035098007474418</id><published>2011-07-22T18:15:00.000+01:00</published><updated>2011-07-22T18:15:48.355+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expedia'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>Why don't we invent more?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I sat in on a conference call today (actually I'm still on it!) where we talked a lot about innovation - specifically why we haven't done more of it.&amp;nbsp;&amp;nbsp;Lots of&amp;nbsp;different stories but the common theme seemed to be governance.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When I say governance I mean things like roadmaps, product councils, architectural oversight, PMO, etc.&amp;nbsp; Basically the constructs we've set up to steer our technology investments and spend our resources wisely.&amp;nbsp; Properly applied, they are critical to the success of any significant engineering endeavour.&amp;nbsp; Improperly applied they are critical to the failure of any significant engineering endeavour!&amp;nbsp; So are they being properly applied to invention and experimentation?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I don't think it is a case of &lt;em&gt;proper&lt;/em&gt; application as much as it is a case of application &lt;em&gt;at all&lt;/em&gt;.&amp;nbsp; I think any engineer has two jobs; serve the roadmap - build the applications and systems defined and managed by our governance processes - and serve the technology - discover new ways of solving our business problems, advance your own knowledge by experimenting, come up with new ideas and see if they fly.&amp;nbsp; If you're only doing the former then you're only doing half your job.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;These are two very&amp;nbsp;distinct types of activity and they shouldn't be governed by the same controls.&amp;nbsp; It just makes no sense to apply ROI and risk controls and rigid scheduling&amp;nbsp;to a journey of discovery with a totally unknown destination.&amp;nbsp; The difference between&amp;nbsp;teams who innovate and teams who just&amp;nbsp;talk about it&amp;nbsp;is &lt;em&gt;recognising the immense value in the journey alone&lt;/em&gt;...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Besides, you don't need all that bureaucracy.&amp;nbsp; All you need to be great at&amp;nbsp;this is to leave a space&amp;nbsp;for it to grow and - if you have the right people - it will expand to fill it.&amp;nbsp; &lt;em&gt;That&lt;/em&gt; is how I roll and &lt;em&gt;that&lt;/em&gt; is what I want to see.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2234035098007474418?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2234035098007474418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2234035098007474418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2234035098007474418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2234035098007474418'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/07/why-dont-we-invent-more.html' title='Why don&apos;t we invent more?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1964278329590782292</id><published>2011-07-13T22:20:00.002+01:00</published><updated>2011-07-13T22:53:45.285+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='expedia'/><title type='text'>Big Roadmap seeks Innovative Thinkers for long term relationship</title><content type='html'>&lt;div style="text-align: justify;"&gt;I haven't posted much recently - my &lt;a href="http://www.expediaaffiliate.com/"&gt;new gig&lt;/a&gt;&amp;nbsp;has been&amp;nbsp;keeping me quite busy - but life is returning to a more sustainable pace now&amp;nbsp;so I'll be able to start sharing more often again.&amp;nbsp; In the meantime I once again&amp;nbsp;find myself drawing up battle plans in the war for talent.&amp;nbsp; So what are&amp;nbsp;my 3 top weapons I can&amp;nbsp;bring to the fight?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Step 1&amp;nbsp;- oops almost out of desks; let's get a really kick ass place to house all these smart engineers.&amp;nbsp; So we're moving to &lt;a href="http://www.angelbuilding.com/"&gt;a sweet new spot&lt;/a&gt; in Angel. &amp;nbsp;We're growing fast and it's already nearly standing room only at the current office. &amp;nbsp;Covent Garden has its charms, but our new spot is being&amp;nbsp;custom fitted - just for us - to be one of the best work spaces in the UK.&amp;nbsp; Check out the progress:&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TeD_sCuzu6o/Th1fb0NDb1I/AAAAAAAAAaI/8N4IsS0p840/s1600/atrium.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" m$="true" src="http://2.bp.blogspot.com/-TeD_sCuzu6o/Th1fb0NDb1I/AAAAAAAAAaI/8N4IsS0p840/s320/atrium.jpg" width="239" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oArLYNWXlfc/Th1fd9_vz_I/AAAAAAAAAaM/rpw8rltrO4c/s1600/breakout.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" m$="true" src="http://1.bp.blogspot.com/-oArLYNWXlfc/Th1fd9_vz_I/AAAAAAAAAaM/rpw8rltrO4c/s320/breakout.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JPA3E2k0aiA/Th1ffLv1lyI/AAAAAAAAAaQ/nrs2mo5g5aQ/s1600/restaurant.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" m$="true" src="http://4.bp.blogspot.com/-JPA3E2k0aiA/Th1ffLv1lyI/AAAAAAAAAaQ/nrs2mo5g5aQ/s320/restaurant.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-W-x2oMxVvoE/Th1fgUJG_4I/AAAAAAAAAaU/O_NV4gPc-Bw/s1600/roof.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" m$="true" src="http://4.bp.blogspot.com/-W-x2oMxVvoE/Th1fgUJG_4I/AAAAAAAAAaU/O_NV4gPc-Bw/s320/roof.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The list of features includes eco-geekery such as biomass boilers and heating and lighting&amp;nbsp;driven by&amp;nbsp;room occupancy sensors, high ceilings&amp;nbsp;with 360 degree sunlight, huge storage space for bikes with plenty of showers and lockers, a variety of breakout areas for informal meetings, and&amp;nbsp;a nifty&amp;nbsp;cafe and&amp;nbsp;Jamie's Italian restaurant on the ground floor.&amp;nbsp; All 80,000 sq ft of it&amp;nbsp;(a huge uplift to accommodate our growth) is coming along nicely and is 30 seconds walk from Angel tube station.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cool.&amp;nbsp; Now for step 2 - set up the right environment and culture.&amp;nbsp; So what is it &lt;i&gt;actually&lt;/i&gt; like to work here?&amp;nbsp; Well, you could &lt;a href="http://www.expediajobs.com/"&gt;take our word for it&lt;/a&gt;, or I could give you the inside scoop...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When you get right down to it technology is core to what we do - our whole business is built on it and it drives our partner's businesses too.&amp;nbsp; Therefore we have to have a culture which supports great engineering in order to succeed.&amp;nbsp; That means bringing in smart developers, letting them own the problems, and then giving them the space to find the best ways of solving them.&amp;nbsp; It means creating time for innovation, it means allowing technologists to make technical decisions, and it means permission to work in the implementations which make sense (and maybe even a little pushing to keep you expanding your horizons) instead of being dogmatic about any particular stack.&amp;nbsp; Add to this a&amp;nbsp;sustainable business model with &lt;i&gt;plenty&lt;/i&gt; of big wins left to achieve and some clear priorities and shared steering of the business, and you have yourself the right&amp;nbsp;ingredients&amp;nbsp;for putting together some really successful software.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the macro, Expedia is a very large place but we operate in a kind of group structure.&amp;nbsp; So yes, it is a very big company and that [fortunately]&amp;nbsp;comes with some big company benefits, but the work experience is more similar to working for a well funded startup.&amp;nbsp; We work as small, independent, cross-functional teams, with each team having a good mixture of autonomy and support.&amp;nbsp; We believe that our guys should have end-to-end&amp;nbsp;ownership of the systems they build - everyone&amp;nbsp;is part of a small elite team and feels like they're personally making a difference.&amp;nbsp; If you've read a few of my posts before then you probably have a fair idea about how I like to run things.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Step 3 - challenges that &lt;i&gt;really&lt;/i&gt; make you think.&amp;nbsp; This is an exciting time to be part of creating something pretty unique; I've &lt;a href="http://www.cloudwf.com/conference/speakers/717-eachan-fletcher-vice-president-of-technology-expedia-affiliate-network-expedia-inc.html"&gt;said recently&lt;/a&gt; that we're about to change the rules in web travel and it's going to be fun.&amp;nbsp; Obviously I won't share my&amp;nbsp;roadmap here, but I will talk about the sort of technology we'll be working with.&amp;nbsp; How about&amp;nbsp;creating an eventually consistent distributed datastore latency tolerant?&amp;nbsp; What about peer-to-peer cluster management in the cloud?&amp;nbsp; Making an n+1 node in-memory cache topology aware?&amp;nbsp; Automated provisioning based on realtime system utilisation feedback?&amp;nbsp; Inventing new sorting algorithms and queuing strategies?&amp;nbsp; Or your own anti-entropy protocol?&amp;nbsp; Collecting obscene amounts of performance data and rebuilding your tools to watch those numbers move?...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You'll notice that I didn't say 'Java' or 'C#' or 'SQL' or 'PHP' at all.&amp;nbsp; That's because, to a certain extent, those things aren't what's important.&amp;nbsp; What's important are the patterns, the fundamentals of how we logically solve business problems using computer science, and that is what great engineers do.&amp;nbsp; Then they write some code as a result.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If that sounds awesome to you, and you can show&amp;nbsp;me some aptitude in this kind of space,&amp;nbsp;then we should talk (especially if you're Cassandra/MapReduce curious).&amp;nbsp; Get hold of &lt;a href="mailto:efletcher@expedia.com"&gt;me&lt;/a&gt; or my recruitment ninja, &lt;a href="mailto:rpanchasra@expedia.com"&gt;Roopesh Panchasra&lt;/a&gt;,&amp;nbsp;&lt;i&gt;right now&lt;/i&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;PS - I am also hiring in the US, so drop me a line if you're stateside and want to work with smart folks on some sharp stuff.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1964278329590782292?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1964278329590782292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1964278329590782292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1964278329590782292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1964278329590782292'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/07/big-roadmap-seeks-innovative-thinkers.html' title='Big Roadmap seeks Innovative Thinkers for long term relationship'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-TeD_sCuzu6o/Th1fb0NDb1I/AAAAAAAAAaI/8N4IsS0p840/s72-c/atrium.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2748967800195982667</id><published>2011-04-28T10:32:00.000+01:00</published><updated>2011-04-28T10:32:11.258+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>a geographic sense of urgency</title><content type='html'>&lt;div style="text-align: justify;"&gt;A friend of mine recently visited the Boeing factory just outside of Seattle and came back with a story I thought was worth sharing; something they called 'a geographic sense of urgency' over there.&amp;nbsp; It's a nifty story about motivation and incentive.&amp;nbsp; I'll do my best to retell it 2nd hand.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A few years ago Boeing was struggling with efficiency on their assembly lines.&amp;nbsp; They needed a way to build airplanes faster but were approaching limits on what could be done in parallel, how long a working day could be extended, or how many more resources could be applied to each assembly (outside of the economic ceiling I guess there must be some limitation to the number of people who can fit around the airframe).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To grossly oversimplify - with apologies to aircraft mechanics everywhere - a plane started at one end of the production line and moved through a series of stages; stopping at each 'station' to fit whatever parts that station fitted until eventually arriving at the other end of the hanger complete.&amp;nbsp; Another way to describe this might be to say that a plane moved through a series of bottlenecks, with all pressure focused on the current station until its work was complete.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The answer borrowed heavily from lean but was all anchored around a single, creative idea; the plane never stops from one end of the hanger to the other.&amp;nbsp; Instead of rolling forward a few dozen meters and then stopping to have work done (loop until plane=true) the plane is constantly moving forward by a few centimeters an hour and only stops when it reaches the end of the hanger - hopefully as a complete aircraft!&amp;nbsp; Flow.&amp;nbsp; Work happens more fluidly and consistently all the way along the plane's terrestrial journey.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This simple change to constant motion had a remarkable impact on the teams.&amp;nbsp; I wish I had more data (and if I can find any I will post it) but the improvements in throughout were astounding.&amp;nbsp; The physiological effect was a sense of pace - this is what they call a geographic sense of urgency.&amp;nbsp; The results were significant increases in efficiency and total throughput without extending crews or hours or resorting to the traditional but seldom as effective as expected measures such as pay increases.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Smart idea Boeing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2748967800195982667?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2748967800195982667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2748967800195982667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2748967800195982667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2748967800195982667'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2011/04/geographic-sense-of-urgency.html' title='a geographic sense of urgency'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5616896906320608515</id><published>2010-12-07T12:07:00.001Z</published><updated>2010-12-07T12:07:05.926Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>Intellectual Property in 3 posts – episode I</title><content type='html'>&lt;p align="justify"&gt;I originally called this ‘Intellectual Property Done Quick’ but, when I was finished and looked at what I had wrought, I realized that ‘done quick’ was likely to be in breach of the trade descriptions act.&lt;/p&gt;  &lt;p align="justify"&gt;So I’ve broken it up into 3 tasty morsels; today I’m doing an introduction to different types of intellectual property and I’ll follow up with applying for a patent and then finally some tips for managing IP in the enterprise.&lt;/p&gt;  &lt;p align="justify"&gt;There are 4 main types of intellectual property defined in UK law and, along with their relatively dry legal descriptions, they are:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Trade marks&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;i&gt;Indefinitely protects signs which distinguish the goods or services of one undertaking from those of another.&lt;/i&gt;&lt;/p&gt;  &lt;p align="justify"&gt;A trade mark is a distinguishing badge of origin which can be a valuable asset when it imbues a product with the reputation and perception of a certain maker.&lt;/p&gt;  &lt;p align="justify"&gt;It can become a trademark either by initial registration or it can acquire trademark status over time through use.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_QAbNbu3LCmU/SXAirCR3eoI/AAAAAAAAAWg/shBOIfAXqHY/s400/mcd_lovin_it__clr%255B1%255D.jpg"&gt;McDonald’s golden arches&lt;/a&gt;, the &lt;a href="http://2.bp.blogspot.com/_mhHzlHCfJ2M/TCILtAh9uXI/AAAAAAAABqU/0jmKpIox_U8/s1600/ups-logo.jpg"&gt;UPS shield&lt;/a&gt;, and &lt;a href="http://www.opsl.org/v1/images/stories/pictures/nike-swoosh.gif"&gt;Nike’s swoosh&lt;/a&gt; are all good examples of a trademark – instantly recognizable and clearly identifying a specific brand.&lt;/p&gt;  &lt;p align="justify"&gt;Registering a trademark gives an organization or an individual the right to prevent others from using the same mark it in relation to similar goods or services (listed in the application). Even if you have no appetite for hunting down and suing IP trespassers, registration is still a good idea because it prevents that happening to you – priority (‘I was already using that before they registered it’) is a tough argument in trade marks. And, in the longer term, if you’re ever likely to want to license the use of your trademark to others then registration establishes an official article against which a license can be granted.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Patents&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;i&gt;Protects the technical aspects of products or processes for 20 years.&lt;/i&gt;&lt;/p&gt;  &lt;p align="justify"&gt;A patent gives the patent holder exclusive rights to prevent anyone else making, using, or selling their invention for a fixed period of time (usually 20 years) before it becomes part of the public domain. Patents cannot be extended beyond their initial term – they arose as a way of governments encouraging innovation; essentially we agree to keep inventing stuff for the good of mankind in exchange for a period of state sanctioned selfishness in how that invention is manufactured and sold.&lt;/p&gt;  &lt;p align="justify"&gt;Patents are territorial – only good for the countries they’re granted in – but a number of international agreements exist which allow. In the EU we have the European Patent Office where a single application covers 36 nations, and for the wider world the Patent Cooperation Treaty covers 130 countries. In both cases you have 12 months from your ‘home’ filing date to extend internationally before it is considered a new application – this can be important as your initial filing date is considered to be the date from which protection becomes effective.&lt;/p&gt;  &lt;p align="justify"&gt;Check out James Cameron’s &lt;a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;co1=AND&amp;amp;d=PTXT&amp;amp;s1=7643748&amp;amp;OS=7643748&amp;amp;RS=7643748"&gt;platform for stereoscopic image acquisition&lt;/a&gt; (also known as a camera mount) for example and &lt;a href="http://www.google.com/patents?id=emkAAAAAEBAJ&amp;amp;printsec=abstract&amp;amp;zoom=4&amp;amp;source=gbs_overview_r&amp;amp;cad=0#v=onepage&amp;amp;q&amp;amp;f=false"&gt;improvement in velocipedes&lt;/a&gt; (also known as bicycles) for something a little more old school.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Registered designs&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;i&gt;Protects the appearance of products for 25 years.&lt;/i&gt;&lt;/p&gt;  &lt;p align="justify"&gt;For a long time it has been recognized that the appearance of a product can be the key to it’s commercial success – may I present, as evidence, anyone who buys anything from Apple.&lt;/p&gt;  &lt;p align="justify"&gt;A registered design gives its holder the right to prevent anyone else making or selling products which look and feel the same as the registered design. It covers tangible, physical, crafted things (like the famous coke bottle) as well as conceptual, aesthetic things (like the famous coke logo).&lt;/p&gt;  &lt;p align="justify"&gt;Registering a design is quite straightforward – compared to a patent application – as it does not involve any detailed scrutiny by an examiner. Apply to the &lt;a href="http://www.ipo.gov.uk/"&gt;Intellectual Property Office&lt;/a&gt; and, within 3 months, you could be the proud new owner of a registered design. Also unlike patents, you have 12 months from when your design first becomes public to register it; with a patent when it’s out it’s out!&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Design rights&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;i&gt;Protection for appearance of products without any special application being made (for example copyright).&lt;/i&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Design rights are a collection of automatic protections which apply to various original works. In practice they work very similarly to registered designs – and apply to similar works and materials – but do not need to be applied for in order to take effect.&lt;/p&gt;  &lt;p align="justify"&gt;The subclasses (if you want to be geeky about it) are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;UK design right – protects shape and appearance, except for surface decoration, for either 15 years from the creation of the design or 10 years from the first time the design was marketed.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Community design right – similar protection to the UK design right and also covers surface decoration, however it is only valid for a maximum of 3 years from the date the design was made public.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;UK copyright – can be thought of almost as the opposite of UK design rights because copyright covers surface decoration (not form and function) and ‘artistic’ qualities. In force for 25 years from the end of the year in which the design was first marketed.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;If design rights apply automatically why would you pay to register a design? If you rely solely on automatic design rights then &lt;i&gt;you must prove&lt;/i&gt; that a similar product was copied from your protected material – with a registered design you can prevent another party from making or selling something similar whether they copied you intentionally or by coincidence. It’s pretty easy to determine that two items are similar, but a lot more difficult to prove why.&lt;/p&gt;  &lt;p align="justify"&gt;So that’s our 4 identified types of IP.&lt;/p&gt;  &lt;p align="justify"&gt;In the technology and software business you’ll mostly deal with copyright and patents. In my next post I’m going to walk though patent application process since copyrights kind of happen on their own and the granting of a patent looks simple from the outside but turns into quite an arcane art.&lt;/p&gt;  &lt;p align="justify"&gt;And finally, now that we’ve covered formally establishing and reserving rights using the various offensive and defensive legal tools available to manage IP, the thought I want to leave you with is that there is nothing quite like good citizenship. Treat the property and creations of others in the same way as you’d like them to handle yours – patents, copyrights, or not.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5616896906320608515?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5616896906320608515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5616896906320608515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5616896906320608515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5616896906320608515'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/12/intellectual-property-in-3-posts.html' title='Intellectual Property in 3 posts – episode I'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1676804480846701239</id><published>2010-11-19T09:48:00.002Z</published><updated>2010-11-19T13:57:29.233Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Steriods for Signups</title><content type='html'>&lt;div style="text-align: justify;"&gt;Anyone who runs a business on the web should be intimately familiar with the registration funnel (sometimes called the recruitment or conversion funnel) so - except for the briefest review to frame the problem - I'm not going to rehash that here.  Instead I'm going to cover some common and some not-so-common ways to boost registration numbers.&lt;br /&gt;&lt;br /&gt;So, for the quick review, the registration funnel is basically the set of steps a potential customer traverses on their way to becoming an actual customer (converted) and typically starts with a site hit and ends with an active user account.  What these steps consist of varies with the nature of each business and might include things like a shipping address or a credit check along with the basics such as username and password.&lt;br /&gt;&lt;br /&gt;The problem every web business faces is that the registration funnel is essentially a very lossy process.  For example; of every 100 site visitors, 50 will start the registration process, of that 50 25 will complete the process, and of that 25 10 might go on to place their first order.  Even with the best husbandry many web businesses have single digit conversion rates.  With marketing on the web becoming more sophisticated and SEO/semantics driving smarter access to content getting the numbers in the top of the funnel usually isn't the problem and - just like any other lossy process - there can be a big impact on the bottom line by improving the rate by just a couple of points.&lt;br /&gt;&lt;br /&gt;So how can you juice this up?&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; first thing you need is data.  Just like everything else you need to understand the flow and then you need to instrument the heck out of it before you should be fiddling with it.  If you haven't already got this in place then stop reading now and get on with it - the rest of this is useless without insight.&lt;br /&gt;&lt;br /&gt;Separate your registration process out in your head; this will help you understand and instrument it.  Think through all the steps in your funnel make it as granular as possible - this gives you much more insight into where potential customers drop out and much more flexibility in how you modify the process in response.  Crudely; if you're thinking visitor -&gt; credentials -&gt; personal details -&gt; checkout then you &lt;span style="font-style: italic;"&gt;should be&lt;/span&gt; thinking visitor -&gt; credentials -&gt; name and email address -&gt; shipping address -&gt; checkout.  This doesn't necessarily mean more pages or more data for customers to enter (in fact the goal is the opposite) but it does mean than you can count these things individually to see exactly what bit of information your potential customers get reluctant about handing over and it allows you to stage things a little more (see below).&lt;br /&gt;&lt;br /&gt;The general principle is to put the fewest barriers between your potential customers and your product as possible.  This means looking at what information you're asking for, when you're asking for it, and how it's captured.  In some businesses there can be constraints which have to be acknowledged; with a product which is regulated or controlled in some way there may be some external rules which can reduce your options - such as the requirement for identity verification or credit checking - but the keyword here is &lt;span style="font-style: italic;"&gt;reduce&lt;/span&gt;.  The registration pipeline in these types of business is often poorly managed for this reason but it doesn't always need to be; take the time to understand the details of your governance and you will usually find that you have more flexibility than you assumed.  For example you might need to verify your customers identity somehow before allowing them to make a withdrawal but does that &lt;span style="font-style: italic;"&gt;have to&lt;/span&gt; stop you from granting them access to the rest of your product entirely?&lt;br /&gt;&lt;br /&gt;Nice segue into staging.  One of my favorite techniques in businesses with more complex registration requirements is to focus on capturing the absolute bare minimum during an initial signup (usernames, email addresses, passwords, etc) and capturing the rest 'just in time' in line with access to features.  For example; why not delay asking for a physical address until the first time a user reaches the checkout?  Why not ask for payment information just before their first purchase?  You don't need that data until those events and having to enter it all up front can be prohibitive especially when potential customers might not be 100% sure that you're the service they want.  Also think carefully about when you want to trigger the 1st step of the registration process - there can be benefit to letting potential customers play with a little bit more of your product before hitting them up for some credentials (but you have to balance this with less complete early contact information and the risk of taking it too far and having fewer accounts because the majority of the value is available anonymously).&lt;br /&gt;&lt;br /&gt;Usability is an important aspect here.  Considering the number of screens in your signup process, the number of fields, and even the phraseology of the questions can improve your conversion rates.&lt;br /&gt;&lt;br /&gt;Also consider the order that you're capturing information in; if you start with email addresses and you're automatically storing fields as they're completed - a highly recommended Ajax trick - then you have some actionable data to go with your telemetry.  You might want to use it for a follow-up contact to see if you can claw a customer back from the edge of registration oblivion.&lt;br /&gt;&lt;br /&gt;Another consideration when you're designing your forms is to keep in mind the sort of information users are likely to have close at hand when signing up for your site.  The more esoteric (in day-to-day terms) the information you ask for is the higher the chances that a potential customer will need to go elsewhere to retrieve it during the signup process.  Data &lt;span style="font-style: italic;"&gt;always&lt;/span&gt; shows that anytime a customer leaves the page(s) for &lt;span style="font-style: italic;"&gt;any&lt;/span&gt; reason the changes that they'll return and complete them drop through the floor.  What might you not even need users to enter at all?  You can pick up things like language and locale from the browser and tools like geo-IP; adjusting a probably-correct field from a list of common choices is far preferable to data entry.&lt;br /&gt;&lt;br /&gt;While we're on forms; short and sweet is the way to go.  Whenever you have to go 'below the fold' then you're better off splitting the form into multiple pages (otherwise it appears too daunting) and, when you're going across multiple pages, then label the progress.  A simple 'page X of Y' can work wonders setting expectations.&lt;br /&gt;&lt;br /&gt;And finally, if there is a relevant infrastructure for your line of business (meaning that you can trust it and that a portion of your users are likely to be members) you can consider using an identity service, such as OpenID, to implement a kind of 1-click signup and then just capture the additional information you need to operate the account.&lt;br /&gt;&lt;br /&gt;Change it and see what happens - after all you're collecting all the data you need, right?  If you're crafty enough then you can do some A/B testing with alternate pages or different text.  As long as you're measuring the process you will really quickly find out what's better and what's worse.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1676804480846701239?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1676804480846701239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1676804480846701239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1676804480846701239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1676804480846701239'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/11/steriods-for-signups.html' title='Steriods for Signups'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8916474438668016842</id><published>2010-10-27T20:54:00.001+01:00</published><updated>2010-10-27T20:54:37.549+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='sporting index'/><title type='text'>Adding a feature dimension to planning boards</title><content type='html'>&lt;p align="justify"&gt;Planning boards – sometimes called task boards – are a great way to make work visible, facility teamwork, and surface impediments.&amp;#160; The work required for a given iteration of software is broken down into a collection of individually owned tasks and then, as work progresses, we watch those tasks migrate towards the right hand side with a sense of satisfaction.&lt;/p&gt;  &lt;p align="justify"&gt;This is unprecedented transparency and one of the reasons why I love it, but it does have one small shortcoming.&amp;#160; If you’re not intimately familiar with the work (say, for example, a non-technical stakeholder) then it can be a bit hard to determine meaning.&amp;#160; Yes things are moving along, but what &lt;em&gt;really&lt;/em&gt; are those things?&amp;#160; Of the 4 stories we’re doing this sprint, which business feature does this progress (or impediment) relate to?&amp;#160; It looks almost all done but are we saying that we’ve done 3 of our features and we’re working on the 4th or that we have we done 80% of each of them?&lt;/p&gt;  &lt;p align="justify"&gt;We do want the business to be engaged and to participate in the process so we ought to try and make it interpretable for them.&lt;/p&gt;  &lt;p align="justify"&gt;Some of my guys recently started adding a 2nd dimension to their planning boards; features.&amp;#160; By adding a horizontal view which groups tasks by the requirement they relate to as well as the usual vertical view which groups tasks by their status (not started, done, etc) you get an at-a-glance view of the progress of each piece of business-relevant functionality, rather than just a broad sense of things happening.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_fhZACHRBLcQ/TMiDZRm5mAI/AAAAAAAAAYo/d9isa9Ht7Rg/s1600-h/image%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto 5px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_fhZACHRBLcQ/TMiDfAb2iEI/AAAAAAAAAYs/yOG7aq674Kg/image_thumb%5B2%5D.png?imgmax=800" width="375" height="405" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Even I find this easier to consume!&amp;#160; Rock on you little geniuses (you know who you are).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8916474438668016842?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8916474438668016842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8916474438668016842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8916474438668016842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8916474438668016842'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/10/adding-feature-dimension-to-planning.html' title='Adding a feature dimension to planning boards'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_fhZACHRBLcQ/TMiDfAb2iEI/AAAAAAAAAYs/yOG7aq674Kg/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-578458017573750573</id><published>2010-10-04T20:34:00.001+01:00</published><updated>2010-10-04T22:11:53.192+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>MVP in the Enterprise</title><content type='html'>&lt;p align="justify"&gt;&lt;a href="http://en.wikipedia.org/wiki/Minimum_viable_product"&gt;Minimum Viable Product&lt;/a&gt; (MVP) is a well understood concept in startups.&amp;#160; It is all about distilling your features down to the barest of essentials – those things which really make your product &lt;em&gt;your product&lt;/em&gt; - in order to get something out rapidly and be able to quickly iterate guided by feedback.&amp;#160; From working at both ends of the startup-to-mature-business spectrum, it occurs to me that the enterprise could learn a thing or two from its lighter-weight cousins.&lt;/p&gt;  &lt;p align="justify"&gt;To broadly generalise the circumstances I’ve seen:&lt;/p&gt;  &lt;p align="justify"&gt;We’re pretty good at this MVP thing in early stage startups.&amp;#160; Mostly because, as we plan an iteration, we are fully aware that we might not be around for another iteration so whatever goes into this one has to count (in fact it might count for everything).&amp;#160; We think lean.&amp;#160; We’re typically good at serving our customer’s most immediate and pressing needs.&lt;/p&gt;  &lt;p align="justify"&gt;In the enterprise we have the luxury of working with the confidence that, even if the immediate next set of features don’t &lt;em&gt;quite&lt;/em&gt; hit the sweet spot, we’ll be around for many more iterations yet before times start to get tough.&amp;#160; We think deep and wide.&amp;#160; We’re typically good at serving a big strategic master plan.&lt;/p&gt;  &lt;p align="justify"&gt;Being able to take a longer term view of a roadmap is definitely an advantage and having to spend time worrying about things like scalability is a nice problem to have, but this doesn’t mean that we can’t also think lean.&amp;#160; In fact some of the most value I’ve added has been in the amount of work I &lt;em&gt;haven’t&lt;/em&gt; done...&lt;/p&gt;  &lt;p align="justify"&gt;It can work in big business.&lt;/p&gt;  &lt;p align="justify"&gt;Recently I looked at a system to capture and analyse certain customer activity in order to get an earlier prediction of lifetime value and make data-driven cross selling decisions (which ought to push up average revenue a notch) and, on the surface, that seems like it’s worth the pretty hefty licensing, integration project, and infrastructure costs.&amp;#160; We started off modelling it and running the numbers; at first synthetically and later with real data.&amp;#160; What we learned through this early prototyping is that those features which were initially so attractive made very little difference to our business, however our little robot was uncannily good at identifying fraudulent activity.&amp;#160; So we switched the direction of the project, chose an alternative platform, saved a bunch of money and got some functionality which genuinely benefitted us.&amp;#160; Sometimes you know what the real benefits are going to be up front, sometimes you surprise yourself along the way.&lt;/p&gt;  &lt;p align="justify"&gt;We’re also planning to introduce a pay-as-you-go commercial model for &lt;a href="http://www.sportingsolutions.com/"&gt;our feed products&lt;/a&gt;.&amp;#160; When you add up a metering system to watch client consumption, a dynamic pricing system to set tariffs, a billing engine to produce the required invoices, and some reporting tools to keep an eye on its performance it starts to become a fairly significant undertaking.&amp;#160; Will customers like it?&amp;#160; Will it work like we hope (add top-up revenues to committed subscriptions) or like we fear (cannibalise commitment for shorter term hits)?&amp;#160; The best way forward in these circumstances is to ask &lt;em&gt;what is the absolute minimum amount of work I can do to see if this works?&amp;#160; &lt;/em&gt;As it turns out we could do a some basic instrumentation (to get simplified metering), use some static pricing, and do the billing manually.&amp;#160; Net result?&amp;#160; A much smaller piece of work – useable in production with real customers – demonstrating how successful it’s going to be.&amp;#160; Now we can build on this with further iterations until we have the fully-featured and refined version we first dreamed up.&lt;/p&gt;  &lt;p align="justify"&gt;There are many more examples, some of which have worked out just fine – so we’ve kept building on them until they were feature complete, fully automated, and enterprise quality.&amp;#160; Others have failed – so we’ve cut our losses (fail fast fail cheap; writing off a few thousand not a few million) and moved onto something different which &lt;em&gt;did&lt;/em&gt; turn out to be a winner.&lt;/p&gt;  &lt;p align="justify"&gt;Just because we have the budget and the appetite to do the whole shooting match right away doesn’t always mean we ought to.&lt;/p&gt;  &lt;p align="justify"&gt;The obvious risk here is becoming too short sighted with your plans.&amp;#160; The secret to making this work is to imagine big but plan small – keep a long term roadmap and have a clear vision of where you want all your products to get to, but take small, tightly scoped steps along that path.&amp;#160; Stop and evaluate frequently, adjust big picture where necessary, rinse and repeat.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-578458017573750573?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/578458017573750573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=578458017573750573' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/578458017573750573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/578458017573750573'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/10/mvp-in-enterprise.html' title='MVP in the Enterprise'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3175134858104601627</id><published>2010-09-20T09:54:00.002+01:00</published><updated>2010-09-20T09:54:00.887+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Mechanical Sympathy</title><content type='html'>&lt;p style="text-align: justify;"&gt;In the world of motorsports ‘mechanical sympathy’ is the measure of a driver’s impact on their vehicle. As well as fuel economy it is probably well understood by most people that your driving habits do have some impact on how long your car is likely to last, how often it needs attention, and how quickly the parts will wear out. The world of professional drivers is no different, except that excess punishment of the car can mean that vital few more seconds spent in the pit lane – which can cost a racing team a lot more than just this year’s annual service coming up sooner.&lt;/p&gt;  &lt;div style="text-align: center;"&gt;&lt;a href="http://lh5.ggpht.com/_fhZACHRBLcQ/TJT3kFiIiVI/AAAAAAAAAYQ/O12ngdG-ERQ/s1600-h/f1-pit%5B16%5D.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="f1-pit" alt="f1-pit" src="http://lh5.ggpht.com/_fhZACHRBLcQ/TJT3kxtRDkI/AAAAAAAAAYU/U5rEq_UnbQ8/f1-pit_thumb%5B12%5D.jpg?imgmax=800" border="0" height="268" width="398" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;  &lt;p style="text-align: justify;"&gt;Mechanical sympathy attempts to quantify that impact and allows teams to acknowledge it and work on balancing car wear against squeezing that last little bit extra out of it.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;I did a motorsports driving course a while back (number of formula 1 events participated in since training: 0 – number of speeding tickets around town since training: 1) and was mercilessly rated in this category. I guess that explains the frequency of servicing that my long-suffering saloon seems to require…&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;As an outsider to the world of motorsport the importance of certain metrics is immediately obvious – lap times or time spent under power etc – but why measure drivers on something mechanical? These guys don’t fix their own engines, swap out their own gearboxes, or tune their own brakes; that’s someone else in the team. But, as drivers, they do have a direct impact on how often this needs done, how severe it’s going to be, and how expensive it will be to do – and that has a direct impact on winning and losing.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;So why don’t we measure the non-IT people in our businesses on their impact on technology? I’d like to introduce the concept of &lt;i&gt;technical sympathy&lt;/i&gt;.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;I think that people in our businesses should have at least a small part of their KPIs relate to technology. We’re not expecting them to be developers or sysadmins – in the same way that drivers aren’t expected to be mechanics – but we have to acknowledge that they do have an impact on this stuff (probably more than they realise).&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Good stakeholdership can make the difference between a well-run project hitting time and budget and a chaotic piece of work drifting on endlessly. Considerate use of systems can avoid the need for expensive environmental controls and the wasting of shared resources such as disks and tapes. The costs and turnaround times of support can be dramatically different with more personal responsibility and better use of self-service at the desktop.&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;In almost every company I have worked in we’ve measured engineers on business knowledge and company performance to some degree, yet we never seem to have thought of the reverse even though business behaviours can have a &lt;i&gt;profound&lt;/i&gt; effect on the cost and quality of technology.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3175134858104601627?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3175134858104601627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3175134858104601627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3175134858104601627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3175134858104601627'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/09/mechanical-sympathy.html' title='Mechanical Sympathy'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_fhZACHRBLcQ/TJT3kxtRDkI/AAAAAAAAAYU/U5rEq_UnbQ8/s72-c/f1-pit_thumb%5B12%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4668986529122192686</id><published>2010-09-15T16:39:00.001+01:00</published><updated>2010-09-15T16:39:05.764+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>The Product Management Boundary</title><content type='html'>&lt;p&gt;Talking to a few of my industry peers (web CTOs and CIOs) about what they do, and to a few CEOs about their expectations, something that’s becoming clear is that we’re increasingly being expected to know &lt;i&gt;what&lt;/i&gt; to do, not just &lt;i&gt;how&lt;/i&gt; to do it.&lt;/p&gt;  &lt;p&gt;Traditional IT uses that age old you-give-us-requirements–we-give-you-back-[mostly]-matching-systems paradigm or variations on that theme. Something we do would typically have a sponsor who dreams up a course of action and a handful of stakeholders who detail it out. What you call those people will depend on whether you think you’re doing agile, RUP, waterfall, etc but typically you’d place them in ‘the business’ rather than technology.&lt;/p&gt;  &lt;p&gt;That seems to be changing.&lt;/p&gt;  &lt;p&gt;Less and less are we being handed requirements documents or project specs and then going off and doing work to order. Now we’re being asked things like; how do we reach new users? What things can we do to increase wallet share? Should we be doing something with social media? How are we going to internationalize this product? Yeah, that’s right, we’re finally dealing in &lt;i&gt;problems&lt;/i&gt; not in &lt;em&gt;todo lists,&lt;/em&gt; and - in a trend which is gaining popularity - product management is increasingly being based inside the technical delivery teams.&lt;/p&gt;  &lt;p&gt;The days of a business giving us defined work and us delivering projects against it are going to come to an end. A pessimist might suggest that this is ‘the business’ escaping responsibility for defining it’s future. I’d simply argue that technology is an integral part of any modern business, not something else extra and external, and since we’re all part of the same ‘business’ anyway then why shouldn’t we take our fair share of determining the strategy?&lt;/p&gt;  &lt;p&gt;I think this is pretty awesome and, in some cases, overdue – after all, don’t we &lt;em&gt;want&lt;/em&gt; a bigger influence over what the future of the business looks like and how we get there?&amp;#160; Do it CxOs!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4668986529122192686?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4668986529122192686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4668986529122192686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4668986529122192686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4668986529122192686'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/09/product-management-boundary.html' title='The Product Management Boundary'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5702313365942064138</id><published>2010-08-31T14:36:00.001+01:00</published><updated>2010-09-03T17:26:08.907+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>The Abstraction Trap</title><content type='html'>&lt;p&gt;Abstractions exist so that we can take shortcuts when building stuff.&amp;#160; They readily implement some of the messy necessities behind things like, for example, network access in distributed systems – but too often they’re used as an alternative to in-depth understanding rather than a reusable way to render a system.&lt;/p&gt;  &lt;p&gt;Staying with our distributed system example; understanding the latency between nodes, synchronisation and blocking (and their impact on concurrent work), transport overhead and reliability, and what the behaviour will be if you don’t hear back from the remote service are all critical to the success of a complex project.&amp;#160; Without having to explicitly program these things it’s too easy to just drop something into a pipe or throw it at a web service and merrily continue on with life having never even considered those neatly masked complexities.&amp;#160; Until go live.&lt;/p&gt;  &lt;p&gt;It’s the difference between something that functions on the bench and something that will work reliably in real life’s volatile conditions.&lt;/p&gt;  &lt;p&gt;On the infrastructure side I see the same pattern emerging with virtualisation – we’ve now got this nifty and easy to use platform which takes us another step further away from the metal.&amp;#160; On the plus side we can stamp out more nodes really quickly and move instances of a server around from hardware to hardware to accommodate growth and failure, but on the minus side correlating what’s happening on pretend CPUs with a real CPU and oversubscribing hosts makes capacity planning a degree harder.&lt;/p&gt;  &lt;p&gt;All these environments are designed to abstract things away from us so that we don’t have to worry about them or recreate them every time – but that’s not the same as saying we no longer need to understand the basics of what happens under the hood.&lt;/p&gt;  &lt;p&gt;You’ll always have better product when your engineers have the low level knowledge (primitives and patterns) needed to design and build systems and understand how they will behave.&amp;#160; That’s different to simply knowing how to drive the tools.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5702313365942064138?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5702313365942064138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5702313365942064138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5702313365942064138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5702313365942064138'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/08/abstraction-trap.html' title='The Abstraction Trap'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6690919907373726684</id><published>2010-08-13T15:34:00.001+01:00</published><updated>2010-08-13T15:34:27.824+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>5 Less Obvious Leadership Qualities</title><content type='html'>&lt;p&gt;There is so much material out there on leadership and management – the basics of the topic are generally well covered and so I’d like to add some of the less obvious ingredients to the mixture:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1 - Do what needs done, not what you’re familiar with&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When under pressure or dealing with unfamiliar situations people will often reach for the tools and techniques that they’re comfortable with – regardless of whether or not those things will have an impact.&amp;#160; We have to avoid falling into this trap and look at what the &lt;em&gt;circumstances&lt;/em&gt; and the &lt;em&gt;data&lt;/em&gt; are telling us needs to be done.&amp;#160; Those are the actions that will turn a situation around – even if they’re a little foreign and uncomfortable to begin with.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2 – Don’t get swept along with the tide&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Change is often hard because most organisations (especially large ones) are great big machines that are good at assimilating new parts and reluctant to part with old habits.&amp;#160; Making a difference can sometimes feel like the only person rowing south on a boat full of people rowing north – it’s hard work and you have to be strong and you have to expect it to take some time.&amp;#160; Organisational culture pop quiz; what’s the street address of Microsoft’s headquarters?&amp;#160; One Microsoft Way.&amp;#160; Is there something there beyond the literal?&amp;#160; Try changing the culture there and then you tell me…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3 - Create the right environment&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Put a piece of paper with some questions on it face down on a table and, with no further rules of instructions, ask a group of people to turn over the pages and answer the questions.&amp;#160; They’ll all do it silently and individually and studiously avoid even the slightest peek at each others papers (the honest ones anyway).&amp;#160; Take that same sheet with the same questions and place it face down on the floor in front of chairs arranged in a circle and, again with no further rules or instructions, you’ll find that people will discuss the questions openly and compare answers and debate choices.&amp;#160; I’ve tried this experiment myself and it goes down &lt;em&gt;exactly&lt;/em&gt; like that; but why?&lt;/p&gt;  &lt;p&gt;It’s because we’re all programmed to behave in certain ways in certain environments and those responses are sometimes so deeply wired in that they’re automatic.&amp;#160; You can fight this all you like but it is just the human condition.&amp;#160; As a leader you are better off acknowledging this universal constant and turning it to your advantage by creating the environment which produces the behaviours you are trying to bring out.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4 – Deal with opportunities first and problems second&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Why are humans so naturally drawn to problems and so blind to opportunity?&amp;#160; Perhaps it’s because problems are right here and now and in our faces demanding our attention and opportunities are off in the distance somewhere, shy and subtle and just waiting to for us to make the first move.&amp;#160; It’s easy to get sucked down into the issues of the present – and in any case there are usually a multitude of people already doing this is most companies - but the most successful organisations I know didn’t get where they are today because their teams of execs sat around dealing with day to day issues.&amp;#160; You can’t ignore problems – they won’t just go away – but you have to accept that your big leaps forward will come from your ability to see opportunity rather than fix something broken.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5 – Do what serves the outcome, not what serves yourself&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Obvious on the surface however I mean it in a more intimate and everyday way.&amp;#160; Do I get disappointed about stuff?&amp;#160; You bet.&amp;#160; Do I feel mad when some things go wrong?&amp;#160; I’m only human.&amp;#160; The difference between good leadership and average leadership isn’t what happens and how you feel about it, its how you respond to those events.&amp;#160; Would I like to go nuts and shout at a few people from time to time?&amp;#160; You bet.&amp;#160; While that might make &lt;em&gt;me&lt;/em&gt; feel better I have to ask myself if it will improve the situation and help the rest of those involved cope – whatever does &lt;em&gt;that&lt;/em&gt; is the response I owe the team.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6 - Use role power sparingly&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Reliance on role power is lazy management and breeds unengaged, dispassionate, dependent teams.&amp;#160; People always perform better – and add more value beyond the basics of their role – when they are bought into what they’re doing, understand the value and the part they play, and believe in the vision and the goals.&amp;#160; That’s harder work than simply telling people what to do (you have to invest in sharing a vision and collaboratively coming up with plans that the whole team can feel that they own and identify with) but then again we’re here to do what’s effective, not what’s easy.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7 - Make decisions not choices&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When faced with options most people can choose between ones they favour more and ones they favour less.&amp;#160; But making a &lt;em&gt;decision&lt;/em&gt; is making a choice and then seeing to it being carried it out.&amp;#160; &lt;a href="http://en.wikipedia.org/wiki/Peter_Drucker"&gt;Drucker’s&lt;/a&gt; definition of a decision is that a choice has been made and then:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;someone has been made accountable for it’s implementation&lt;/li&gt;    &lt;li&gt;a deadline has been established&lt;/li&gt;    &lt;li&gt;people involved or affected have been communicated with&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;When making decisions what really matters is that you recognise that your role as an executive is to create the necessary action rather than just pick from a menu.&lt;/p&gt;  &lt;p&gt;I said I would share 5 of the less obvious leadership lessons I’ve learned over the years and the more astute reader will note that I have given 7.&amp;#160; Overdelivery – that’s the final lesson!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6690919907373726684?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6690919907373726684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6690919907373726684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6690919907373726684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6690919907373726684'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/08/5-less-obvious-leadership-qualities.html' title='5 Less Obvious Leadership Qualities'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4843124308046618929</id><published>2010-07-27T16:31:00.001+01:00</published><updated>2010-08-02T17:42:17.139+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Architecture in Agile</title><content type='html'>&lt;p&gt;When a team first starts practicing agile a question that usually comes up fairly early is where architects fit in.&amp;#160; In a set of processes which usually considers ‘big-up-front requirements’ it’s nemesis, it can be a startling realisation that we (the engineering side) might have our own version of that.&amp;#160; Architecture tends to be associated with big-up-front specs and, if you’re not doing any of that big-up-front stuff, then where does the role of an architect fit in?&lt;/p&gt;  &lt;p&gt;The first step towards finding &lt;em&gt;your&lt;/em&gt; answer to that question is to understand what architecture actually is:&lt;/p&gt;  &lt;p&gt;Architecture isn’t something separate and distinct from your projects that you can either choose to indulge in or choose to abstain from – architecture is simply the shape of what you produce.&amp;#160; Everything piece of software in the world has architecture, the only question is whether it was done by design or by accident.&amp;#160; The question is essentially whether you drive it explicitly and control your technical destiny or whether you leave it to chance and hope for the best.&amp;#160; Driving it would be the job of the architect.&lt;/p&gt;  &lt;p&gt;To make a slightly controversial statement, architecture by itself has no value.&amp;#160; But architecture, as defined as ‘the correct technology platform meeting the current and future functional and non-functional needs of the business’ is worth everything that you can put into it.&amp;#160; I believe in architecture.&lt;/p&gt;  &lt;p&gt;Architecture must be explicitly handled – lest it get away from you and leave you with unsustainable systems – but that’s not the same as saying that you must have an &lt;em&gt;architect&lt;/em&gt;.&amp;#160; You simply need to have the responsibility for the shape of the system (the technical decisions) clearly understood.&amp;#160; Why not devolve the responsibility?&amp;#160; Something common to most agile approaches is the empowerment of the teams to self-organise and take control of the destiny of their own product.&amp;#160; Architecture is no different and, where you can identify neat boundaries between different products owned by different teams, this type of ‘product architecture’ works very well with minimal enterprise oversight.&amp;#160; Less distinct separation between systems generally = more enterprise oversight.&lt;/p&gt;  &lt;p&gt;Somewhat counter to the freshman agilist’s intuition, you &lt;em&gt;do&lt;/em&gt; need to make some up-front decisions in most projects.&amp;#160; Agile is about making sure you know enough about something to be effective by when you need to know it – it’s not about knowing nothing.&amp;#160; The trick to handling technical designs is knowing what those up-front decisions should be and what’s better handled as part of how the project evolves.&amp;#160; Unfortunately this judgement takes some experience to develop, but a good guideline is to stick to things which can’t be easily changed later – such as schemas, APIs, and namespace.&lt;/p&gt;  &lt;p&gt;If you’re a formally nominated architect in an agile environment my advice is stick to &lt;a href="http://en.wikipedia.org/wiki/Software_pattern"&gt;patterns&lt;/a&gt; and delegate implementation decisions.&amp;#160; When you are dealing with a flow of work and you can’t initially nail down the complete set of requirements in buildable detail – the business case for agile – then you have to let your vision for the product, and the size and nature of the commercial opportunity it supports, help you pick out the right patterns.&amp;#160; Patterns are the best currency for an architect to deal in if he has a team of smart developers keen to take some ownership; the ‘here is a design doc, build this’ approach becomes a constraint rather than a support.&lt;/p&gt;  &lt;p&gt;In more larger or more complex agile environments – with multiple development teams and multiple products – an architects role moves into governance; the design of common elements and the way in which products integrate and interact.&amp;#160; What we might call enterprise architecture I guess.&amp;#160; The goal here is to put together a framework which promotes self-contained and distinct products, giving each team their own jurisdiction while still ensuring smooth overall performance of the whole estate.&amp;#160; In my experience this maxes out the total delivery throughput of the whole organisation and gives the satisfaction of ownership to the doers.&lt;/p&gt;  &lt;p&gt;If you’re new to architecture (giving or receiving!) and need to make sense of all this then I’d recommend joining &lt;a href="http://www.iasahome.org/web/home/home"&gt;IASA&lt;/a&gt; because a key part of our mission there is bringing clarity to what an architect &lt;em&gt;really&lt;/em&gt; does for a team, a product, and a business.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4843124308046618929?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4843124308046618929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4843124308046618929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4843124308046618929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4843124308046618929'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/07/architecture-in-agile.html' title='Architecture in Agile'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8949087268081925899</id><published>2010-07-08T16:48:00.002+01:00</published><updated>2010-07-18T14:13:11.269+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Finding Talent Part 2</title><content type='html'>&lt;p&gt;Continuing on from &lt;a href="http://www.eachan.com/2010/07/finding-talent-part-1.html"&gt;my last post&lt;/a&gt; here is the balance of the talk:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Culture is critical to success&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Culture is meaningful in 2 ways; it’s the environment that allows high performance people to contribute all they can, and it’s an essential ingredient in attracting them in the first place.  Like most things I’ve touched on here, culture is a massive topic all by itself – how do you even define it?  The freedom to work to the job and not to the clock, a casual office atmosphere, an appreciation of the value of their innovations, and the ability to try out new tools and processes are just a handful of the things I’d lump into this category, however if you want to distil it right down to it’s elemental for I’ve never heard better than Dan Pink’s:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;AMP – Autonomy, Mastery, Purpose&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Autonomy&lt;/strong&gt; is the freedom to choose what to do, based on an overarching understanding of goals and objectives, rather than having work broken down and fed in as proscribed steps.  It’s a ‘give me a problem and let me get on with it’ attitude.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mastery&lt;/strong&gt; is the desire to get better at something; to develop, improve, and perfect what you do for no other reason than that itself.  It’s a strong motivator for high performance people; they constantly want to track progress and do better next time.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt; is the need to connect with a greater mission that they find inspiring.  Traditionally you could say that companies are formed to extract profits from a market – and that’s always going to be true – but what will inspire high performers is changing the nature of friendship rather than building a social networking site or redefining how education is delivered instead of putting infrastructure in a school; and sure, everyone expects to, and intends to, make some money along the way.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Be available&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Most high performance people I’ve worked with value time with their leadership – whether you’re their boss or their bosses boss etc, they want to tell you what they’re doing and they want to know what your thoughts, priorities, and plans are; the longer term the better.  It’s how they feed their ‘autonomy’ part of AMP and it’s how you make sure it’s going in the right direction.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Proliferate&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In most organizations I’ve worked the &lt;em&gt;truly&lt;/em&gt; high performance teams are small pockets of greatness amongst a wider – shall we say more diverse – population.  Out of all those places I could tell which ones were headed for success and which ones were headed for mediocrity (regardless of the industry or the product) because in the ones headed for success the wider organization picked up behaviours and practices from the higher performing – and more successful – teams and then everyone lifted their game.  In those destined for mediocrity people resisted change regardless of the practical demonstration of it’s benefits being right under their noses.  As managers of high performance people we can help this process in a number of ways; we have to recognize that most people (good or bad) don’t like being told they’re doing it wrong or that your guys know better, but what you can do is encourage external interest in what your guys are doing or how they’re doing it and, if one them is interested in spending time with (or moving into) another team, make sure you do everything you can to make space for that to happen.  Everyone grows that way.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Know your role&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It might seem a little bland or obvious but one thing high performance people will know is what they expect from you, as their manager, and if there is one thing that’s respected it is competence and solid leadership.  These kind of guys don’t like working for weak or indecisive management, they take comfort from knowing that you know what you’re doing and you’re doing it like you mean it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Expectations can be different internationally&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This one is particularly true in the IT industry – given how portable our skills are, the way our technical vocabulary overcomes language barriers, and how much offshoring is being done.  My experience setting up a develop centre in Romania taught me that, while most of this stuff is usually true, it should be used as a theme rather than a fixed set of rules to use in every circumstance.  For example shoulder surfing with one of your developers while they step you through their code could be considered unwelcome micromanagement in one setting but essential interest and support in the other.  There is no substitute for taking the time to appreciate what ever individual’s unique needs are.  As leaders we’re in the business of making our guys as effective as they can be - whatever their interpretation of that is.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HR still wont help you!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I guess it’s starting to sound like I have a real downer on HR, but I really don’t.  I do have a downer on bureaucracy (and even more of a downer on large scale process and paperwork when it doesn’t contribute to the performance of a team or individual) and I have a downer on efficiency at the expense of effectiveness.  My point here is simply that &lt;em&gt;no one else but you&lt;/em&gt; can or will take ultimate responsibility for the performance of your teams.  HR is there to help you, but remember that they’ll never stand there with you and take a beating for things not working out in your team and I don’t know a single executive that would be satisfied with the excuse ‘I applied all the management steps HR specified’…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Set the bar high&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It should be difficult to get a job in a high performance team because the rest of the people in the team will have a high standard and will not thank you for lowering the average.  High performance people like to work with other high performance people – they’ll always be looking at what they can learn from those around them.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mix it up&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As much as high performance people are always looking at how their peers can help them develop they also enjoy helping others – with the potential but without the knowledge – to develop.  For this to work you need to get good at spotting good quality &lt;em&gt;high potential&lt;/em&gt; people rather than just those who have all the skills and knowledge right now today.  These guys are usually good long term investments too because they’ll soak up knowledge like a sponge and there will be plenty of progression for them in your team as what they’re capable of doing for you expands.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Spend time on the best not the worst&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There are a whole lot of nice sound bytes like ‘the squeaky door gets the oil’ etc to justify loading your time towards the people in your team which need the most support, and for some reason human beings are always more drawn towards problems than opportunities, however consider that the opposite bias might be better.  How about spending the biggest share of your time with those in your team who will benefit most from it?  Don’t allow your weakest performers to be a huge sink for your (highly limited) personal bandwidth and, as some pretty smart guys I know always say, ask yourself how much benefit the organization gets out of 10% more performance from your best performer vs. 10% more performance from your worst performer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Don’t hoard&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Weird point to close on given that this was the ‘retention’ section of the talk, but I think that too many managers focus on retention for retentions sake (which can be especially dangerous when it becomes a KPI).  I think the focus has to be on establishing a win-win relationship with smart people which will result in a lot of value for both the organizations mission and the employees personal development and professional growth.  Recognizing right from day 1 that this arrangement has a finite lifetime is simply being realistic.  I always feel proud and happy when people that work with me move on to something else – in the same organisation or elsewhere - and I take some satisfaction in the knowledge that it’s a step forward for them and that I’ve helped them get there.  Besides, I have always found that when people can see how the stuff they’re doing for you links in to the bigger plan they have for their lives they stick around longer because they see how working for you actually &lt;em&gt;contributes&lt;/em&gt; to achieving their long term goals rather than preventing them from moving forward.&lt;/p&gt;  &lt;p&gt;I originally agreed to do this talk because so many organisations have a very traditional approach to recruitment and management and these approaches are just no longer relevant when you’re dealing with complex technology challenges requiring talented engineers.  It’d be a better profession to be in – for both the people on the ground and the companies who benefit from their expertise – if more of us did this stuff differently.  You can find the original slides &lt;a href="http://cid-b8a616986315d842.office.live.com/view.aspx/stuff/high-perf-teams-ef.pptx?sa=192996152"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8949087268081925899?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8949087268081925899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8949087268081925899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8949087268081925899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8949087268081925899'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/07/finding-talent-part-2.html' title='Finding Talent Part 2'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5512552323000734845</id><published>2010-07-08T16:44:00.001+01:00</published><updated>2010-07-08T16:52:12.369+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Finding Talent Part 1</title><content type='html'>&lt;p&gt;Here’s a synopsis of my recent talk on recruiting high performance teams (you can &lt;a href="http://cid-b8a616986315d842.office.live.com/view.aspx/stuff/high-perf-teams-ef.pptx"&gt;find the slides here&lt;/a&gt;) which was made famous at this year’s &lt;a href="http://www.itdf.com/conference.html"&gt;IT Directors Conference&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The talk breaks down to 3 areas; recruiting, retaining, and running. The emphasis was on recruiting – because it was a talk about finding and hiring talent rather than general management instruction – so I’ll go over recruiting in detail in this post and combine retaining and running in the next:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Keep a bench – you are always recruiting&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Any decent manager I know is constantly assessing everyone they meet – socially or professionally – and sorting them into ‘would hire’ and ‘wouldn’t hire’ buckets whether or not they are even currently hiring.&amp;#160; This way they can start to build a relationship and get a real life feel for how the person performs outside of the artificial construct of an interview situation and then they have an extant ‘bench’ of talented people that they know of, and might even have been grooming, when positions come up.&amp;#160; You see roles filled quicker and cheaper with better quality people.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Attracting talent – what YOU say doesn’t matter&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One thing that attracts good people is what other good quality people have to say about working at a certain organization – and anything said by another employee or associate of the company automatically has weight and credibility that the official company line doesn’t carry.&amp;#160; People expect YOU to say that your company is a great place to work, and therefore they take your recruitment sites/company spiel with a pinch of salt, but they’ll pay much more attention to what your guys say on social media platforms.&amp;#160; So encourage your team to blog about work and the team and the projects.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HR is not going to help you&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now, let me just say that up front that I’m sure this isn’t always the case, but the fact is that the role HR departments take in modern organisations is changing.&amp;#160; The focus is now much more frequently on compliance (employment law) and health and safety legislation and in putting in place cost reduction measures around recruitment (enter good old efficiency at the expense of effectiveness).&amp;#160; Seldom is an HR department oriented toward courting talent.&amp;#160; That said – if you do have HR guys that are all about the talent then you should hug them dearly and make them feel appreciated.&amp;#160; They’re getting rarer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Nobody is better than the wrong body&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A common mistake in recruitment – especially under deadline pressure - is compromising on the person your looking for.&amp;#160; This can be a tough one to stick to.&amp;#160; In the worst of circumstances you’ll have no-one in a role, a business demanding quick progress (and maybe even viewing vacancies as one of the reasons things aren’t moving quicker), and you’ll have seen literally hundreds of CVs.&amp;#160; But every single time I have taken on the best person &lt;em&gt;I’ve seen so far&lt;/em&gt; – rather than holding out until I meet someone I considered to be the right person for the role – I have regretted it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Salary is only part of the equation&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There is no correlation between the best people I have ever had working for me and the people who have been on the highest salaries.&amp;#160; Top talent are much more interested in taking a stake in something they believe in (read: equity), performance linked bonuses, the challenges of the projects, and the culture/working environment.&amp;#160; Salary has to be enough to take pay off the table as an issue but the best people I know don’t chase salaries, they chase challenges.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Crazy about technology - not the industry&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It’s easy to fall into the trap of hiring engineers that love the company subject matter over engineers that love engineering.&amp;#160; Mistake.&amp;#160; Your best technologists will understand the commercial forces that drive the business, the market, and the customer in their organisation – and it’s nice to have a passion for the product you’re building – but not at the expense of loving and living the bit you do.&amp;#160; That’s code.&amp;#160; I’m hiring guys who build world class highly scalable data distribution systems, not a football team.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PLU is nice – but I’d rather have talent&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;People Like Us (that syndrome of only ever recruiting a very narrow band of like-minded people) is a good way to make sure you end up with a group of people who seldom disagree, but no variety – no alternative points of view, no challenges to the status quo, no new ideas – doesn’t make a high performance team.&amp;#160; Lumped into here I’d also underline how important it is to hire people &lt;em&gt;smarter&lt;/em&gt; than you are.&amp;#160; Not as clever, or less clever so that you can feel nice and superior, but more clever.&amp;#160; That’s how things get pushed on and it shouldn’t be feared – it should be expected.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Agencies – surrogate networks&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The best way to hire anyone is through your network – that is, people who are known quantities and proven performers who have the right personal qualities (which is why I say keep a bench) but eventually you will have to use agencies anyway because everyone goes to them (which I think is because, historically, everyone goes to them).&amp;#160; The secret to dealing with agencies is to remember what you’re doing – buying the value of their network – so don’t accept ones that just keyword-match CVs or phone around on a per-engagement basis.&amp;#160; You want to look at how long they know a candidate for before they put them forward, whether they’ve met them in person, and whether they’ve placed them anywhere before.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Paperwork is an artefact of good people&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;And finally remember that the goal is to get the right people in place, not to have completed the right forms and followed the right steps.&amp;#160; Don’t establish an overreliance on artefacts - process is important but not at the expense of results; it exists to help you get the right outcomes and is not an outcome in itself.&amp;#160; Not convinced?&amp;#160; Test it yourself this way – imagine you’ve brought on board a series of poor performers who haven’t lived up to expectations.&amp;#160; Your boss is going to be firmly asking you why (if they’re any good that is).&amp;#160; You followed all the right steps and completed all the right forms.&amp;#160; Do you think that absolves you of responsibility for those results?&lt;/p&gt;  &lt;p&gt;Obviously this talk is aimed at the engineering end and, even then, only for those of us lucky enough to have tough technical challenges and interesting business problems to solve.&amp;#160; I appreciate that isn’t everyone but I hope there’s something in there for you anyway.&amp;#160; In a few days I’ll post a summary of the retaining and running sections.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5512552323000734845?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5512552323000734845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5512552323000734845' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5512552323000734845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5512552323000734845'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/07/finding-talent-part-1.html' title='Finding Talent Part 1'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-884313657877116524</id><published>2010-06-28T22:16:00.005+01:00</published><updated>2010-06-28T22:23:58.683+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Software vs. Infrastructure</title><content type='html'>For some reason I’ve been running into a lot of other CIOs and CTOs lately and one topic that keeps coming up was whether we were development or infrastructure focused.  The whole time I kept thinking to myself why is this even a question?  Why do we feel like we should choose?  Or, somewhat more provocatively, why do so many of us only feel like doing half the job?&lt;br /&gt;&lt;br /&gt;I concede that there is a ‘background’ element to this.  No one I know started off as an IT executive; we were all DBAs or developers or sysadmins first, and that gives us a nice comfortable area of personal expertise we can use as shortcuts but it shouldn’t set our agenda in a leadership role which [in most organisations] encompasses the whole shooting match.&lt;br /&gt;&lt;br /&gt;One of the reasons why many organisations suffer the good old fashioned laundry list of regular technical woes (that we could probably all reel off by heart) is because of the interplay between development and infrastructure and a lack of end-to-end oversight over both.&lt;span style=""&gt;  &lt;/span&gt;And, as the technology leaders, if we don’t understand both sides, keep strongly engaged with them, and create teamwork and cooperation where there has typically been borders and a lack of mutual interest, then who will?  There are very few other roles with a remit in both areas and even fewer that should be taking responsibility for them failing to be an end-to-end unit.&lt;br /&gt;&lt;br /&gt;There is &lt;a href="http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/"&gt;a whole ‘devops’ kind of meme&lt;/a&gt; swelling up these days – and more power to it; I think it is dead on the money.&lt;br /&gt;&lt;br /&gt;Devops is, by nature of the organic meme it’s emerging as, poorly defined but to me it is about the recognition that [in most cases] customers care about product – not software or systems – and product is that butter-smooth combination of software and infrastructure finely tuned to work together and operational know-how to keep it running.&lt;br /&gt;&lt;br /&gt;It’s also about having the right feedback loops in place between engineers and the real world, so that as your products get used and abused, they become more fit for that very purpose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-884313657877116524?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/884313657877116524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=884313657877116524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/884313657877116524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/884313657877116524'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/06/software-vs-infrastructure.html' title='Software vs. Infrastructure'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-9183208450757803214</id><published>2010-06-22T21:12:00.002+01:00</published><updated>2010-06-22T21:13:27.054+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>What am I going to do today?</title><content type='html'>Here I go again – with that ‘time’ spiel – anyone who works with me will be switching off about now; but it’s a good spiel and one that I think it isn’t common enough in the corporate consciousness, so now my readers (both of them) get to endure it. It’s really about scarcity, and recognising the resource which we should prize most dearly yet too often let slip through our fingers.&lt;br /&gt;&lt;br /&gt;When asked what their most valuable resources is, most people will say money (the odd few might say people – true in another interpretation of the question). Cash is critical to a small business, as it’s often in sort supply, and critical to a large business, because of increased fiduciary responsibility and reporting requirements. But the thing that you can never replace is time and, no matter how big or cash rich an organisation gets, none of it’s individual members ever have any more of it available to them than anyone else anywhere else. It’s fixed. It’s also a unique type of resource to manage – you can’t save it up for a while so that you can spend more later and if you spend it unwisely, you can’t go back for a refund and try again.&lt;br /&gt;&lt;br /&gt;Just how scarce is this time thing? Let’s do some quick maths and see how much of it we actually have available to us this year:&lt;br /&gt;&lt;br /&gt;1 - Start with 365 days in 2010 (assuming that my time travel project doesn’t get off the ground)&lt;br /&gt;2 - Most of us average out to 5 days per week, so let’s take away 104 leaving us with 261&lt;br /&gt;3 - Most companies give an average of 22 days annual leave every year so now we’re down to 239&lt;br /&gt;4 - On top of this Her Majesty bestows upon us 9 bank holidays in 2010 leaving us with 230&lt;br /&gt;5 - Sick leave isn’t always all used up but let’s assume a worst case of 10 which puts us at 220&lt;br /&gt;&lt;br /&gt;Starting off with 365 days makes a year sound like a long time, but we pretty quickly slashed a staggering 40% off that without really trying. And that’s without any contingency for things like sabbaticals, maternity/paternity leave, jury duty, family emergencies... and we can’t make any more of this ‘time’ stuff. It can’t be bought, borrowed, earned, duplicated, or recycled.&lt;br /&gt;&lt;br /&gt;Most of us waste much more of this than we readily accept. Ever sat in a long meeting on a tangential topic with a large number of attendees – some of whom aren’t even really engaged (on blackberrys etc)? Ever wonder what the world might be like if those 10 people each got that 2 hours back? In the corporate world I think time is undervalued because it is a hidden cost (outside of professions which explicitly price their time such as legal advice and chartered accountants) and there are often few controls on how one spends their [the organisation’s] time compared to the controls and various levels of signoff on how one spends the organisations money.&lt;br /&gt;&lt;br /&gt;Everyone has key projects to do and those projects only get done by people spending time on them. And, as we just worked out, a year sounds like plenty of time to do all this stuff but we usually end up with a fair bit less time on our hands than we started off with.&lt;br /&gt;&lt;br /&gt;Getting what we want done means being aware of the priorities and valuing time enough to spend it deliberately – on the things that are most important to the organisation. I used to be surprised about the sort of things that really successful companies dropped on the floor – genuinely good ideas just not getting attention – and then I realised that they hadn’t been missing opportunities; they were just uncompromising about their priorities, staying focused on their most meaningful things, and fiercely guarding against distractions. That’s how they got really successful in the first place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-9183208450757803214?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/9183208450757803214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=9183208450757803214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/9183208450757803214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/9183208450757803214'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/06/what-am-i-going-to-do-today.html' title='What am I going to do today?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5936057009808808117</id><published>2010-06-14T14:56:00.001+01:00</published><updated>2010-06-14T14:56:08.448+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>A different view on Job Satisfaction</title><content type='html'>&lt;p&gt;If you’ve been here before then you will know that I don’t just regurgitate content here unless I think I can add something significant to it, but I guess every rule has an exception.&amp;#160; One of my guys sent this around a while ago, and again quite recently (OK I get the point), and I think it’s too good not to share:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Jobs are not meant to satisfy us&lt;/b&gt;. Jobs are not animate things that have knowledge of who we are, what we are seeking and what our special needs could be. You may say that I am just making a philosophical statement. To the contrary, I believe that it is the most practical and rewarding way of looking at many things in a professional career. When I see scores of successful people around me, I believe that their achievements are largely because of such a perspective. It also occurs to me that developing this perspective is eventually beneficial in every way possible.&lt;/p&gt;  &lt;p&gt;Let me go back a century and tell you a story. My grandfather was a medical practitioner in the Bihar of 1920s. He had a brood of children who were orphaned due to his untimely death. Two of my uncles had just about finished high school when he moved on. Their older brothers could not afford to send them to college. The two had to be gainfully employed, somehow, as soon as possible. They were taken to Tata Steel, an hour away from where they lived. Tata Steel and the government of Bihar were the only two employers you could think of in a five-hundred mile radius of my uncles’ hometown. The possible work one could get at Tata Steel was that of a technologist- engineer or of a manual worker. So, what could be done with the two boys with their high school qualifications? They were neither fish nor fowl. “Take them to the lab,’’ someone said. A German technician who ran the place was looking for a few hands. The burly German took a hard look at the two. Then he showed them a broom standing at one corner of the lab and asked them to sweep the floor. By the end of day, one of the two just ran away. To him, it was too much to handle. The one who stayed back retired as a chief supervisor of Tata Steel. The difference between the two? The one that stayed on was not trying to seek ‘job satisfaction’. &lt;b&gt;Instead, he focused on satisfying the job&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;The more prosperous the industry, the higher the number of people looking for this elusive thing called ‘job satisfaction’. Similarly, the more qualified some people are, the higher is their need for ‘job satisfaction’. Sometimes, it is as elusive as seeking ‘true love’. There are times when we get lucky deservedly or otherwise. But we also get used to it and conclude that it is the responsibility of the organization to maintain a continuous supply of job satisfaction.    &lt;br /&gt;Whenever I think of job satisfaction, I remember all those who have to work at night—policemen, airline pilots, nurses and doctors, ambulance drivers and hotel staff, and of course the sentinel of the snow and the desert and the mountains. Do their jobs ‘satisfy’ these people or do these people satisfy the jobs with which they have been entrusted? &lt;b&gt;Are jobs living things that can ever ‘satisfy’ us?&lt;/b&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;    &lt;br /&gt;In the corporate world, like any other place, when we open the bonnet and look under it, we find a whole bunch of tough, dirty but strategic tasks that must get done for the bacon to come home. Sometimes, they are so tough and so dirty that they overshadow the strategic nature of the job. So, all such jobs have to be ‘sold’ to prospective incumbents. More they are sold, less buyers they attract. Often, the man who takes up the job is either a loser who has no other choice, or someone who just views it as a transit camp. For many potentially high-performance individuals, a false sense of survival, desire for glamour or just the need for creature comforts make these jobs undesirable. “I would rather be in Kolkata than be posted to Mungher.’’ “I rather have the corporate planning job than be collecting bad debts.’’ Or, consider this one here: “Give me a cerebral job, I do not enjoy handling transactions. ..’’&lt;/p&gt;  &lt;p&gt;Few of us ever ask the boss to be rewarded with a tough and dirty job. We only look for the ‘plum’ ones. Yet, there are people, who given a tough and dirty job, make it strategic: they transform the job in unbelievable ways. &lt;b&gt;In a typical career span, there must be at least four such solid stints in one’s life to make the person a solid professional&lt;/b&gt;. All the great people I know have been in the trenches for much of their lives, and their inventory of bruises outnumber the commendations they have received. The occasional commendations stay on the wall. &lt;b&gt;It is the bruises that these people carry with pride.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.mindtree.com/about-us/management-team/subroto-bagchi"&gt;Subroto Bagchi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That can come across a little old fashioned on a quick read, however I think there is a lot to it when you take the time to internalise it.&amp;#160; When I think about the times that I’ve loved the most in my career, I can see a strong correlation with the times when I’ve been the most focussed on what needs done and making that happen.&amp;#160; Weird how that seems to come back to you in the form of satisfaction…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5936057009808808117?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5936057009808808117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5936057009808808117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5936057009808808117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5936057009808808117'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/06/different-view-on-job-satisfaction.html' title='A different view on Job Satisfaction'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5071597849199838405</id><published>2010-06-09T14:18:00.001+01:00</published><updated>2010-06-09T14:18:43.438+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Entropy</title><content type='html'>&lt;p&gt;A great note just came through on the &lt;a href="http://www.manager-tools.com/"&gt;Manager Tools&lt;/a&gt; mailing list the other day called ‘Everything Decays’ and I liked it because it explains something I’ve recently been wrestling with in my head much more eloquently than I could hope to put it.&lt;/p&gt;  &lt;p&gt;Let me reproduce the first 2 paragraphs here so you can see what I mean (can’t find a link to the original work – will post when I do):&lt;/p&gt;  &lt;p&gt;“&lt;em&gt;One of the things we've noticed is that managers like having a solution which solves their problem forever. We suspect you've felt this way. In the rare instance you've found the solution you thought would solve the problem forever, you've probably also discovered it's not true. The problem has come back because the situation changes. The people change. The knowledge changes. The need changes.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The fact is, everything decays. For our technical readers, it's just entropy. At work, every problem, every meeting and every relationship is decaying, right now. Now matter how good a meeting is now, in six months, left to its own devices, it won't exist (the ultimate decay) or it will be a lot less effective. The process that you've been working so hard on, and finally got just right, in six months will either be OBE (Overcome By Events) or will need significant rework. You may not have understood, up till now, why good processes that worked before begin not to work. The answer is, the situation, systems or people changed and the process didn't. Entropy. Everything decays. It's not just YOUR stuff that decays, because you're not a good manager. EVERYBODY'S stuff decays. Always&lt;/em&gt;.”&lt;/p&gt;  &lt;p&gt;The message goes on to talk about how professionals need to continually assess relevancy; keep looking at what they’re doing and making sure it makes sense as circumstances change and the business and the people in it move on.&amp;#160; This resonates on a number of levels including – probably most acutely – the number of managers I still meet who believe there’s some kind of silver bullet out there for their troubles.&lt;/p&gt;  &lt;p&gt;What isn’t touched on is the natural entropy you always get in any set of processes or practices even when the environment around them is stable – and the less ‘habitual’ the behaviours are (i.e. cemented through solid and continuous application), the quicker the decay kicks in and old habits creep back in.&lt;/p&gt;  &lt;p&gt;tl;dr - there is no substitute for sustained attention and focus, especially during a period of change where some more dedicated coaching can make the difference between lasting change and a blip on the curve.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5071597849199838405?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5071597849199838405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5071597849199838405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5071597849199838405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5071597849199838405'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/06/entropy.html' title='Entropy'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8063141582247907548</id><published>2010-04-29T08:29:00.000+01:00</published><updated>2010-04-29T08:29:01.087+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Technical Debt Credit Rating</title><content type='html'>A while back I wrote about &lt;a href="http://www.eachan.com/2008/04/technical-debt.html"&gt;how closely technical debt paralleled financial debt&lt;/a&gt; and then &lt;a href="http://www.eachan.com/2009/01/you-always-pay-for-quality.html"&gt;a short follow-up post&lt;/a&gt; with the meta-message that, through the right reductionism, certain things will always cost you an inescapable minimum and the decision that you &lt;span style="FONT-STYLE: italic"&gt;really&lt;/span&gt; have is about where you choose to make that payment (I argued that you either pay through the correct design and build initially, or you pay through unnecessarily increased maintenance costs later).&lt;br /&gt;&lt;br /&gt;Outlawing technical debt is as foolhardy as always cutting corners - sometimes the right thing to do is to take a hit to get something out sooner or in a certain shape - the problem is in the repayments; in other words, they often don't exist. And if you don't go back and sort your hacks out early they tend to accumulate in the system and before you know it developing on it is like moving through treacle (and the treacle occasionally catches fire). Everything else you do takes that much longer and is that much more expensive (and those &lt;span style="FONT-STYLE: italic"&gt;are&lt;/span&gt; business metrics) and can have unintended consequences - it's a crippling burden just like its financial counterpart.&lt;br /&gt;&lt;br /&gt;I have a rule - no one is allowed to take technical shortcuts through a project [where that = incur some technical debt] without showing where, in the same plan, they go back to do some refactoring so that our long-term assets remain sustainable. We're pretty lucky at Sporting Index; most of our stakeholders value technology and recognize how critical it is to the business, so it's a conversation I rarely have to have - but I know many other companies are less fortunate.&lt;br /&gt;&lt;br /&gt;So now I think I have a better idea. It came to me while I was thinking about why, if technical debt is so similar to real debt, it doesn't regulate itself in the same way - and I think that's becuase there is no concept of creditworthiness in technical debt, in other words no assessment of a team's ability to 'repay' a quality compromise (read: loan of functionality to the business ahead of when it otherwise would have been ready) alongside all the other outstanding quality compromises that they already have.&lt;br /&gt;&lt;br /&gt;But we &lt;span style="FONT-STYLE: italic"&gt;might&lt;/span&gt; be able to simulate that...&lt;br /&gt;&lt;br /&gt;Imagine giving each product manager a 'credit rating' of, say, 3 - meaning they could call for unsustainable technical shortcuts 3 times as they worked with the delivery team to determine their solutions. Once those 3 debt points were used, that product manager would be unable to encourage the team to make further quality compromises until at least one of those was paid back. If you have product managers with a demonstrated track record of revisiting earlier deliveries to address technical debt then why not give them 5? A higher creditworthiness ought to enable an individual to take on more concurrent debt as we can be more confident that they'll come back to service it.&lt;br /&gt;&lt;br /&gt;I pretty much guranttee that any product manager's cavalier attitude towards shortcuts would change and they'd suddenly treat technical debt as the instrument it really is and use it only where it mattered materially. That, ladies and gentlemen, is a feedback loop.&lt;br /&gt;&lt;br /&gt;The downside is that you'd have to be better at tracking this sort of thing and, like any other method, it'll need some discipline when a product manager with maxed out technical debt points wants &lt;span style="FONT-STYLE: italic"&gt;just one more shortcut&lt;/span&gt;. If you've ever had to maintain a spaghetti codebase (as most of us have at some point) then you'll know that these things need closely policed anyway, so perhaps being forced into formally tracking it isn't so bad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8063141582247907548?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8063141582247907548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8063141582247907548' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8063141582247907548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8063141582247907548'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/technical-debt-credit-rating.html' title='Technical Debt Credit Rating'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8588709462141946555</id><published>2010-04-28T12:28:00.001+01:00</published><updated>2010-04-28T12:28:00.356+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Nobody Wants Computers</title><content type='html'>Well they shouldn't - they should want &lt;span style="font-style: italic;"&gt;what computers will do for them&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Many people turn up to conferences or SIG meetings and ask me how virtualisation or a centralised inventory database or VPNs (or pick something) will help their company.  Misguided.  My response is always the same - what is your business case and what benefits are you expecting?  I do get quite upset when I don't get a good answer to that, because it means someone somewhere is cooking up some technology for technology's sake.&lt;br /&gt;&lt;br /&gt;Sales functions are excellent at creating a need around a product they sell - great if you're in that business and I used to be - but it is the &lt;span style="font-style: italic;"&gt;functionality&lt;/span&gt; your organization &lt;span style="font-style: italic;"&gt;really needs&lt;/span&gt; that should matter.  Talk to me about outcomes, goals, what you want to be able to do from a business capability perspective, and then the right technical solution will fall out of that.&lt;br /&gt;&lt;br /&gt;Contorting business processes to fit a specific technology or vice versa - i.e. doing it backwards - only ever works when combined with a healthy dose of luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8588709462141946555?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8588709462141946555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8588709462141946555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8588709462141946555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8588709462141946555'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/nobody-wants-computers.html' title='Nobody Wants Computers'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8806631276527309696</id><published>2010-04-23T08:57:00.002+01:00</published><updated>2010-04-23T08:57:00.564+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>The ISO standard for business plans</title><content type='html'>If I had a quarter for every time a budding entrepreneur has asked me about what should go into his business plan, then I'd have - let's see - three fifty?  I don't know, but put it this way, it's in my top 10 FAQs.  My two secrets behind this one are; a) there is no such thing as a standard format or expectation and b) it matters a lot less than you probably think.&lt;br /&gt;&lt;br /&gt;Don't agonise over format and presentation - the vital thing is to intimately know your key facts and be able to provide a logical narrative for them.  What are your costs?  Where does the revenue come from?  Who are your customers and how big is the market?  How soon will you start bringing in revenue?  How is your product different from any competitors (current or future)?  What does it cost you to acquire new customers and what is their lifetime value?  Have you done this before and who do you plan to work with?  Even if you just talk through it you're always better off knowing those things inside and out than having a 200-page glossy document.&lt;br /&gt;&lt;br /&gt;And when I say that a business plan matters less than you think it isn't because investors won't want one - they very much will - it's because in the early stages of a new idea what matters most is working product.  The best, most detailed, most polished business plan in the world will always be worth much less to a potential backer than a pretty basic, hacked together but functional, beta product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8806631276527309696?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8806631276527309696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8806631276527309696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8806631276527309696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8806631276527309696'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/iso-standard-for-business-plans.html' title='The ISO standard for business plans'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6166120120620431195</id><published>2010-04-19T11:44:00.000+01:00</published><updated>2010-04-19T11:44:00.953+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>What kind of idiots are in charge here anyway?</title><content type='html'>&lt;div&gt;When I coach people about being effective in organizations something that regularly comes up is their ability to influence decisions made at the senior level.  Because (with very few exceptions) most people in most organizations are rational and competent professionals with the organizations best interests at heart, any time they feel like their proposals or suggestions aren't being adopted, it can be easy for them to lose a little faith in senior ranks.&lt;br /&gt;&lt;br /&gt;I never like hearing that because the truth is (again with very few exceptions) that &lt;span style="font-style: italic;"&gt;most executives in most organizations are  also rational and competent professionals with the organizations best interests at heart&lt;/span&gt;.  So why don't your ideas stack up for them?&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;My advice is usually to look into these two things:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;1 - What don't you know that they do - executives will usually have a much broader view of things and can therefore be privy to other information, plans or constraints elsewhere in the organization, that you may not be.  Taking into account the things that might be invisible to you, &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; adopting your recommendations might well be the most beneficial course of action.  In my experience, most executives are more than happy to share this information with reports who show an interest in the wider business, so just ask.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2 - What data aren't you being effective at conveying - sometimes the message just isn't getting through and therefore your decision makers don't fully understand what you're proposing and why.  It happens to me; I see a lot of proposals for a lot of things (very few ill-conceived) and if the key facts aren't well summarised and the options clear, I am not able to make an effective decision.  Again, the solution starts with communication.  Ask why, use questioning techniques to check for understanding, find out how your audience wants things presented.  I am yet to meet an executive who won't be willing to give that feedback - after all, it helps you both.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Answering these two questions usually gives people the insight they're missing to clear things up and, if it doesn't, then I guess it's always possible that you might be one of those few exceptions...&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6166120120620431195?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6166120120620431195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6166120120620431195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6166120120620431195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6166120120620431195'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/what-kind-of-idiots-are-in-charge-here.html' title='What kind of idiots are in charge here anyway?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5410557627953806676</id><published>2010-04-14T09:27:00.000+01:00</published><updated>2010-04-16T11:12:11.845+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Things change because people change</title><content type='html'>&lt;div&gt;Occasionally I get a hard time for spending such a large part of my time with my teams, with the individuals, out on the floor in their work instead of in my office with 'my' work.  Occasionally that's also fair - I have a different job than the people who report to me, and the the people who report to them, and that comes with different deliverables.&lt;br /&gt;&lt;br /&gt;On the other hand a big part of my job is the performance of my department, the quality of &lt;span style="font-style: italic;"&gt;their&lt;/span&gt; deliverables, and the continuous improvement of both of these.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;New processes, technology changes, new policies, culture and structure are all part of it, but ultimately nothing is ever any different until individuals change their day-to-day actions and behaviours.  You will never create lasting change by making rules and proclamations from behind a desk, or just by telling people to 'do better'.  Lasting change only comes from sustained leadership focus; coaching and repetition and doing things differently together.  When the man on the ground changes then overall results change.&lt;br /&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Oh and don't forget my golden rule no. 22867: paperwork is an artifact of effective work - effective work is not an artifact of paperwork.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5410557627953806676?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5410557627953806676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5410557627953806676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5410557627953806676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5410557627953806676'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/things-change-because-people-change.html' title='Things change because people change'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2486407559551339609</id><published>2010-04-05T15:04:00.001+01:00</published><updated>2010-04-05T15:04:00.832+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Let's Ban Agile</title><content type='html'>&lt;div&gt;Bet that made you look.&lt;/div&gt;&lt;br /&gt;Whenever I'm dealing with the wider business and I come across confusion about (or resistance to) agile practices I typically find that, once the few genuine issues are swept up, much of what's left comes down to semantics.  And fair enough too - the extensive metadata that has built up around engineering processes is intimidating.&lt;br /&gt;&lt;br /&gt;If we put all that aside and just talk about the basic practicalities of doing projects, you are pretty much just looking at an inventory of requirements that must be turned into an inventory of working product.  To do that, distinct individuals need to execute specific tasks within certain time constraints (or, more colloquially, who does what by when).  From there, we build up some rules to make sure everyone can cooperate effectively around those basics, and it is these rules we'd tend to call our development process/project methodology.&lt;br /&gt;&lt;br /&gt;It isn't any harder than that.  But, for some reason, we like to make it sound difficult through a plethora of technical terminology.&lt;br /&gt;&lt;br /&gt;Instead of iterations, why don't we just talk about tackling big projects a bit at a time? [In fact, I'm yet to discover a better way of solving huge problems than breaking them down into a collection of smaller ones]  Instead of backlogs, let's just have a prioritised list of requirements.  Instead of standups, let's just have regular and frequent meetings to keep everyone on the same page.  Instead of sprint planning sessions why don't we all get together to iron out a detailed plan before we commit to our next chunk of work?&lt;br /&gt;&lt;br /&gt;I guess what I really want to ban is unnecessary jargon - at least when dealing with the non-technical contingent of the business. I think we should use common everyday language to describe what are, ultimately, practical and common sense activities.&lt;br /&gt;&lt;br /&gt;Just because we're solving complex and difficult problems doesn't mean we need to use complex and difficult  processes - in fact, one could make a case for quite the opposite.&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2486407559551339609?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2486407559551339609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2486407559551339609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2486407559551339609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2486407559551339609'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/04/lets-ban-agile.html' title='Let&apos;s Ban Agile'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1657302630576896109</id><published>2010-03-31T16:25:00.001+01:00</published><updated>2010-03-31T16:25:00.101+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>The Paradox of Freemium</title><content type='html'>One of the businesses I advise recently flipped over to a freemium model and – as expected – saw a step change in paying subscribers. It does lead to the question; in a world where we typically make money by making things and then selling them to others, how did we decide that giving valuable things away made commercial sense?&lt;br /&gt;&lt;br /&gt;Firstly, for those who may have spent the last few years in a cave, I broadly define freemium as giving away something of substantial value along with an associated upgrade/expansion path which returns benefit to the organisation.&lt;br /&gt;&lt;br /&gt;This is already commonplace. So many of the everyday tools I use have an element of freemium to their business model; google apps, zen agile, bitbucket, linkedin, mockingbird, a number of podcasts (which lead to paid-for books or other products), and of course almost every iPhone app I see these days has a fairly comprehensive ‘lite’ version.&lt;br /&gt;&lt;br /&gt;For a long time we’ve given away tightly limited trial versions, exposing a very small subset of the functionality (or usage time) in order to coax users into a purchase to unlock the rest, and freemium is almost a reversal of this. Give away quite a rich set of functionality with no expectations, and you’ll pick up a group of buyers for that additional stuff on top.&lt;br /&gt;&lt;br /&gt;Making this happen comes down to product design; you have to make sure that you hold back something(s) compelling enough to encourage purchases while making sure that your base product is functional and complete enough to be of significant utility on its own. There are so many ways to slice this, and sometimes the differences don’t even need to be rendered – you might simply impose several distinct licensing terms (free for academic or home use for example).&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://www.ted.com/talks/dan_pink_on_motivation.html"&gt;one of my all-time favourite Ted Talks&lt;/a&gt;, Dan Pink says:&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-size:85%;"&gt;&lt;span style="FONT-STYLE: italic"&gt;The mid 1990s, Microsoft started an encyclopedia called Encarta. They had deployed all the right incentives. All the right incentives. They paid professionals to write and edit thousands of articles. Well compensated managers oversaw the whole thing to make sure it came in on budget and on time. A few years later another encyclopedia got started. Different model, right? Do it for fun. No one gets paid a cent, or a Euro or a Yen. Do it because you like to do it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;Now if you had, just 10 years ago, if you had gone to an economist, anywhere, And said, "Hey, I've got these two different models for creating an encyclopedia. If they went head to head, who would win?" 10 years ago you could not have found a single sober economist anywhere on planet Earth, who would have predicted the Wikipedia model.&lt;/span&gt;&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;I think those same sober economists would probably have said much the same thing about freemium, and probably much more recently. Getting customers to pay for your product by first giving most of it away wasn’t common sense – and maybe it still isn’t – but you certainly can’t ignore the evidence that it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1657302630576896109?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1657302630576896109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1657302630576896109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1657302630576896109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1657302630576896109'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/paradox-of-freemium.html' title='The Paradox of Freemium'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2597683896562761875</id><published>2010-03-26T12:30:00.003Z</published><updated>2010-03-26T12:30:00.119Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><title type='text'>Encouraging Profitable Usage</title><content type='html'>A couple of weeks ago a friend&lt;a href="http://www.mmorpg.com/gamelist.cfm/game/14/feature/4086"&gt; sent me this article&lt;/a&gt; from a mutual acquaintance at CCP. It's all about the continuous struggle that the MMO guys have keeping their in-game economies balanced amongst all the real-world trading of items and game currency.&lt;br /&gt;&lt;br /&gt;I was particularly interested in the stats near the end - in a crackdown on &lt;a href="http://en.wikipedia.org/wiki/Gold_farming"&gt;gold farming&lt;/a&gt; they managed to drop CPU utilisation 30% through a 2% drop in players (banned accounts who were violating these terms). To paraphrase that; 2% of the player base [revenues] were creating 30% of the load [costs] and that my friends, is what I call unprofitable usage of a product.&lt;br /&gt;&lt;br /&gt;When you read that last sentence it makes perfect sense, however so few of us on the web think this way. How often have you looked up your top workload creators (page impressions, transactions) and your top revenue creators (purchasers, subscribers) and compared the two? How sure are you that your costliest customers - that you are probably supporting a collection of CPUs to service - are not marginal or worse in terms of value to your organisation? With sites more data rich than ever (read: more back end work per view) and screen-scraping a more widespread way to acquire content it's worth working to discourage this behaviour or at least make conscious decisions to allow it.&lt;br /&gt;&lt;br /&gt;This thinking should be taken all the way back to product design - on the web we tend to emphasise users/visitor/subscribers without really thinking through what constitutes &lt;em&gt;profitable usage&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;It's not just about nailing people who are out to exploit you either - as a long time data provider my biggest issues have usually been well-meaning customers with lazy integrations. If you're going to build a client on top of a web API it's quick and easy to poll the bejesus out of it round the clock and then react to data in the responses rather than, for example, get a schedule of 'interesting' data and dynamically set up threads pick up smaller changes to discreet items on separate and appropriate timers. Take trades for example; why hammer a Hang Seng Index Options feed after 4:15pm? Or how about &lt;a href="http://www.sportingsolutions.com/"&gt;our feed&lt;/a&gt; - do you need 5 prices a second for this weekend's football fixtures on Tuesday or would hourly pre-match odds and squad changes be more than sufficient that far out?  A slightly trickier initial integration but a better and cheaper product (for both parties) thereafter.&lt;br /&gt;&lt;br /&gt;And finally I've always found it more effective to &lt;em&gt;encourage good behaviour&lt;/em&gt; than&lt;em&gt; discourage bad behaviour&lt;/em&gt;. Sometimes this can be as simple as an SLA which guarantees a superb latency up to a certain number of requests and creeps out in bands beyond that. Other times this can be purely commercial - why not extend better pricing to customers who genuinely cost you less to service or a tiered revenue share to those who contribute more to the partnership?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2597683896562761875?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2597683896562761875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2597683896562761875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2597683896562761875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2597683896562761875'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/encouraging-profitable-usage.html' title='Encouraging Profitable Usage'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-431376691286500464</id><published>2010-03-22T09:39:00.000Z</published><updated>2010-03-22T09:39:00.800Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Reporting &amp; Agile</title><content type='html'>When I talk to people about their experiences with agile development I frequently hear - from the business side - that once all the bureaucracy has disappeared (which no one tends to see as a bad thing), they struggle a bit with the visibility of projects and the reporting of progress.&lt;br /&gt;&lt;br /&gt;This view is usually 100% in contradiction with what I hear from the same organisation's development practice - who will usually tell me that visibility has never been greater and that they have an unprecedented degree of transparency and openness with their business partners.&lt;br /&gt;&lt;br /&gt;Can they both be right?&lt;br /&gt;&lt;br /&gt;When we, as engineers, make statements like the above we're usually referring to the public nature of our SCRUM/XP/etc artifacts - product backlogs and burndown charts are open to anyone in real time, requirements, estimates, and plans tend to be kept in readily accessible web tools, and of course most events in the process (such as daily standups and each iteration's demo) are public forums.  What else do you need to have the most detailed, accurate, up to date view of every piece of work anytime you want it?&lt;br /&gt;&lt;br /&gt;This is all true, but where we tend to go wrong is in underestimating the underlying complexity of something that inherently makes sense to us.  There is actually a significant degree of interpretation - based on technical knowledge built up over years - necessary to answer a simple question such as "how are things going?" through agile artifacts alone; we just tend to be pretty good at doing it in our heads as we go.&lt;br /&gt;&lt;br /&gt;Here's a simple example to underline my point.  O2 has a pretty nifty self-service portal, and I can use it at any time of the day or night to see what my current mobile phone bill is and how far through my monthly quota of data and text messages I am.  It works well for me because they have taken some underlying data about my account, put it through some pre-processing to provide some plain-English conclusions, and presented it on the web conveniently formatted so that I can interpret its meaning.  Instead, imagine if they did transparency and self-service as we sometimes do in software delivery and just told me that all the data is there - the same artifacts that they use internally are open to me - and I must draw my own conclusions from some raw material.  I guess I would install toad, connect up to their DB, select my rows from the billing table, join that with my rows from the metering table, and dump them into a view that showed me a current bill value along with my unused quota of texts etc.  A few of us out there would probably quite like this alternative but, nonetheless, we have to agree that it is unlikely to be a level of service that the majority of O2's customers are going to be happy with let alone know how to use.&lt;br /&gt;&lt;br /&gt;So what can we do differently?&lt;br /&gt;&lt;br /&gt;Try to aggregate and simplify a bit for your stakeholders; provide just a little more interpretation and presentation on top of the solid data you already keep and it will be much easier for non-techies to make sense of.  As long as you are not misrepresenting the underlying facts (easy to do unintentionally whenever summarising data for consumption by others) you'll probably find that your business partners will refer to that as the 'transparency' you've been trying to achieve and they'll thank you dearly for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-431376691286500464?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/431376691286500464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=431376691286500464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/431376691286500464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/431376691286500464'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/reporting-agile.html' title='Reporting &amp; Agile'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8954159238425435057</id><published>2010-03-17T17:59:00.005Z</published><updated>2010-07-01T22:48:27.484+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud Congress Done Quick</title><content type='html'>&lt;p&gt;[well, my bit at least]&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Yesterday I spoke at this year’s &lt;a href="http://www.cloudcomputingcongress.com/"&gt;Cloud Computing Conference&lt;/a&gt;  covering what cloud computing &lt;em&gt;really&lt;/em&gt; is all about (once you  peel away the hype) and how to break the back of the adoption problem –  what do you put out there and how do you get started?  It was the first  time I’d ever done a talk that had absolutely no diagrams or pictures  whatsoever in the presentation and, considering the plainness of  the  slide deck, it didn’t go too badly at all.&lt;/p&gt;  &lt;p&gt;Excluding the mundane introduction, here’s the reader’s  digest version of my key points:&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;What's in a cloud?&lt;/p&gt;&lt;p&gt;As a relativity new and trendy technology cloud computing is open to a lot of debate and even the 'correct' interpretation changes as the technology matures.  We've had web applications for a long time now, so I'm not comfortable with SaaS being thrown into the cloud bucket.  I like to define it in the context of how it changes how you deliver software (by abstracting away the complexities, layout, and connectivity of infrastructure from you developers) and how it impacts the way delivery costs are calculated (by exchanging metered billing on a usage basis for CAPEX-heavy up front acquisition).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;My test (does your definition of cloud computing rely on the observations of your end users?) is simply to ask yourself "am I saying I am a cloud company just because my users access my product over the web?"  If so, then perhaps you need to consider that maybe you might not be.  Nothing wrong with that, but nothing new either.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;What your FD sees&lt;/p&gt;&lt;p&gt;My next section expanded on the CAPEX vs OPEX shift that cloud platforms enable.  If you have got your product design right then - on the web anyway - more usage should equate to more revenue and, with a cloud platform, more usage equates to more cost.  See how that works?  The cost base grows in line with revenues, therefore smoothing out that lumpy accounting and tricky budgeting activity that is characteristic of large hardware drops throughout a site's lifetime.  You've also able to bring new things online relatively quickly (eliminating the ordering/delivery lead time/racking and stacking stages) and you can afford to try out slightly more speculative business cases - if I'm on the fence about a particular feature then I'm much more likely to give it a try if I know I can pack it up quickly and cheaply later if it's turns out for the worst.&lt;/p&gt;&lt;p&gt;Most cloud platforms have pretty good metering systems in place and that allows you a much more granular view of what part of your system is directly responsible for what parts of your cost base.  From a business case perspective my advice here is to include all costs and not forget about time as a factor.  Sounds a little obvious but when, for example, looking at Amazon's S3 as a storage platform for an analytical data set your total cost is going to include the transferring in and out of data as well as the cost per GB of storing it.  Time matters too - I've seen the odd business case for a cloud platform fail to stack up because over a 3 year period more total cash is paid out than total cash spend once the large CAPEX bill is amortized over the same period.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;Cloud capabilities&lt;/p&gt;&lt;p&gt;I also touched on some of the less obvious uses for cloud computing because so much emphasis is given to migrating existing systems into the cloud and I don't think enough time is given to considering what additional things that &lt;span style="font-style: italic;"&gt;aren't&lt;/span&gt; being done now &lt;span style="font-style: italic;"&gt;could be&lt;/span&gt; brought on because of the inherent properties of cloud platforms.  These include &lt;a href="http://www.slideshare.net/SergeyChernyshev/building-your-own-cdn-using-amazon-ec2"&gt;private content delivery networks&lt;/a&gt; (because the larger cloud players tend to have a good reach), enabling offshore or outsourced development without opening your perimeters to external organizations who may have weaker security policies, neutral territory for integrations or joint ventures, and &lt;a href="http://highscalability.com/blog/2010/3/4/how-myspace-tested-their-live-site-with-1-million-concurrent.html"&gt;large scale load testing&lt;/a&gt; (because where else will you get hundreds of high spec load generators external to your network and connected over realistically-latent lines).&lt;/p&gt;&lt;p&gt;Development and testing environments are a good way to dip a toe in because, if you're doing it right, you will already have nicely sanitized data (which gets you clear of most of the oft-cited security concerns) and you won't be expecting production-sized load.  It's also the best way to get a good feel for the cloud suitability of your production system without making any user impacting changes.&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;Architecting for the cloud&lt;/p&gt;&lt;p&gt;Many people - mostly those selling cloud integration tools or who charge by the hour - will tell you about how they can help you move your systems into the cloud.  Don't kid yourself on.  If you're using a half-way decent definition of a cloud platform then there is a lot more to it than is commonly appreciated.  There are a number of good design patterns that I believe organizations should start adopting &lt;span style="font-style: italic;"&gt;today&lt;/span&gt; and not just because they prepare systems for cloud runtime in the future, but also because they're pretty good ideas on their own merits.&lt;/p&gt;&lt;p&gt;It all starts with my favorite - decoupling and creating clear, distinct boundaries between functionality in a system and abstracting the specifics of the implementation which delivers said functionality behind a well defined interface.  When you present specific uses of data to a network in this way then, subject to a bunch of common sense rules, you are able to host that individual part of your overall system another way - on different servers, in another data center, or hey, in the cloud!  As long as it's reachable by it's consumers - which brings us nicely onto messaging and using state sparingly - you buy yourself the flexibility to move things quite dynamically.  A service registry is also highly desirable if you a) have composites made up of many services and b) want to be able to move them and scale up/down dynamically.&lt;/p&gt;&lt;p&gt;All good practices for scalability and availability regardless of your stance on the cloud.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;The crystal ball&lt;/p&gt;&lt;p&gt;You're not allowed to speak at an event and not give some predictions.  I think there is an old charter or something somewhere.  So mine were; barriers are coming down and this will continue with technologies such as private link and private clouds, as with all trendy concepts the waters will be muddy for a while as the word 'cloud' is appended to everything we've already got in order to sell it to us again, and within 5 years I expect to see hybrids (cloud-type platforms in use to some degree) in almost every organization.&lt;/p&gt;&lt;p&gt;Overall a good conference - some top panelists and speakers, and I met some great folks there.  Thanks to all the guys and gals at SixDegrees for putting together a worthwhile and fun event.&lt;/p&gt;&lt;p&gt;You can find the  slides &lt;a href="http://cid-b8a616986315d842.office.live.com/view.aspx/stuff/cloud.pptx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8954159238425435057?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8954159238425435057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8954159238425435057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8954159238425435057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8954159238425435057'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/cloud-congress-done-quick.html' title='Cloud Congress Done Quick'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5789899672769809541</id><published>2010-03-08T23:03:00.001Z</published><updated>2010-03-08T23:03:44.219Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Just a little more on SLAs…</title><content type='html'>&lt;p&gt;Yesterday I posted &lt;a href="http://www.eachan.com/2010/03/more-meaningful-slas.html"&gt;a little something about SLAs&lt;/a&gt; and I’m always happier with things when I can wrap them up with a handful of guidelines.&amp;#160; Not always possible in the complicated world we live in, but here goes anyway:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align="left"&gt;Discover the things that are meaningful for the business.&amp;#160; I risk stating the obvious but there is always a temptation to approach this ‘backwards’ by starting off with what can be measured rather than what is significant (and then working out how to measure it).&amp;#160; You don’t want to end up with a bunch of metrics that are easy to count but don’t describe desired system performance.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Strike a balance between persistence and change.&amp;#160; Unless doing lots of projects isn’t important to you, be careful not to base all your KPIs on availability/stability metrics – or if you do, at least be aware of how that can drive reluctance to push changes through the system.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Make appropriate interpretations for each product or system.&amp;#160; In most organisations different systems, or parts of each system, are subject to different uptime, capacity, latency etc demands.&amp;#160; And assuming you pick some basics like performance they should be specific to each product; for a website that might be a number of page impressions, and for an analytic system that might be a time to render when a data set is updated.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Include time as a dimension.&amp;#160; Most businesses – particularly on the web – have a number of 24x7 products, but there are also a lot of systems that only get used during business hours or at certain intervals (e.g. payroll is usually a monthly thing).&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;Disregard #1.&amp;#160; Kind of.&amp;#160; Now that you’ve gotten this far, you will need to consider some feasibility, because signing up to unachievable SLAs doesn’t help anyone.&amp;#160; Have a look at what devices and services underpin the business functionality you are measuring.&amp;#160; Trees of dependencies, composites in SOA for example, tend to live up to the least strict SLA rather than the aggregate of the set.&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Rules of thumb – apply in conjunction with local knowledge!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5789899672769809541?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5789899672769809541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5789899672769809541' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5789899672769809541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5789899672769809541'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/just-little-more-on-slas.html' title='Just a little more on SLAs…'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-822010148049644825</id><published>2010-03-07T09:09:00.000Z</published><updated>2010-03-07T09:09:00.161Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>More Meaningful SLAs</title><content type='html'>Establishing internal service levels with the rest of the business is a difficult process - there are so many variables that can be measured and, as we all know, you change what you measure by measuring it.  For example, if you express your SLA exclusively in terms of system uptime, then you improve all the activities around keeping your system available.  The flipside of this is that you often &lt;span style="font-style: italic;"&gt;discourage&lt;/span&gt; the activities around effecting change in the system - after all, any releases or upgrades or new features always carry some risk to availability &lt;span style="font-style: italic;"&gt;and that's what they're measured on&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;The place to start is to work out what's important to the organisation.  Performance and availability are critical to us (a latency sensitive transactional platform with variable usage patterns) but so is change (a content driven web application correlated with events in the real world).  We decided that performance, availability, change, and support response were the key metrics for us - nothing unique so far, and next we had to make an interpretation of each of these that was relevant to our various systems.&lt;br /&gt;&lt;br /&gt;A basic principle here is recognising that it isn't just the raw numbers that should be appropriate to each individual product, but what is being measured too.  Throwing an overall value at the problem (for example 99% availability across the board) makes the job of putting together your SLA easier, but is it a true reflection of your infrastructure?  Whenever I've seen this coarse-grained approach used it has always led to less than acceptable uptime for the most critical applications and wasted investment propping up others that are realistically less important.&lt;br /&gt;&lt;br /&gt;Another way to make sure your SLAs really closely matches business need is to introduce the dimension of time.  In many systems and many organisations demand - and the cost of downtime - varies over time.  For example, how many accounts and payroll systems are used around the clock?  If you can trade off to 'best endeavors' over weekends and evenings then you shouldn't have too much trouble meeting a five nines commitment during business hours between Monday and Friday.&lt;br /&gt;&lt;br /&gt;For our website we have a flat availability target (such is the nature of a 24x7 site) and performance we interpreted in a latency metric for price publishing and order placement.  For reporting systems - which do not experience the same round-the-clock demands - we have different availability targets during business and after hours.  Performance in the context of those systems is interpreted as a certain set of daily reports delivered by a fixed time each morning and a message delivery SLA on alerts on certain events.  SLA's around change and product delivery are much more complicated and fraught with subjective measures.  We've gone with measuring development projects iteration-by-iteration; what got delivered vs. what was committed during that sprint's planning.  It's objective and encourages good estimation and strict control of scope creep during a sprint.&lt;br /&gt;&lt;br /&gt;Making SLAs commensurate with what the business genuinely demands from a given piece of technology is important.  Setting your sights high can seem like a good idea on the surface but, when you consider the frightening magnitude of difference in cost between 99.5% and 99.9% uptime, that couple of points can only ever be described as waste if they are not intimately linked to the organisations success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-822010148049644825?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/822010148049644825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=822010148049644825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/822010148049644825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/822010148049644825'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/03/more-meaningful-slas.html' title='More Meaningful SLAs'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4224024962534961698</id><published>2010-02-28T14:23:00.005Z</published><updated>2010-02-28T15:32:55.816Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><title type='text'>Gates and Nonblocking Delivery Practices</title><content type='html'>A few weeks ago one of my guys sent me &lt;a href="http://theagileexecutive.com/2010/02/19/the-agile-flywheel/"&gt;this article from The Agile Executive&lt;/a&gt; which is - although not explicitly said - about the collision between ITIL infrastructure governance and agile development methodologies. I use the word 'collision' very deliberately because those guys deserve credit for how well they've managed to knit those (often opposing) worlds together. Which brings me nicely onto gates.&lt;br /&gt;&lt;br /&gt;Gates, defined as the "You Shall Not Pass" checkpoints which must be navigated throughout a project, are not inherently bad. They just get misused in the same way that anything we do has the potential to be applied over zealously.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fhZACHRBLcQ/S4qMQHd5N4I/AAAAAAAAAW0/AZqxDfnJk8w/s1600-h/notpass"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 170px;" src="http://2.bp.blogspot.com/_fhZACHRBLcQ/S4qMQHd5N4I/AAAAAAAAAW0/AZqxDfnJk8w/s400/notpass" alt="" id="BLOGGER_PHOTO_ID_5443317308140894082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Gates have a place in delivery and fulfill an important function. They serve as a kind of final quality checklist to make sure that all those things you said mattered and had to be done actually have been done. As long as they are few, important, and near the end of the development cycle, you can make this work.&lt;br /&gt;&lt;br /&gt;Where this tends to go wrong is when gates are established without clear and measurable clearance criteria defined up front. What you have then is an obstacle with a variable and subjective success criteria - and then everyone wonders why a project arrives at the gate and struggles to meet the requirements to move on. An understanding of exactly what's on the checklists a project will face as it goes live and exactly how that will be measured has to be front loaded, so that development teams know exactly how to make a piece of work transition through the lifecycle smoothly and organize resources in advance.&lt;br /&gt;&lt;br /&gt;If this isn't established early and you get a project logjam downstream then you often end up having to compromise - and that means compromising on key quality or operational requirements that you believed are important enough to gate - in order to restart the flow. The good old fashioned 'defects fixed later cost more' curve still applies here.&lt;br /&gt;&lt;br /&gt;Another common misuse of gates is introducing them into a process primarily for reporting purposes. It is true that a regular set of gates established throughout the end-to-end project process provides a set of convenient handholds against which to benchmark progress (we are at 'customer feedback on specification' or entering 'test run 3' etc) but there are a couple of downsides that go along with that.&lt;br /&gt;&lt;br /&gt;Firstly, it tends to encourage over-reliance on artifacts such as documentation and reports rather than working software as a primary work output. Secondly, progress becomes measured by the clearance of gate after gate, step after step, and revisiting a previous step is seen as a step backwards. That lines up with an easy to describe liner view of the world, however with most complex projects in most organizations things are not that simple and progress often involves degrees of overlap and leapfrogging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4224024962534961698?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4224024962534961698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4224024962534961698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4224024962534961698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4224024962534961698'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/02/gates-and-nonblocking-delivery.html' title='Gates and Nonblocking Delivery Practices'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fhZACHRBLcQ/S4qMQHd5N4I/AAAAAAAAAW0/AZqxDfnJk8w/s72-c/notpass' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3625458199389617386</id><published>2010-01-27T22:18:00.008Z</published><updated>2010-01-28T11:00:51.940Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>5 tips for more strategic budgeting</title><content type='html'>With the end of the financial year looming as the next major fiscal date in many UK company's diaries, IT people everywhere will soon be embarking on the wishlist-to-business plan journey that is the budgeting process.&lt;br /&gt;&lt;br /&gt;There is already a lot of good advice out there on how to estimate numbers and prioritise what makes the cut, and that can be a brutal process, so here's a few things I keep in mind to make sure I'm not being too short sighted:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Know the cost of a customer.&lt;/span&gt;  The rest of this list isn't in any particular order, but this is definitely number 1.  Most good CIOs and CTOs I meet know what &lt;span style="font-style: italic;"&gt;this&lt;/span&gt; disk array costs vs. &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; disk array and what &lt;span style="font-style: italic;"&gt;these&lt;/span&gt; licenses cost vs. &lt;span style="font-style: italic;"&gt;those&lt;/span&gt; licenses, but not that many know what a customer costs to acquire and convert or to reactivate if they drift away.  The relevance?  Knowing that means you can work out exactly how many frustrated customers you can lose because of that bug before its worth fixing, or that slow server before its worth upgrading.  In this light, things that might otherwise not have made the cut become the no-brainers that they should be.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Don't be influenced by trendy buzzwords.&lt;/span&gt;  There is always a meme that vendors will be able to exploit because of our inability to apply common sense and logic to a pitch on whatever the currently fashionable thing is.  SOA, virtualisation, and cloud computing come to mind whenever I recall ill thought through spending sprees.  That's not the same as saying that these - or any of the other candidates in the same category - aren't good technologies with valid applications, just that any investment in them should be handled with the same pessimism and judgement of real business value as money spent anywhere else.  Just adding 'cloud' onto the name of a product doesn't change it's fundamental ROI, so don't let these slip by you unchecked.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Know the cost of scale.&lt;/span&gt;  When sizing up a new project, give growth plans some weighting rather than just initial costs.  Depending on the degree of speculation involved in your plan, taking cheaper entry options can sometimes bite you when you reach scalability limits.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4 - Wider consultation.&lt;/span&gt;  A year is a long time and a budgeting exercise inevitably involves dusting off your crystal ball and trying to foresee everything that everyone is going to want in the coming 12 months.  Good luck with that and, although it seems a little obvious, spending a bit more time with each area of the business trying to coax their plans and ideas out of them will at least expose the bigger ones up front.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 - Increase priority on core things.&lt;/span&gt;  Another one that sounds obvious but - through its limited practice - clearly isn't.  In tougher economic times it is particularly important to give the most crucial things the most attention, and it can be mistake to favor too many might-lead-somewhere-might-not initiatives over those core basics upon which the business depends today.  I think it is critical to set aside time and money for innovation and to take a punt on those less-certain ventures that our instincts tell us have that commercial &lt;span style="font-style: italic;"&gt;je ne sais quoi&lt;/span&gt; but it needs to be proportionate to the main line.  This is important when deciding what to drop in order to bring your wishlist and the available cash resources closer together - big but critical projects can be easy targets because they pull back more cost in a single swipe than a number of smaller but less meaningful items will.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3625458199389617386?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3625458199389617386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3625458199389617386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3625458199389617386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3625458199389617386'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/01/5-tips-for-more-strategic-budgeting.html' title='5 tips for more strategic budgeting'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2845386171954610322</id><published>2010-01-06T17:26:00.008Z</published><updated>2010-01-06T21:11:25.215Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>The hidden wisdom of Kevin McCloud</title><content type='html'>I was lucky enough to get a copy of the &lt;a href="http://www.amazon.co.uk/Grand-Designs-Handbook-Blueprint-Building/dp/000730742X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1262799320&amp;amp;sr=1-1"&gt;Grand Designs Handbook&lt;/a&gt; for Christmas - it's a compendium of building projects from &lt;a href="http://www.channel4.com/4homes/on-tv/grand-designs/"&gt;the channel 4 show&lt;/a&gt; (the book, not Christmas).  The first few chapters have a lot of lessons learned and good practices picked up from 9 seasons worth of experience with, well, variously successful building projects.&lt;br /&gt;&lt;br /&gt;Reading some of the advice, there is a lot that can be applied directly to software projects.  There is a section on 'how to behave with your team' which is aimed at helping people keep their building sites productive - but the advice translates well to technical projects.  Here's a couple of my favorites along with my join-the-dots:&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Don't give verbal instructions on site unless they've been agreed with your consultants and they're backed up in writing.  If you just issue verbal instructions, you risk confusion and possible extra costs.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;This is a top one for me - especially in the agile world where many interpret 'agile' as 'make it up as you go along' and then end up disappointed.  I think maximizing interaction between delivery team and customer team is a good thing especially when both sides recognise the boundary between clarification and change in in-flight work.&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Do take time to prepare detailed written briefs setting out all your requirements for all your consultants.  A good brief is an essential part of the design process.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;One of the simplest formulas the govern all project delivery (hardhat or mousepad) is that the quality of what you get out with never exceed the quality of what you put in - yet this seems to escape so many of us so often.  What you invest in clear instruction and regular contact with developers is a key variable in how happy you'll be with the results.&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Do allow your experts the freedom to do their jobs.  Stand back from the project and enjoy your role as client; making decisions and hanging around, generally being a good egg and imbuing the world with optimism and excitement.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;I don't exactly advocate stakeholders 'standing back'  from a project, and I don't think that's what Kevin means either.  Don't micromanage your delivery team and, as a customer, be sure to perceive the difference between decisions you should make (and don't let the team wait for those) and decisions the team should make (and let them use their skills and experience to make them).&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Don't listen to other people outside the professional team.  You'll only end up getting very confused.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;External feedback and extra ideas are good, but remember that an engineer knows his business best and don't fall into the trap of listening to someone else simply because you like their answers better.  I consider myself relatively smart but even I'll say all sorts of wacky things when I don't have any skin in the game...&lt;br /&gt;&lt;br /&gt;There are a couple of other sections with close analogies to technical projects - how to be a perfect customer and how to put a good brief together - which I think are 2 other critical ingredients to any successful engineering project (construction or software) but they'll keep for another post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2845386171954610322?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2845386171954610322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2845386171954610322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2845386171954610322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2845386171954610322'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2010/01/hidden-wisdom-of-kevin-mccloud.html' title='The hidden wisdom of Kevin McCloud'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6472717818026117358</id><published>2009-12-22T18:40:00.000Z</published><updated>2009-12-22T18:38:52.522Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Standups vs Team Meetings</title><content type='html'>When teams first start to pick up SCRUM, there is a tendency to let stand ups replace regular team meetings.  The risks here are that your stand up will elongate and get off topic because it is the only chance you get to talk about issues as a group, yet your team cohesion will still suffer because no matter how long you can string out a stand up in the morning it won't be long enough to table all the things you need to get through as a team.&lt;br /&gt;&lt;br /&gt;A stand up is a project-oriented meeting, all about running the day to day work of the team, has a tightly fixed agenda, is time bound, and specifically focused on what's required for today.&lt;br /&gt;&lt;br /&gt;A team meeting is a team-oriented meeting, all about maintaining the team, continuous improvement, future requirements, and focussed on bigger picture topics.&lt;br /&gt;&lt;br /&gt;They are definitely two very different meetings with two very different purposes, and both of them are necessary for a team to run smooth projects and keep productivity and job satisfaction high.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6472717818026117358?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6472717818026117358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6472717818026117358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6472717818026117358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6472717818026117358'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/12/standups-vs-team-meetings.html' title='Standups vs Team Meetings'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8579411603522219789</id><published>2009-12-16T11:06:00.001Z</published><updated>2009-12-16T22:00:44.673Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='sporting index'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Introducing Sporting Index Super Simple Integration</title><content type='html'>&lt;p&gt;This year we decided to give our B2B customers an early Christmas present - SSI.&lt;/p&gt;&lt;p&gt;Sporting Index (well, really Sporting Solutions, our B2B brand) provides pre-match and in-play pricing and content to fixed odds bookmakers for hundreds of markets across 16 sports with more events from more jurisdictions being added almost every month.&lt;/p&gt;&lt;p&gt;Traditionally we’ve done this by pushing XML documents around over reliable transports and leased lines. This works very well and there is nothing inherently wrong with this solution, but we weren’t happy that customers had to install expensive fixed lines and associated hardware, and our back end is capable of producing multiple-thousands of price changes a minute – well beyond the rate at which some of our customers can consume them.&lt;/p&gt;&lt;p&gt;On top of this, our customers wanted the low latency and reliable updates that come with a push solutions, but also the easy integration and flexible client-side controls that comes with a pull solution.&lt;/p&gt;&lt;p&gt;Well, you asked for it and you’re the customers, so let’s unwrap this bad boy.&lt;/p&gt;&lt;p&gt;Super Simple Integration is essentially a RESTful web services API available over the good-old-fashioned Internet. The feed is as easy to consume as you’d expect from any web API, and we’ve spent a lot of time on the data formats and doing some clever pub-sub tricks in the background – thus all the benefits of the heavyweight XML services but through an integration which is quick and easy to get to grips with.&lt;/p&gt;&lt;p&gt;There’s a lot to this, so let’s just cover two of the most common use cases:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Get Content&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Our content products can be used to populate websites with upcoming fixtures and players, and to power pages or widgets showing points, corners, goals etc as they happen in running matches.&lt;/p&gt;&lt;p&gt;Content products are mostly stateless and work on a fairly simple request-response model, which can mean no integration work at all. Well that’s half true – you still need to consume the data from the API – but you don’t necessarily need to build a repository on the customer side or have to match up schemas.&lt;/p&gt;&lt;p&gt;Let’s say that wanted to build a little scoreboard for my site to show my visitors the progress of a live England v New Zealand rugby game;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_fhZACHRBLcQ/SydtwFOCkZI/AAAAAAAAAWM/ADVyT_QtRbA/s1600-h/API%20content%20integration%5B20%5D.jpg"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="API content integration" border="0" alt="API content integration" src="http://lh4.ggpht.com/_fhZACHRBLcQ/SydtwX1TsuI/AAAAAAAAAWQ/iGIl0z7lv0I/API%20content%20integration_thumb%5B18%5D.jpg?imgmax=800" width="341" height="1035" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;You get the content you want, as often as you want, delivered back in name-value pairs. There are also a couple of methods to call to list out what sports and events are available, so you can pick out what to pull into your scoreboard app.&lt;/p&gt;&lt;p&gt;Pretty basic stuff so far, where it really gets sweet is how we implement real time price streaming.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Get Prices&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Our price products can be used to price up sports betting markets, either as a risk advisory tool for human operators or a totally automated pricing service, and cover a wide range of sports in-play with high fidelity price output.&lt;/p&gt;&lt;p&gt;In price products - particularly once fast paced events turn in-play - state and reliable delivery become important, but we’ve enabled our customers to nicely sidestep the costs and technical complexity this usually involves. When your API client registers interest in pricing up an event we build you your very own data object, which we call a channel, and then it works like pub-sub system. Our back end pricing engine is event driven, and as events occur which trigger price changes, those changes are accumulated in the channel you’ve subscribed to and delivered out to your system in real time over secure HTTP;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_fhZACHRBLcQ/Sydtwtvh_uI/AAAAAAAAAWU/C6cFTaxHS90/s1600-h/API%20price%20integration%5B5%5D.jpg"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="API price integration" border="0" alt="API price integration" src="http://lh3.ggpht.com/_fhZACHRBLcQ/SydtxGKP0zI/AAAAAAAAAWY/ewSvz7WhhzA/API%20price%20integration_thumb%5B3%5D.jpg?imgmax=800" width="341" height="908" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;This puts quite granular control of the product into the client-side’s hands, allowing you to programmatically build object(s) with any combination of markets and data that you’re interested in and then subscribe to your very own private feed over familiar transport.&lt;/p&gt;&lt;p&gt;By accumulating interesting data into user-defined objects this way we also buy back the robustness that dedicated WAN links gave us – if there is a network disconnection the client simply re-establishes an HTTP connection to the API and picks up where it left off – no lost updates or re-synching required.&lt;/p&gt;&lt;p&gt;That’s SSI in a nutshell. It’s the easiest integration in the industry, and from our perspective it scales out nicely - being just a collection of smart web services - and also enables us to accelerate the building of data-driven products for our own business too.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8579411603522219789?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8579411603522219789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8579411603522219789' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8579411603522219789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8579411603522219789'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/12/introducing-sporting-index-super-simple.html' title='Introducing Sporting Index Super Simple Integration'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fhZACHRBLcQ/SydtwX1TsuI/AAAAAAAAAWQ/iGIl0z7lv0I/s72-c/API%20content%20integration_thumb%5B18%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6681173270110120009</id><published>2009-12-14T08:53:00.001Z</published><updated>2009-12-14T08:53:00.172Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Development Environment SLAs</title><content type='html'>When we use the word 'production' to label our customer-facing systems we create certain expectations around how we support and manage them - careful change control, detailed monitoring, rapid response to incidents, and administration that works around user requirements.&lt;br /&gt;&lt;br /&gt;But when we label our software delivery lifecycle environments 'development' and 'test' systems, we likewise heap upon them certain expectations.  Unfortunately for the development process, those expectations are usually secondary priorities and open season for any sort of experimentation or ad-hoc change.&lt;br /&gt;&lt;br /&gt;Perhaps this is why so many projects come across environmental issues from time to time?  Development environments are in production too, they just produce something a little different to what your customer facing systems produce - more customer facing systems.&lt;br /&gt;&lt;br /&gt;Sure, when faced with a direct choice between doing something for a lifecycle environment and something for live products the decision is easy, however handling development and test systems with a little more production-like behaviors doesn't need to impact your live system activities and will make all your projects a whole lot smoother.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6681173270110120009?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6681173270110120009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6681173270110120009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6681173270110120009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6681173270110120009'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/12/development-environment-slas.html' title='Development Environment SLAs'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6223843335571903739</id><published>2009-11-01T10:43:00.004Z</published><updated>2009-12-10T18:23:08.594Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Welcome to Movember</title><content type='html'>&lt;a href="http://uk.movember.com/about/"&gt;Movember&lt;/a&gt; is an annual event to raise awareness (and money) for men's health issues, and this year I'm joining in with a pretty sweet handlebar. Keep an eye on my &lt;a href="http://uk.movember.com/mospace/233157"&gt;Mo Space&lt;/a&gt; to check out the mo and back a good cause.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 258px; display: block; height: 320px;" id="BLOGGER_PHOTO_ID_5398893287971683298" alt="" src="http://4.bp.blogspot.com/_fhZACHRBLcQ/Suy410HK--I/AAAAAAAAATg/dGQEFU4hN7Q/s320/magnum.jpg" border="0" /&gt;&lt;/p&gt;While we're talking about charity, remember &lt;a href="http://www.eachan.com/2008/12/christmas-ad-rev-and-charity.html"&gt;this post&lt;/a&gt; from Christmas last year? We're now at £222.14 - and I guess we've found our good cause now, so this'll be our first donation.&lt;br /&gt;&lt;br /&gt;* updated * money from the google-ads-for-charity stuff above has now been donated - check my &lt;a href="http://uk.movember.com/mospace/233157"&gt;Mo Space&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;* updated again * grand total is in - we raised £1098.14 from family, colleagues, and friends.  A massive thank you to all who supported men's health by donating or participating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6223843335571903739?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6223843335571903739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6223843335571903739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6223843335571903739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6223843335571903739'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/11/welcome-to-movember.html' title='Welcome to Movember'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fhZACHRBLcQ/Suy410HK--I/AAAAAAAAATg/dGQEFU4hN7Q/s72-c/magnum.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6169302058548851420</id><published>2009-10-03T10:46:00.000+01:00</published><updated>2009-10-03T10:46:00.573+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>I think you might have it backwards</title><content type='html'>&lt;span style="font-size:100%;"&gt;The most common criticism I hear about agile is also the most common mistake teams make in their early adoption of iterative practices - not fixing any certainty.&lt;br /&gt;&lt;br /&gt;One of the benefits of managing projects using, for example, SCRUM is that you're not burdened with having to define all the requirements up front and plan out all the tasks and times for all the resources for 6, 12, 18 months.  Trying to precisely define everything a project needs up front and trying to plan for every dependency, holiday, resource issue, structural or strategic change over a long period of time proves again and again to be an impractical task.&lt;br /&gt;&lt;br /&gt;Enter agile.&lt;br /&gt;&lt;br /&gt;Suddenly we don't have to worry about the detail of every change and every movement over an entire year, and we're introducing a whole bunch of flexibility.  Where it goes wrong is not fixing &lt;span style="font-style: italic;"&gt;any&lt;/span&gt; certainty in the delivery process at all.&lt;br /&gt;&lt;br /&gt;Agile &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; about certainty and detailed planning, just detailed planning over a period which is possible to predict. Who knows what'll happen over a year, but you at least have a fighting chance of planning out the next 2-4 weeks will some degree of accuracy. Beyond that you can keep plans and requirements fluid and high level, netting you the right balance of fixing doable deliverables and keeping flexibility.&lt;br /&gt;&lt;br /&gt;Software delivery needs certainty to happen - you have to be able to rely on some requirements and some resources over some time span in order to make progress - and agile isn't about not having any, it's about having it on terms you can foresee.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6169302058548851420?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6169302058548851420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6169302058548851420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6169302058548851420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6169302058548851420'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/10/i-think-you-might-have-it-backwards.html' title='I think you might have it backwards'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6359191107348540315</id><published>2009-09-27T23:15:00.000+01:00</published><updated>2009-09-27T23:13:13.247+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Screen Scraping for Dummies</title><content type='html'>&lt;!--StartFragment--&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;If you run a website with any sort of valuable content, t&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;hen you are almost guaranteed&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt; to run into scraping sooner or later.  Screen Scraping is &lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;more or less an automated program taking an impression of a web page and then parsing it to pull out some specific bits of data that the scraper is interested in - which theoretically is then stored or used in some other way.&lt;br /&gt;&lt;br /&gt;The piece of software that does this scraping is commonly called a robot, or bot, and it is really just an automated web client that accesses and uses sites in the exact same way as it's fleshy counterparts, just with machine precision and repetitiveness.  A bot may be a large and complex program running on a server with it’s own database etc, or as simple as a script running in a browser on a desktop.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fhZACHRBLcQ/Sr_QfZ6CKsI/AAAAAAAAATY/O2DYLt3v0E8/s1600-h/bots.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 216px;" src="http://1.bp.blogspot.com/_fhZACHRBLcQ/Sr_QfZ6CKsI/AAAAAAAAATY/O2DYLt3v0E8/s320/bots.jpg" alt="" id="BLOGGER_PHOTO_ID_5386252917307222722" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;This is typically regarded as undesirable behavior by many sites because, in most cases, it’s a source of load and associated with unprofitable usage.  Whenever we draw a page impression, which we’ll do for every bot hit just as we do for every human visitor, we consume web server time and, worse, back end time.  When we structure highly functional pages loaded dynamic content we can create a very engaging user experience, and all that functionality is built on plenty of back end work and data.  When used at regular human pace that's usually OK, but under the relentless rate of hammering robots are capable of, it starts to become expensive.&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;If you've got a case of bots, you have to start by identifying them.  Their repetitiveness and flawless precision is, in this case, their downfall and we can usually spot them easily through proper analysis of web logs - no human user is as mechanically regular, millisecond quick, and consistent in journey as your average droid.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;Spotting droids isn’t too hard, but then you've got to decide what you're going to do about it.  Most scrapers aren't malicious and often don't realise the headache they're giving you.  In the first instance it's best to try some detective work, see if you can find out who they are, and get in touch.  Domain registrars can be a great resource for this, but don't overlook the obvious - maybe they even have an account with you if data they're using requires signup to view.&lt;br /&gt;&lt;br /&gt;Beyond that it gets tricky, and can easily turn into an IP address blocking arms race.  With some caching finesse or smart layer 7 rules you can throttle bot activity to more palatable levels, or persist them to their very own node that they can thrash all day without impacting the experience for the rest of your users.&lt;/span&gt;&lt;span style=";font-family:Calibri,Verdana,Helvetica,Arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;If robots are a very big problem for you, then try and take it as a compliment on the value of your data and perhaps consider publishing it via a productised API or feed - if you make it simple enough to consume, then most scrapers will willingly change over to a more reliable integration mechanism and perhaps even pay you for it.&lt;/span&gt;&lt;br /&gt;&lt;!--EndFragment--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6359191107348540315?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6359191107348540315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6359191107348540315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6359191107348540315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6359191107348540315'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/08/screen-scraping-for-dummies.html' title='Screen Scraping for Dummies'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fhZACHRBLcQ/Sr_QfZ6CKsI/AAAAAAAAATY/O2DYLt3v0E8/s72-c/bots.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5888207440812497790</id><published>2009-09-20T09:17:00.000+01:00</published><updated>2009-09-20T09:17:00.096+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>conferences - jolly good or just a jolly?</title><content type='html'>It has always interested me that two different people can look at the exact same conference, and one declare it to be an unmissable event relevant to their work and the other consider it a waste of time; a free day out of the office at best.&lt;br /&gt;&lt;br /&gt;It always leads to a discussion about which events are worthwhile and which aren't, but here's the secret - whether a conference is worthwhile or not is only 10% the event itself and 90% what you do while there and afterward.&lt;br /&gt;&lt;br /&gt;You could carefully plan the sessions you attend, take the time to meet people with similar technical problems or who have done worked with relevant technology and follow up with them later and, when you return to the office, share your new knowledge around and adopt some better practices.&lt;br /&gt;&lt;br /&gt;Or&lt;br /&gt;&lt;br /&gt;You could have a few days out, enjoy some vendor's hospitality (free beer always tastes better), and check out some new bars and, when you return to the office, settle comfortably back into your old habits.&lt;br /&gt;&lt;br /&gt;That, ladies and gentlemen, is the difference between a jolly good conference and just a jolly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5888207440812497790?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5888207440812497790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5888207440812497790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5888207440812497790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5888207440812497790'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/09/conferences-jolly-good-or-just-jolly.html' title='conferences - jolly good or just a jolly?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-7175999322046323782</id><published>2009-09-04T21:19:00.016+01:00</published><updated>2009-09-07T10:24:11.268+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Delegation from the other side</title><content type='html'>&lt;div&gt;I really like &lt;a href="http://manager-tools.com/"&gt;Manager Tools&lt;/a&gt; - it's probably the best single source of personal development material that you're ever going to find bundled in easy to consume episodically content.  Recently I thought I'd go back and listen to &lt;a href="http://manager-tools.com/manager-tools-basics"&gt;the basics series&lt;/a&gt; again, because you can never spend too much time on the fundamentals of good management and, like Mark and Mike say, if you don't do anything else except those basic practices, you'll probably do OK.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;It was a really good refresher, and worthwhile doing from time to time.  Then I got to &lt;a href="http://manager-tools.com/2007/01/the-juggling-koan"&gt;the juggling koan&lt;/a&gt; cast, which was about how to handle that inevitable situation when your boss gives you another big task to work on when you're already maxed out with too much to do.  It's worth listening to - so I won't spoil it entirely - except to say that the answer focuses on developing your delegation muscles, passing on some of your things to make space for the new action and helping your team to grow as an nice side effect.&lt;br /&gt;&lt;br /&gt;The majority of the cast focused on how to handle events after you accept this new delegated responsibility, and I liked the point about deliverables gaining size as they flow down the delegation tree (i.e. your small tasks are bigger challenges for more junior members of your team), however I think there was a valuable lesson here about the delegation from the recipient's perspective.&lt;br /&gt;&lt;br /&gt;The Manager Tools perspective on this was to accept the new delegation, and to view it as the expression of confidence and trust and the development opportunity that it really is.  Many new managers  would worry about whether they have the time to take it on or not (no thanks boss) or attempt to enter into a negotiation about what else to drop.*  The reason I like this angle is that I don't think there is enough coverage out there on followership.&lt;br /&gt;&lt;br /&gt;Leadership is glamorous and fashionable to write about and speak on, so we do a lot of it, but good followership is important to develop too.  There is an inherent responsibility on all the individuals in an organisation to be rational participants, and I think a group who know and practice the right behaviors on both sides of that equation performs better.  Anyway, isn't part of what we're doing when we're developing our people just cultivating better followership?&lt;br /&gt;&lt;br /&gt;Something I'd suggest you ponder when you listen to the cast is clarifying the difference between being handed an action and given responsibility for an outcome.  There was heavy emphasis on not entering into negotiations with your boss about whether or not you are going to take this thing on, however I think it's both valid and valuable to question the task and look for the underlying business value.&lt;br /&gt;&lt;br /&gt;This isn't arguing about whether or not you or your department have the time, or forcing your boss to manage your priorities for you, it's simply clarifying what you're really being expected to achieve rather than what you're being asked to do.  In my experience, particularly because I run technical departments, there is often a difference between what people want to achieve and what they initially ask for, as they think they have resolved the outcome they have in mind into a few actions and sometimes those actions don't add up.&lt;br /&gt;&lt;br /&gt;If you can have that sort of open discussion, then you might agree to accept delegation of a slightly different task than was first put your way, but one that much more directly leads to the goal your boss really had in mind.&lt;br /&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;* Key caveat here about dropping stuff.  Things will eventually be dropped, and when you're handling the most important things you can and have delegated the rest then so will your directs, and therefore [due to the hierarchical effect created when everyone delegates their least critical things] what gets dropped should eventually be the least important tasks overall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-7175999322046323782?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/7175999322046323782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=7175999322046323782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7175999322046323782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7175999322046323782'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/09/delegation-from-other-side.html' title='Delegation from the other side'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1006673940931141035</id><published>2009-08-30T00:17:00.006+01:00</published><updated>2009-08-30T05:41:33.056+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>A better way to manage equity?</title><content type='html'>When we get together to start a new venture, the structure of the equity is always an early topic.  The usual format is something along the lines of 'you do X for 20%, he does Y for 10%, and I do Z for 30%' and then we carve up the company up front.&lt;br /&gt;&lt;br /&gt;The problem with this approach is that it doesn't easily cater for all the things that &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; happen during the course of a startup.  For example, you can't always predict who's going to stick with it or how many people are ultimately going to be involved.  As the idea evolves (because you almost never end up with the same plan you started out on) the bias of work can shift to a point where the equity split no longer reflects the effort split, and of course the value of effort to a business changes over time.&lt;br /&gt;&lt;br /&gt;I don't think there is such a thing as a flawless mechanism for this, however I think I might be onto something a little more elegant.  Here's how it works...&lt;br /&gt;&lt;br /&gt;Break all the work - this same approach works for commercial and marketing tasks just as well as it does for the technical stuff - required to bring your idea to market into tasks or jobs which can be done individually by the members of your team.  Decide on a number of points for each task, based on a sensible blend of value to the business and effort required to deliver.  Points are the key to the whole thing; do the task -&gt; earn the points -&gt; exchange the points for shares.&lt;br /&gt;&lt;br /&gt;Because you haven't fixed the equity allocations up front, it doesn't matter if you gain or lose co-founders and you minimise those 'who isn't pulling their weight' discussions, as you only get the shares you directly earn.&lt;br /&gt;&lt;br /&gt;But why points when you could just do the same thing with the shares themselves?&lt;br /&gt;&lt;br /&gt;Points give you a couple of extra controls you might not have if you immediately issued the shares; for example you can set an exchange rate between points and shares, allowing you to increase the relative value of tasks not being picked up, or offer individuals a better exchange rate once they have accumulated a large number of points (thus encouraging fewer greater contributors which makes for a more coherent project and a simpler shareholders register).&lt;br /&gt;&lt;br /&gt;Setting specific milestones (for example beta launch or first partner signed up) at which points can be exchanged for equity ensures that everyone still focuses on bringing together an overall business delivery as well as their own contributions.&lt;br /&gt;&lt;br /&gt;Forming your company with a healthy allocation of shares and some fairly accurate record keeping on tasks and points (I can recommend &lt;a href="http://www.agilezen.com/"&gt;zen&lt;/a&gt; if you're an agile/lean thinker) is all that's required administratively.&lt;br /&gt;&lt;br /&gt;There are a number of more subtle points to this, such as making sure you've got strong enough acceptance criteria on each of these tasks, but that's the meat of it.  I'm running a project using this method now and - while we're not done yet - it's going pretty well and has already afforded us some flexibility we wouldn't otherwise have had.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1006673940931141035?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1006673940931141035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1006673940931141035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1006673940931141035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1006673940931141035'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/08/better-way-to-manage-equity.html' title='A better way to manage equity?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-135747369248392606</id><published>2009-08-19T07:07:00.000+01:00</published><updated>2009-08-19T07:08:14.933+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneurialism'/><title type='text'>Doing it on the side</title><content type='html'>Something new managers often struggle with is what their response should be when members of their team are involved (or are considering being involved) in external, perhaps even related, business activities. I encourage it wholeheartedly, with a small number of key caveats, on personal development grounds.&lt;br /&gt;&lt;br /&gt;Trying out "their own thing" will teach your guys about responsibilities well beyond those that you can reasonable expect to expose them to in their role, and give them some insight into the difficulties of running a business, taking care of finance, marketing to customers, and making product decisions. There is so much to the operational side of an organisation (even a tiny fledgling one) that they would otherwise not have many chances to experience first hand. This can help your team members develop their creative, entrepreneurial side and give them a much better appreciation of the challenges their colleagues elsewhere in the business face. This is so beneficial that I'm even found guilty of supporting such ventures with advice and coaching from time to time.&lt;br /&gt;&lt;br /&gt;The caveats? There are only 2 key things that must be true to qualify what I’ve said above:&lt;br /&gt;&lt;br /&gt;1 - You still have a job. Outside interests should not impinge on the quality, quantity, or timeliness of work, and if they do then one of these things must go. My policy is to provide a flexible working environment, but I'm not here to subsidise your startup either.&lt;br /&gt;&lt;br /&gt;2 - You shouldn't compete with your employer. For most people in our industry, our roles come with a duty to innovate and develop new product to further the companies interests. Whenever something extracurricular can be even slightly interpreted as related, it needs to be raised with management and explicitly categorised into 'company IP' or 'fair game' for everyones benefit.&lt;br /&gt;&lt;br /&gt;Regardless of which side of the employer/employee relationship you sit on it is always worth finding out what your company policies are on this kind of thing before getting underway. Being uninformed might mean you start out with the best intentions and end up having to make difficult choices later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-135747369248392606?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/135747369248392606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=135747369248392606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/135747369248392606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/135747369248392606'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/08/doing-it-on-side.html' title='Doing it on the side'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8834377369684504804</id><published>2009-06-16T16:37:00.001+01:00</published><updated>2009-06-16T16:39:45.381+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>The nuances of Planning Poker</title><content type='html'>I’m going to skip right over explaining what planning poker is and how it works - especially since there are so many &lt;a href="http://store.mountaingoatsoftware.com/pages/planning-poker-in-detail"&gt;simple and effective explanations&lt;/a&gt; out there - and assume that you’ve at least given it a bash.&lt;br /&gt;&lt;br /&gt;What I want to address is the spirit in which group estimation happens.&lt;br /&gt;&lt;br /&gt;Every potential task owner (read: qualified opinion) estimates each relevant task as it comes up, but the reason for this is commonly misinterpreted.  The purpose is not to force the eventual task owner to reduce his or her estimate, or to adopt an estimate that others in the group ‘prefer’ and nor is it a criteria for selecting an owner for a task, based on the estimate the product owner or scrum master likes the most.&lt;br /&gt;&lt;br /&gt;The purpose is to draw out knowledge from the outliers, so that the whole team can benefit from their experience.  When someone in the group pulls a card miles away from the rest (assuming a consistent understanding of the task) that’s something to explore.  You might have a much higher estimate – perhaps that person has been burnt before by that same inconspicuous looking requirement masking significant complexity.  You might have a much lower estimate – perhaps that person knows a good work saving shortcut or pattern uncovered during a previous project.&lt;br /&gt;&lt;br /&gt;If you take the time to ask those questions and consider that information, the group learns from one another and everyone gets better at estimating.&lt;br /&gt;&lt;br /&gt;And whose estimate is used in the sprint?  The person who is going to be doing the work...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8834377369684504804?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8834377369684504804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8834377369684504804' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8834377369684504804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8834377369684504804'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/06/nuances-of-planning-poker.html' title='The nuances of Planning Poker'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1215098150376183819</id><published>2009-06-14T21:50:00.000+01:00</published><updated>2009-06-14T21:51:10.194+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Right First Time</title><content type='html'>Imagine if the first wall you ever built had to form an integral part of your dream home, or if the first time you ever drew a picture it had to hang in the Louvre?  Or if the first cake you ever baked had to be for your daughters wedding?&lt;br /&gt;&lt;br /&gt;That’s clearly unreasonable.&lt;br /&gt;&lt;br /&gt;So why does it seem reasonable that the first iteration of a new system you build should be the one that your business depends upon?&lt;br /&gt;&lt;br /&gt;That’s why we prototype.  That’s why we iterate.  That’s why we beta.  Don’t rob yourself, and your organisation, of the wisdom you’re owed from those lessons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1215098150376183819?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1215098150376183819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1215098150376183819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1215098150376183819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1215098150376183819'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/06/right-first-time.html' title='Right First Time'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1891322623536870249</id><published>2009-06-08T14:22:00.000+01:00</published><updated>2009-06-08T14:22:01.051+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>So who is in a team anyway?</title><content type='html'>I caught up with a friend the other day; he’s in the system integrator business and is struggling a little with recent growth.  Long story short, things are a bit a disorganized and efficiency is low.  They’ve got some kind of consultant in, and we were talking over his advice.&lt;br /&gt;&lt;br /&gt;So how does their guy propose they fight the first battle in the war for organizational effectiveness?  Setting aside certain days when people in one team aren’t allowed to talk to another.  No, you didn’t read that wrong, the ‘big plan’ is to actually create barriers to communication.&lt;br /&gt;&lt;br /&gt;I just hope that wasn’t expensive.&lt;br /&gt;&lt;br /&gt;In the reseller/systems integrator game it’s all down to the cooperation between sales and their technical teams, and so I really struggle to see how driving intentional wedges between them is going to help.  So my theory?  Perhaps the wrong people are teamed up together in the first place…&lt;br /&gt;&lt;br /&gt;In any mission there are multiple people with different skillsets doing different jobs all coming together around a central project/customer/business problem.  Isn’t that a team?  The people who actually need to work together on a daily basis for the direct benefit of the customer?  I don’t know why we keep insisting on grouping people by job or by skillset (sales team and technical team, or dev team and test team) because the cold, hard facts are that these teams can’t achieve anything end-to-end for a customer on their own.  Maybe it just appeals to our human need to nicely categorize things.&lt;br /&gt;&lt;br /&gt;When you put people together in a team, you create a tight loop of communication and cooperation between those people (it’s one of the reasons we do it in the first place) – but you do something else too – you also create a little organizational fence between them and other teams.  A fence that we absolutely should work at keeping as low and friendly as possible, but a fence nonetheless.  To me it just comes down to where you want to put your fences – does it make sense to create boundaries between the individuals whose effort must by synchronized daily to complete units of work?&lt;br /&gt;&lt;br /&gt;In what I do, the unit of organizational delivery is the project (or, as a superset, the product).  That’s that unique object around which we all gather and apply our individual skills and experience to create tangible value for the company.  So by default, I have a nice, simple method for grouping my guys together in a way that creates the fewest barriers to the most common communication and coordination lines that they’ll be following each day.  I suppose I could put all the developers in one team, all the testers in another team, all the project mangers in another team again etc – but if I did, then what’s the very first thing I’ll have to do as soon as I want to do any work?  That’s right, pull them back together into virtual or temporary teams based on the projects they’re delivering against.  Hmmm.&lt;br /&gt;&lt;br /&gt;From my experience in the SI and reseller game, I’d suggest that the unit of organizational delivery is the customer.  That’s the internally-ownable entity which performance and profit is measured against, margin is made against, and time is billed against.  Yet almost every one of these companies is, at best, a matrix management organization.  So you group people together into a sales team, a tech team, a presales team etc – and then wonder why, whenever they all have to get together around that common indivisible business problem (the customer) there are all sorts of communication issues, competing priorities, complexities planning time...&lt;br /&gt;&lt;br /&gt;Perhaps a team in this type of organization should be something like a sales guy, some sales support, a presales guy, a couple of engineers, and a share of some administration – all grouped together around a set of similar customers that they own the end-to-end P&amp;amp;L for.&lt;br /&gt;&lt;br /&gt;The inevitable argument against this kind of cellular organization is the same one I’m used to elsewhere – developers like hanging out with developers, infrastructure engineers like hanging out with infrastructure engineers and so on.  My only response to this is that I don’t see how organizing your people into the teams which best reflects the true structure and purpose of the company precludes communities of interest, and again, just ask yourself where you want to put the barriers, and whether you consider the upside of keeping people grouped into teams of similar individuals worth the downside of trying like mad to make them work together efficiently and effectively whenever you have to get anything done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1891322623536870249?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1891322623536870249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1891322623536870249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1891322623536870249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1891322623536870249'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/06/so-who-is-in-team-anyway.html' title='So who is in a team anyway?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5903183392556647304</id><published>2009-06-01T09:45:00.002+01:00</published><updated>2009-06-01T09:45:00.098+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Good ops guys are hard to find...</title><content type='html'>Good operations is about staying one step ahead of the state of the system; taking proactive actions based on quality telemetry.&lt;br /&gt;&lt;br /&gt;I’m reinventing how my sites are supported – if you’re an &lt;a href="http://cid-b8a616986315d842.skydrive.live.com/self.aspx/stuff/service%20delivery%20manager.docx"&gt;awesome one of these&lt;/a&gt; or a &lt;a href="http://cid-b8a616986315d842.skydrive.live.com/self.aspx/stuff/Systems%20Engineer.docx"&gt;kick-ass one of these&lt;/a&gt;, then &lt;a href="mailto:efletcher@sportingindex.com"&gt;we should talk&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5903183392556647304?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5903183392556647304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5903183392556647304' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5903183392556647304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5903183392556647304'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/06/good-ops-guys-are-hard-to-find.html' title='Good ops guys are hard to find...'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4908474760003367728</id><published>2009-05-29T17:11:00.004+01:00</published><updated>2009-05-29T17:18:42.321+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><title type='text'>Hi, I’m Eachan and I’m a fail-a-holic</title><content type='html'>I attended a Harvey Nash &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CIO&lt;/span&gt; leadership forum a few days ago, subtitled The Strategic Insight Survey.  Combining words like “strategic” and “insight” as a standalone sentence usually sets off my spider sense, however I must say it was a most worthwhile evening.  Other heavily overused and frequently misunderstood words that were thrown about with reckless abandon were innovation, transformation, and ROI etc – all against the backdrop of this current economic climate.&lt;br /&gt;&lt;br /&gt;All this talk of innovation, and how you measure its ROI, was starting to tickle my aforementioned spider sense, but since a couple of the panel were from the public sector, I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;couldn&lt;/span&gt;’t help but want to explore the effect that the general public’s reaction to failure has on the culture within those organisations.  This is why I’m either never invited back to these things or I’m on the panel next time.&lt;br /&gt;&lt;br /&gt;Firstly, let’s just agree that the cost of innovation is not in salaries paid to folk you can point to and say, “he’s doing some innovating” or in capital expense on new widgets and bleeding edge technology.  The price of innovation is failure.  In fact, I would even suggest that the price of learning anything material is failure.&lt;br /&gt;&lt;br /&gt;So then I look at the slating that any public service gets when things go wrong.  We bay for blood in the most public of forums, newspapers, radio, and even (opportunistically) on the opposition benches.  A major mistake was made, so someone has to go, right?  There are countless examples of this; ranging from embarrassing (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;eg&lt;/span&gt; &lt;a href="http://news.bbc.co.uk/1/hi/uk_politics/7103566.stm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;HMRC&lt;/span&gt; data loss&lt;/a&gt;), to genuinely horrific (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;eg&lt;/span&gt; &lt;a href="http://news.bbc.co.uk/1/hi/england/london/7732310.stm"&gt;Baby P tragedy&lt;/a&gt;), to that thin line between the rules and the spirit of the rules (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;eg&lt;/span&gt; &lt;a href="http://www.telegraph.co.uk/news/newstopics/mps-expenses/"&gt;MP’s expenses scandal&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;It’s difficult to come to an agreement on what should have happened in any one incident, as we will all feel differently about each incident and will be affected differently by it, but that’s OK, because it is the pattern that matters.  The pattern is what sets the culture.&lt;br /&gt;&lt;br /&gt;If, every time things go wrong, we excise every last individual involved, how then do we ever hope for the lesson to be learnt?  Who has felt the pain, and is carrying that forward as a driver for change?  Where is, to quote a buddy of mine, the feedback loop?&lt;br /&gt;&lt;br /&gt;Is it right for us to do this, to create such epic risk aversion, and then still expect these organisations to deliver even the most basic of improvements let alone giant innovative leaps forward?  Are we just robbing them of the best ingredients needed to create the huge changes we’re demanding?&lt;br /&gt;&lt;br /&gt;When I think more about it, I wonder if I really am a fail-a-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;holic&lt;/span&gt; at all.  Perhaps I only embrace failure so much &lt;span style="font-style: italic;"&gt;because I’m actually a success-a-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;holic&lt;/span&gt;&lt;/span&gt;…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4908474760003367728?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4908474760003367728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4908474760003367728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4908474760003367728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4908474760003367728'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/05/hi-im-eachan-and-im-fail-holic.html' title='Hi, I’m Eachan and I’m a fail-a-holic'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6868781146128715348</id><published>2009-03-10T10:11:00.002Z</published><updated>2009-03-10T10:11:02.838Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Don't out-specify your knowledge</title><content type='html'>Combining some points from &lt;a href="http://armstrongonsoftware.blogspot.com/2009/02/json-protocols-part-1.html"&gt;this post by Joe Armstrong&lt;/a&gt; and &lt;a href="http://www.dancres.org/blitzblog/2009/03/04/imperfect/"&gt;this post by Dan Creswell&lt;/a&gt; gives rise to some interesting implementation thoughts.&lt;br /&gt;&lt;br /&gt;Standardisation is important, particularly in the context that Armstrong frames it in - if the interaction between a client and a server closely adheres to a predetermined protocol, then the systems overall behaviour becomes more predictable and easier to adapt and fault find.&lt;br /&gt;&lt;br /&gt;But then this depends on the maturity of your understanding of your problem and your solution.  As Creswell says at the beginning of his post, defining too much up front can be a trap.  Coming up with a set of standards that are too rigid too early might start you down a road of building &lt;em&gt;that&lt;/em&gt; system instead of building the &lt;em&gt;right&lt;/em&gt; system.&lt;br /&gt;&lt;br /&gt;Standards, patterns, and contracts are all important - but timing is key.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6868781146128715348?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6868781146128715348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6868781146128715348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6868781146128715348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6868781146128715348'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/03/dont-out-specify-your-knowledge.html' title='Don&apos;t out-specify your knowledge'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-166806997710394588</id><published>2009-03-08T19:21:00.002Z</published><updated>2009-07-22T16:35:59.459+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Choosing Recruitment Agents</title><content type='html'>Every now and again you'll go through that compulsory "we use too many agencies and we need to rationalize" process.  As part of that, you'll be working out a few criteria for evaluating recruiters and putting them on some sort of preferred supplied list.&lt;br /&gt;&lt;br /&gt;The typical approach to this pretty much involves coming up with some lower rates than you currently pay (cost control is usually the motivation behind the PSL exercise) and seeing who wants to sign up.  Not a bad start, especially if you come up with some tiers which (for example) encourage recruiters to take a lower fee for a period of exclusivity, but you should probably add some metrics to ensure quality.&lt;br /&gt;&lt;br /&gt;Firstly, think about why you use an agency.  Hiring strangers is the worst recruitment strategy ever, so when you use an agency, you are basically using &lt;em&gt;their&lt;/em&gt; network as a replacement for &lt;em&gt;yours&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;So how about finding out some other stuff too; do they meet candidates in person before they put them forward?  How long do they typically have a relationship with a candidate for before they start to place them? How often do they place the same candidate in consecutive roles? Anything you can come up with to give you confidence that their network is going to be a passable proxy for yours is going to be a worthwhile comparison point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-166806997710394588?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/166806997710394588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=166806997710394588' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/166806997710394588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/166806997710394588'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/03/choosing-recruitment-agents.html' title='Choosing Recruitment Agents'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4763838655531475869</id><published>2009-03-04T09:00:00.002Z</published><updated>2009-03-04T09:53:54.961Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>No problem too small, no reward too big</title><content type='html'>Do you ever sit around with friends, talking over a few beers, and solve all the worlds problems? As I get older this seems to be becoming my chief pastime, and we recently got ever so excited about power generation and distribution. We figured the whole thing could be completely re-architected in a P2P model, where everyone in the grid both consumed and generated/supplied power.&lt;br /&gt;&lt;br /&gt;Rushing to the nearest browser in case a patent application was necessary, we became a slightly despondent upon seeing a bunch of articles like &lt;a href="http://news.bbc.co.uk/1/hi/sci/tech/4245584.stm"&gt;this one on microgrids&lt;/a&gt; and &lt;a href="http://www.wired.com/wired/archive/9.07/juice.html"&gt;what the EPRI are getting up to&lt;/a&gt;. That said, it's great to see this kind of stuff getting mindshare.&lt;br /&gt;&lt;br /&gt;So what, if anything, is still missing? To see this come true, it seems like we'd have to work our how the power companies would still make money in our community-spirited utopian electricity supplying future. So perhaps we can still contribute by bringing some economics into the solution.&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img height="253" alt="solar_roof.jpg" src="http://lh4.ggpht.com/_fhZACHRBLcQ/SaG3emtgGYI/AAAAAAAAAPs/0DJYlxl_H0Q/solar_roof.jpg?imgmax=800" width="368" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;Someone has to provide that infrastructure - the grid we'd all have to be connected to in order to exchange electrical capacity. That sounds like something someone should be paid to provide. So perhaps there is a subscription fee? Or maybe we can do one better - how about a variable charge based on each household's net balance at the end of every month/quarter/year? The closer you are to netting out (producing the same number of kilowatt hours you consume) the closer to zero the bill gets.&lt;br /&gt;&lt;br /&gt;The beauty of that model is it incentivizes consumers to be as self-sufficient as possible and disincents (is that even a word?) waste. The expected impact of such a price control is for participating individuals to want to align their production with their consumption - probably by boosting the capabilities of the former while working out efficiencies in the latter.&lt;br /&gt;&lt;br /&gt;Reducing overconsumption is probably a no-brainer, but you could look at reducing overproduction both ways. On the one hand, overproducers supply overconsumers and we'd need that, but on the other hand we wouldn't want participating individuals to profit from overproduction. Ultimately all overproduction is wasteful (by definition if nothing else) so there should still be a price for it, a lower price than overconsumption, but not as low as netting out.&lt;br /&gt;&lt;br /&gt;Well that was all kind of off-topic, but I hope you enjoyed it nevertheless. There are some intriguing engineering challenges in the basic problems inherent in sustaining our society, and if we gave this kind of stuff a little more attention, we'd all be living in a much better world before you know it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4763838655531475869?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4763838655531475869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4763838655531475869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4763838655531475869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4763838655531475869'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/03/no-problem-too-small-no-reward-too-big.html' title='No problem too small, no reward too big'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fhZACHRBLcQ/SaG3emtgGYI/AAAAAAAAAPs/0DJYlxl_H0Q/s72-c/solar_roof.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2289292627012726820</id><published>2009-02-27T22:55:00.002Z</published><updated>2009-03-01T03:04:16.347Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Gartner Economic Downturn Briefing - Part 2</title><content type='html'>Continuing on from &lt;a href="http://www.eachan.com/2009/02/gartner-economic-downturn-briefing-part.html"&gt;yesterdays post&lt;/a&gt;; the sessions reinforced to me how little of the core Gartner content is aimed at web companies.  Almost all yesterday's stuff was only really relevant to 10,000 seat corporate enterprises.  I've worked in several big companies before, and the internal "business process support" technical challenges they face are very different to our external product-led technical challenges.  We also don't tend to have such epic workforces and supply chains, we tend to be pretty lightweight and entrepreneurial by comparison.&lt;br /&gt;&lt;br /&gt;Back on track - the economic downturn.  It's kind of uncomfortable to think about the upside of something that is affecting so many so negatively, however we're well positioned to take advantage of the opportunities that are coming to the surface.&lt;br /&gt;&lt;br /&gt;With a battening-down-the-hatches mentality, people are preparing for the worst.  Sites like &lt;a href="http://www.fool.co.uk/"&gt;Fool&lt;/a&gt; and &lt;a href="http://www.lovemoney.com/"&gt;Lovemoney&lt;/a&gt; pick up as we try to get as many money-saving tips as we can.  The first preventative action we're likely to take is reviewing utilities and other basic household expenses, and sites like &lt;a href="http://www.gocompare.com/"&gt;Gocompare&lt;/a&gt; and &lt;a href="http://www.moneysupermarket.com/"&gt;Moneysupermarket&lt;/a&gt; see a lot more visitors.&lt;br /&gt;&lt;br /&gt;On top of this, there are a whole slew of &lt;a href="http://www.eachan.com/2008/12/constraints-and-creativity.html"&gt;creative new ideas&lt;/a&gt; starting to come through, all predicated on our current need to squeeze a little more value out of things we otherwise tolerated waste in.&lt;br /&gt;&lt;br /&gt;At the worst end of the scale, people are being made redundant.  Again this is a terrible tragedy affecting people I know, and it feels unfair to be thinking about the opportunity at a time like this.  Nonetheless, the internet is now the de facto tool of choice for finding your next role, and this means more actives on &lt;a href="http://www.jobserve.com/"&gt;Jobserve&lt;/a&gt; and &lt;a href="http://www.monster.co.uk/"&gt;Monster&lt;/a&gt;.  Whether you've been affected yet or not, it is now more important than ever to get an up-to-date profile out there and build up strength in your network (before you need it).  Off we go to the professional social networking sites like &lt;a href="http://www.plaxo.com/"&gt;Plaxo&lt;/a&gt; and &lt;a href="http://www.linkedin.com/"&gt;Linkedin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lining my own pockets for a moment, online gaming and gambling is fairly recession-resilient, but even simple ad-supported business models can do OK.  You're still turning page views and actives into revenue, and if you're providing the service or content that's currently in demand, then that's not insurmountable in any times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2289292627012726820?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2289292627012726820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2289292627012726820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2289292627012726820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2289292627012726820'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/02/gartner-economic-downturn-briefing-part_27.html' title='Gartner Economic Downturn Briefing - Part 2'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4387220242636689043</id><published>2009-02-26T20:37:00.001Z</published><updated>2009-02-26T20:37:12.967Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Gartner Economic Downturn Briefing - Part 1</title><content type='html'>It's been ages since I went to a Gartner briefing, and I figured this would be a topical one to pick the habit back up with - perhaps get a look at the ways other organizations are tackling this credit crunch thing.  You guys often tell me that my posts can be a little too long, so today I'll summarize the key content and tomorrow (or maybe Monday - hey I have a day job too you know!) I'll put my thoughts up.&lt;br /&gt;&lt;br /&gt;The sessions were focussed on how CIOs and CTOs are responding to the current economic circumstances, and the techniques IT organizations can use to keep cost under control and contribute to the businesses downturn survivability.  So here goes - in no particular order...&lt;br /&gt;&lt;br /&gt;•	Focus on projects that are "shovel ready".  Bang for buck is more critical than ever, and projects ready to be actually &lt;em&gt;done&lt;/em&gt; are worth a lot more than potentially better activities that are still in the planning phase.&lt;br /&gt;&lt;br /&gt;•	Expect to deal with massively escalated regulation.  In the post-credit crunch world, there will be a lot more regulation aimed at preventing repeat performances.  This is likely to mean increased reporting and compliance overhead, as well as more constraints on how technology can be deployed and data used.&lt;br /&gt;&lt;br /&gt;•	In the worst of cases, there may well be a sharp rise in the number of legal actions.  This is going to put increased demand on e-discovery and BI as organizations scrabble for the information they need for defence.&lt;br /&gt;&lt;br /&gt;•	A general loss of trust is going to lead to more diligence efforts.  In a climate where any number of suppliers could go bust at any time, you'll need to spend extra time reviewing the financial integrity of key partners you depend on, and perhaps even making backup plans.&lt;br /&gt;&lt;br /&gt;•	The downsizing mentality could rob you of the top talent that you'll need on hand to steal a march on your competitors once times start looking up.  Don't sack them, squirrel them away any way you can!&lt;br /&gt;&lt;br /&gt;•	Expensive oil means old assumptions on locations, topology, and transport need to be challenged.  Get better at communications, and be prepared to accommodate supply chain changes aimed at closing the distance between steps.&lt;br /&gt;&lt;br /&gt;•	Check out your PR infrastructure.  During these times the amount of media attention on companies is at a peak.  Where is your corporate site hosted?  Who edits the content?  It is often an overlooked side-system, and right now you don't need the attention you'll get if it goes down.&lt;br /&gt;&lt;br /&gt;•	Take a look at your HR systems too.  When companies get told to lay off 12,000 people over 12 months, their HR processes face a task they were never intended to handle.  Pay special attention to data accuracy - mistakes in calculations on this scale will just kill you.&lt;br /&gt;&lt;br /&gt;•	Watch out for desperation moves.  These are the times when you'll be the most likely to get stitched up by some crazy marketing plan, an over the top offer that gets madly oversubscribed, and so you'll want to keep your interdepartmental communication flowing and your eye on capacity.&lt;br /&gt;&lt;br /&gt;There is some good sense in this, and some stuff I want to look at from a slightly different angle.  My side of it - and what I think it means for us web guys - in the next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4387220242636689043?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4387220242636689043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4387220242636689043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4387220242636689043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4387220242636689043'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/02/gartner-economic-downturn-briefing-part.html' title='Gartner Economic Downturn Briefing - Part 1'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4066247469082636285</id><published>2009-02-21T00:49:00.003Z</published><updated>2009-02-21T01:06:11.279Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='scale'/><title type='text'>Scalability is not just a technical problem</title><content type='html'>&lt;p&gt;There is so much content out there about how to scale out web sites, platforms, and databases – but it all focuses on the production system architecture.  Do a Google search for scalability – go on, I’ll wait for you...  See what I mean?&lt;/p&gt;  &lt;p&gt;Now I know that’s the fun bit to talk about, but being practical for a minute, if you’re starting to scale out systems using techniques like Digg, Flickr, Xbox Live, or &lt;a href="http://highscalability.com/"&gt;the usual suspects&lt;/a&gt; like Amazon, Google, and eBay, then chances are that you’ve got a whole lot more scalability challenges than just the product.&lt;/p&gt;  &lt;p&gt;If you’re dealing with at least hundreds of thousands of daily actives, then we can probably deduce a bunch of other stuff about your circumstances.  We can guess that you’re after reasonably frequent feature drops, have a significant amount of horizontal distribution, a healthy sized engineering organisation, and a strong bias towards availability.  And if even half of that stuff is true, then what are the other scalability challenges will you be up against?&lt;/p&gt;  &lt;p&gt;How about multiple concurrent projects?  If your estate is divided into more than one product then you will more than likely be working on more than one new feature in parallel.  This gives rise to all sorts of version control and regression test problems, which demand process and infrastructure quite different to a single effort.&lt;/p&gt;  &lt;p&gt;What about disparate teams?  You might have people in a number of locations branching, or depending on, the same codebase.  That’s a communication barrier which can be tough to solve.  Large enough organisations also tend to sprout specialist disciplines, such as user experience and IA – this changes the nature of how teams engage and how work is specified, estimated, and delivered.&lt;/p&gt;  &lt;p&gt;And how do you manage environments, tools, and documentation?  A complex production architecture begets a complex development infrastructure, as there is a lot more interoperability to test for.  Don't forget that with more teams working concurrently, managing contention for these expensive environments also becomes a tricky balancing act.  As your products increase in popularity (a good proxy for profitability on the web) NFRs like performance and capacity will become more important and will require specialised tools to measure.&lt;/p&gt;  &lt;p&gt;I’d like to see us sharing a little more about our experiences with this side of highly scalable systems – it might not be as sexy as memcached, CAP, and Gossip, but the reality is it is just as important a part of the solution nonetheless.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4066247469082636285?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4066247469082636285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4066247469082636285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4066247469082636285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4066247469082636285'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/02/scalability-is-not-just-technical.html' title='Scalability is not just a technical problem'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3033617263018332603</id><published>2009-02-17T21:52:00.003Z</published><updated>2009-02-17T21:58:16.445Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>The Good and the Bad of Google Product Management</title><content type='html'>I don't often pick up stuff from the news - I don't really consider what I write here as commentary - &lt;a href="http://www.nytimes.com/2009/02/15/business/15ping.html?_r=1&amp;amp;pagewanted=1&amp;amp;partner=rss&amp;amp;emc=rss"&gt;but this one I couldn't resist&lt;/a&gt; because it's such a good segue into something I wanted to talk about anyway.&lt;br /&gt;&lt;br /&gt;In a way it's a little sad to think that these harsh economic times are starting to have an effect on even that most hallowed of engineer-driven organization.  Still, there are those of us probably a little less melancholy - I can just imagine how much fun serial cloud hater, &lt;a href="http://channeldvorak.com/"&gt;John C Dvorak&lt;/a&gt;, is having - "told you not to keep stuff in the cloud, one day they just switch it off and then what do you do?"&lt;br /&gt;&lt;br /&gt;The decision to shelve a product is a difficult one, and one that inevitably leads to some degree of unpopularity both internally and externally.  What I wanted to do here was take a look at what this article tells us about product management practices in general.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Good Stuff&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• Willingness to take risk.  Especially in these times, it can be tempting to stick to safe territory.  That can be good advice, but what are you missing out on?  Another way to look at it is when everybody else is playing it safe, it’s easier to stand out with something unique.&lt;br /&gt;• Recognise the capability gain in products even if the product itself doesn’t work out in its current incarnation.  Taking what they gained from Dodgeball and turning it into the Maps add-on Latitude is a great example of the sort of utility you can get from something that doesn’t work out in its initial form.&lt;br /&gt;• Customer feedback.  Accessing the community through techniques like product development blogs and using that knowledge to shape the features and user experience is a powerful way to make sure your system ends up meeting expectations as closely as possible.&lt;br /&gt;• Attitude to failure.  Viewing things that don’t work out as &lt;em&gt;contributing&lt;/em&gt; to overall success rather than &lt;em&gt;detracting&lt;/em&gt; from it helps you really internalise what you learn and encourages the innovation that fear of failure will crush.&lt;br /&gt;• Internal testing.  Eating your own dog food is always helpful, after all, if you find your product difficult to use then what are you asking of your customers?&lt;br /&gt;• Opportunity cost.  I liked the part where they consider the opportunity cost of a project as well as its real cost; i.e. what is the value of the things that the engineers are not working on because they’re working on this?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bad Stuff&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• Incentives.  Paraphrasing, the article talks about difficulty attracting engineers to work on certain products.  There are some reasonably well publicised shared reward schemes in place, and in this free market-like environment management needs to consider how it might need to provide external subsidies to make sure that less glamorous, but perhaps strategic, projects get attention too.&lt;br /&gt;• Perpetual betas.  I really couldn’t decide whether this one belonged in the good or the bad section, so I let the need for balanced paragraphs drive the decision.  On one hand, I think there is no better way to refine user experience and focus the tail end of your development efforts on polishing the things users like the most, but on the other hand there are circumstances under which you need to show the commitment of a production-ready seal of approval.&lt;br /&gt;• Communication.  While not exclusively a product management issue, communication across geographical boundaries was a major issue here.  This shows how important collocation is in a product development process.&lt;br /&gt;• 20% time.  I think we’ve all heard mixed reports about how this really works, but regardless of that, if you have a product that you’re committed to and have set targets for then you simply must formally assign it resources.  Relying on product management to recruit people from their 20% time is setting it up for failure.&lt;br /&gt;&lt;br /&gt;The article also mentions internal performance targets for new products, and in all businesses objectives and measures are the true meat of how product decisions are driven, so it's a shame we didn't learn more about that.  Also some kudos due for how they ended Jaiku, the Twitter clone, it's good to see them pass that on to the community rather than just confine it to the shelf.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3033617263018332603?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3033617263018332603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3033617263018332603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3033617263018332603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3033617263018332603'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/02/good-and-bad-of-google-product.html' title='The Good and the Bad of Google Product Management'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2618580377395276922</id><published>2009-02-04T09:35:00.003Z</published><updated>2009-02-04T09:35:00.584Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Giving References</title><content type='html'>I was recently asked to act as a reference for a couple of people, and that got me thinking about the policy most organisations seem to have on this kind of thing (i.e. don’t do it). I can understand where this came from – representing the opinion of your company is a significant responsibility which has all too often been wielded by the undeserving.&lt;br /&gt;&lt;br /&gt;Obviously I’d never advise flying in the face of company policy, but I really like giving references. In fact, I consider being able to give a good reference to be a lagging indicator of great success with people.&lt;br /&gt;You see, if I’m able to give a good reference for someone, it means two things:&lt;br /&gt;&lt;br /&gt;1. We’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ve&lt;/span&gt; had a successful, effective working relationship in which we’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ve&lt;/span&gt; helped each other deliver tangible value to the business.&lt;br /&gt;&lt;br /&gt;2. I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ve&lt;/span&gt; been able to help that person develop professionally, and I’m now helping them to continue to grow their career.&lt;br /&gt;&lt;br /&gt;Is there any greater satisfaction to be had in management? It’s why I do the job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2618580377395276922?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2618580377395276922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2618580377395276922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2618580377395276922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2618580377395276922'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/02/giving-references.html' title='Giving References'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3501170074427226550</id><published>2009-01-29T18:58:00.000Z</published><updated>2009-01-29T18:58:02.023Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Why are they never happy?</title><content type='html'>This is another one of those stories that my girlfriend will tell you explains why we don't get invited around for dinner more than once, but &lt;em&gt;I'll&lt;/em&gt; tell you is dead essential to the world of technology becoming a better place - one manager at a time...&lt;br /&gt;&lt;br /&gt;Anyway, I'm listening to this buddy complain about how busy he is, how hard he's working, how many hours his team are putting in, and how much stuff they're getting out - yet still his customers aren't happy.  They're always finding something to complain about, pointing out the things that are missing rather than thanking him for the things that are there.&lt;br /&gt;&lt;br /&gt;When I hear this, what I think most people are &lt;em&gt;really&lt;/em&gt; saying is "my team and I are working really hard and really long hours doing the things &lt;em&gt;we want to do&lt;/em&gt; for this customer".  Whenever I've seen this issue on the floor, it has almost always been because the guys were dedicated and hardworking, but being dedicated to and working hard on the wrong stuff.&lt;br /&gt;&lt;br /&gt;Think about it like this; if I really want A, and you give me B, C, D, E, F, &lt;em&gt;and&lt;/em&gt; G, then I might be impressed by how busy you've been and how much work you've done, but I still won't thank you for it.  Yes, B through G were relevant to my department and they were things I wanted done - no argument there - but if A was &lt;em&gt;the&lt;/em&gt; thing that meant the difference between getting that big contract or not, or making this quarters numbers or not, then I would have happily traded it all to have just A.&lt;br /&gt;&lt;br /&gt;I'm not saying that there aren't ungrateful people in the world, but I am saying that until you've adopted a partnership-based, customer-centric view of how you deliver technology, you haven't earned the right to complain about them.&lt;br /&gt;&lt;br /&gt;Look frequently and carefully at your priorities, and compare them against what your business is being driven to achieve - you never know - you might even end up doing less work &lt;em&gt;and&lt;/em&gt; having happier customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3501170074427226550?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3501170074427226550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3501170074427226550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3501170074427226550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3501170074427226550'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/why-are-they-never-happy.html' title='Why are they never happy?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4342231882141450946</id><published>2009-01-25T19:11:00.001Z</published><updated>2009-01-25T19:17:14.745Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>You ALWAYS Pay for Quality</title><content type='html'>What if I told you that every single organization pays the same for any given piece of functionality?  You'd probably call me crazy, and that would probably be because you know that it's not true, right?  You've negotiated different rates, done projects in different locations, used different vendors, and cut different corners - and consequently, it cost you a different amount of cash each time.  So I can't possibly be right, can I?&lt;br /&gt;&lt;br /&gt;But before you condemn my point entirely, consider this:&lt;br /&gt;&lt;br /&gt;If you're buying in software, consultancy, per-project services etc, then the primary levers you can adjust are commercial terms.  You might feel exceptionally good about reducing the cost of a project by £5K or shaving a couple of points off margin, but do you really think those suppliers are going to produce &lt;em&gt;exactly the same&lt;/em&gt; output for you and just make £5K less on the deal?  Good luck with that.&lt;br /&gt;&lt;br /&gt;If you're building your own products, and assuming you've got a fixed size team, then the primary levers you can adjust are tradeoffs and shortcuts - i.e. &lt;a href="http://en.wikipedia.org/wiki/Project_Management_Triangle"&gt;where you spend your time&lt;/a&gt;.  How you pay for quality is then divided up between how much you're prepared to pay for now up front, and how much you're going to pay later - typically through higher operational or technical support effort (less automation), increased cost of the next features (technical debt), and opportunity cost (revenue lost to product unavailability).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh4.ggpht.com/_fhZACHRBLcQ/SXoGxHS5euI/AAAAAAAAAPI/Tda6yS4L_70/AE7A1D38-26B7-4709-8A0E-69EDFFF0CAF8.jpg?imgmax=800" alt="AE7A1D38-26B7-4709-8A0E-69EDFFF0CAF8.jpg" border="0" width="340" height="240" /&gt;&lt;/div&gt;&lt;br /&gt;So I'd suggest that you &lt;em&gt;always&lt;/em&gt; pay for quality, whether you intend to or not, and I'd add that it's usually less painful to pay for it overtly through a proper project plan, than inadvertently through reactive support, &lt;a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx"&gt;interest payments from future projects&lt;/a&gt;, and your customers patience.&lt;br /&gt;&lt;br /&gt;I'm not saying that you should never try to sharpen a deal to save some budget or take a shortcut to get a product out quicker, simply that you should keep in mind the longer term costs as you congratulate yourself on the shorter term gains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4342231882141450946?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4342231882141450946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4342231882141450946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4342231882141450946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4342231882141450946'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/you-always-pay-for-quality.html' title='You ALWAYS Pay for Quality'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fhZACHRBLcQ/SXoGxHS5euI/AAAAAAAAAPI/Tda6yS4L_70/s72-c/AE7A1D38-26B7-4709-8A0E-69EDFFF0CAF8.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5222117373816943985</id><published>2009-01-22T15:50:00.002Z</published><updated>2009-01-22T15:52:27.985Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Presentation Skills</title><content type='html'>A few days ago I posted about how important it is to &lt;a href="http://www.eachan.com/2009/01/don-tell-plan-sell-plan.html"&gt;present ideas well&lt;/a&gt;, rather than hoping some budget and resources will be conjured up by the sheer strength of the idea alone.  I was going to write something about presentation skills in general, but given that last post, I'm going to tailor this slightly more towards doing proposals - and for most of us - proposals make up the majority of the presentations we do that really matter anyway.&lt;br /&gt;&lt;br /&gt;The thing to keep in mind about your proposal is your goal; you're not there to do a really great presentation, you're there to convert someone into a mad raving fan of your idea, and how you do that is going to depend on who you're dealing with.&lt;br /&gt;&lt;br /&gt;Step 1 for me is always start with the audience, as everything else flows from this.  It drives your content (which benefits you accentuate, which risks you focus on) your delivery method (maybe powerpoint slides in the boardroom is best, maybe a casual discussion over a coffee is sufficient), and even the duration you're going to talk for.&lt;br /&gt;&lt;br /&gt;Never simply have "your presentation on project X".  Instead, have "your presentation on project X for the architecture steering group", and "your presentation on project X for the accountants", and "your presentation on project X for the board" etc.  They're all going to want to see a different mixture of things before they get behind it.  With some of them, you might want budget, so you'll want to spend a slide on the concept, then spend the balance of the time breaking down cost and benefit over the next few years.  From others you might need their change control approval, so the commercials will be lightweight with much more detail about how your system will be deployed and how it will integrate with the rest of the enterprise.  You might even be displacing the roles of operational people through a tool you're driving forward, so these guys will want to know how new processes will change their tasks and you'll need to spend a fair bit of time addressing concerns about the team, their jobs, and training.&lt;br /&gt;&lt;br /&gt;That's all very good, but something people often ask me is how to handle mixed audiences - when you have to present your proposal to a collection of people in different roles.  My answer is - don't.  It might seem like a smart idea, get a large number of areas out of the way in one go, but it simply is not effective.  You cannot adequately address each persons individual focal points, and you risk convincing nobody.&lt;br /&gt;&lt;br /&gt;Granted, sometimes you don't have a choice, and if that's the situation you're in (and you can't get out of it) then keep it brief, simple, factual, and to the point.  But do have &lt;em&gt;all&lt;/em&gt; the detailed information right there with you - the same stuff you'd have if you were doing the customized versions for each individual -  and that way you'll be knowledgeable and organized should anyone wish to drill down into any of the areas they represent.  If you've been asked to do something for a  multidisciplinary audience like this, then chances are it's at some kind of regular session the participants have anyway, which means they'll have other business to discuss, which means you can't expect a long slot, which means your brevity will be appropriate.&lt;br /&gt;&lt;br /&gt;On the mechanics of presenting - and by mechanics I mean how to deliver slides - I will let &lt;a href="http://www.ted.com/index.php/talks/david_s_rose_on_pitching_to_vcs.html"&gt;David Rose tell the story for me&lt;/a&gt;.  It's worth watching the whole clip, but at the very least watch the last few minutes in which he covers slide design, stance and tone, and using presenter mode in powerpoint etc.  Second only to actually doing it yourself, watching great presenters in action is the best way to get better at it, so I'd recommend watching a few more &lt;a href="http://www.ted.com/"&gt;TED talks&lt;/a&gt; and &lt;em&gt;definitely&lt;/em&gt; subscribing to &lt;a href="http://www.presentationzen.com/"&gt;Presentation Zen&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When drawing up a slide deck to accompany a presentation (note that a deck of slides is &lt;em&gt;not&lt;/em&gt; your presentation) I think it's important to resist incorporating all the whizzy features powerpoint has to offer.  Animations, sounds effects, charts, and clever transitions are all entertaining, but they distract from your message.  Also, avoid complex, cluttered slides loaded with detail and don't, ever, just write a speech onto slides and read it out along with your audience.  Slides aren't cue cards, they're important material which backs up what you say, reinforces your message, and helps add impact to the story you're telling face to face.&lt;br /&gt;&lt;br /&gt;A couple of final points - firstly, when you're "considering your audience" and thinking about who you'll need to get onside with your idea, don't forgot about thought leaders.  It's usually easy to spot the people who will be directly affected by your plan, and decision makers tend to be obvious too, but so many neglect this final category.  By thought leaders, I mean people who might not have any official hierarchical power or authority to help you, but nonetheless they set opinion and exert an influence.  Getting these people onside with your plans will make adoption everywhere else much smoother.&lt;br /&gt;&lt;br /&gt;Last of all, don't overdo it.  You are kidding yourself if you don't believe you're selling when you're presenting a plan, but you must also be realistic and present a balanced view of whatever it is you're asking us for.  As executives, we know that there is no such thing as an idea with no downsides, and pitching that way will just make us suspicious.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5222117373816943985?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5222117373816943985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5222117373816943985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5222117373816943985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5222117373816943985'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/presentation-skills.html' title='Presentation Skills'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-7031936093744649015</id><published>2009-01-20T22:04:00.001Z</published><updated>2009-01-20T22:04:38.377Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Don't Tell the plan, Sell the plan</title><content type='html'>One of the top sources of frustration for engineers is not getting management buy-in for proposals that just &lt;em&gt;obviously&lt;/em&gt; need to be done.  And here's the kicker, if they really understood the business benefit of your ideas, then management would be frustrated about all the awesome stuff they've been missing out on (and in fact tend to be anyway, it's just that they don't realize that you could have &lt;em&gt;already&lt;/em&gt; solved them).  Well it doesn't have to be that way, and guess what, you are the ones that need to do something about it - not them.&lt;br /&gt;&lt;br /&gt;Just remember the title of this post - don't tell the plan, sell the plan.  As engineers, we come up with some pretty clever stuff.  We're up against hard problems and we deliver smart solutions.  Where we get unstuck is when we go about sharing these with the decision makers that we need to get behind them.&lt;br /&gt;&lt;br /&gt;As engineers, we tend to think that "selling" an idea somehow devalues it - sacrifices it's integrity - perhaps we think it is sneaky, cunning, or politically motivated to properly pitch something rather than just retell the facts behind it.  But believe me, for better or for worse, the things that actually end up getting done in organizations aren't the best ideas, they are the ideas that were &lt;em&gt;sold&lt;/em&gt; the best.&lt;br /&gt;&lt;br /&gt;Don't get me wrong - you still need that great idea, a solid business case, and a well thought through execution plan - it's just that those things alone rarely turn your proposal into a funded priority.&lt;br /&gt;&lt;br /&gt;On a personal note, back when I was an engineer I always told myself that I'd be different, however as my career moved towards decision maker, I found that I ended up pretty much doing the exact same thing.  It's not through any lack of technical knowledge or understanding of how a proposed system will work, it's simply that I do a different job now - and that job is to weigh up all the possible things we could do as a team, work out which ones will make us the most successful, and then not lose sleep over the rest.&lt;br /&gt;&lt;br /&gt;I bet you anything your boss does exactly the same thing - he's not an idiot that doesn't seem to trust you - he just wants to quickly understand the core concept, then make a judgement based on the real cost you want today vs the potential future return against a background of all the other things he might choose to do instead.  And you know what?  We don't need to know exactly how the older cached inserts will be invalidated in the remote nodes once a newer update is detected locally (or whatever) in order to make that decision - but if we ask you then you'd better know!&lt;br /&gt;&lt;br /&gt;Even if you look at it cynically - you have the best idea anyway right, so why not have the best &lt;em&gt;presented&lt;/em&gt; idea too?  If it really is the best proposal, then don't you owe it your organization to give it the best chance of becoming reality?  The only danger you'll face by being better at presenting your plans is that they're more likely to get done...&lt;br /&gt;&lt;br /&gt;So I hope I've convinced you that the &lt;em&gt;presentation&lt;/em&gt; of your ideas is as critical to their success as the ideas themselves, so the next most obvious question is how do you do it effectively?  I was planning to write something on doing presentations anyway, so come back in a few days and I'll tell you what I think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-7031936093744649015?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/7031936093744649015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=7031936093744649015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7031936093744649015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7031936093744649015'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/don-tell-plan-sell-plan.html' title='Don&amp;#39;t Tell the plan, Sell the plan'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5546270648873180101</id><published>2009-01-16T20:43:00.001Z</published><updated>2009-01-16T20:43:28.343Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>No Pain No Gain?</title><content type='html'>For the past couple of days I've been helping out a friend get a new team organized, and during our of discussions in their canteen, I overheard something that epitomizes the complexity-aholics that really drive me mental.&lt;br /&gt;&lt;br /&gt;A couple of data architects were talking about a consolidation project they were kicking off.  "Can you believe what they're doing in the Japanese office?  Their schema is so basic" one complained to the other.  "Yeah, they clearly don't know what they're doing" his colleague replied, "they should leave it up to us."  A couple more minutes of the same and I couldn't really let it go.&lt;br /&gt;&lt;br /&gt;Deep breath...&lt;br /&gt;&lt;br /&gt;Gathering up my most diplomatic tone, I asked the resident geniuses: "OK lads, if you're saying that they have a basic, simple solution which meets the business requirements, and you have a complex, difficult solution which meets the business requirements - then isn't it &lt;em&gt;you&lt;/em&gt; who have something to learn from &lt;em&gt;them&lt;/em&gt;?"&lt;br /&gt;&lt;br /&gt;You see this is why I don't have any friends.&lt;br /&gt;&lt;br /&gt;But seriously, what's the attraction to building big, creaky, behemoth solutions where something easy and elegant would meet everybody's expectations?  Why is it that we seem to derive satisfaction from making our lives hard?  Unless you're very lucky (lazy?), you'll have to troubleshoot, maintain, and support whatever you put in place.&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!172.entry"&gt;noticed before&lt;/a&gt; that good engineers can build vast systems with webs of dependencies and many moving parts, but it's the great engineers who realize that this is a bad idea.&lt;br /&gt;&lt;br /&gt;Outside of the gym, there are very few places in the world where you'll be better rewarded for increasing the effort necessary to achieve a given outcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5546270648873180101?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5546270648873180101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5546270648873180101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5546270648873180101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5546270648873180101'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/no-pain-no-gain.html' title='No Pain No Gain?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6514931905159780601</id><published>2009-01-13T21:28:00.002Z</published><updated>2009-01-13T21:29:30.881Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>The Parable of the Big Hands</title><content type='html'>This is an old story, retrieved from the dusty recesses of my memory, but it's as relevant today as it ever was.  Names changed to protect the incompetent...&lt;br /&gt;&lt;br /&gt;A number of years ago I was called in to help an integration company who had been struggling for a number of weeks with a manufacturing client.  They had delivered a factory automation system, introducing computer-controlled fabrication and handling machines, replacing the manually operated mechanical kind.  The project had been justified upon increased productivity and reduced material wastage - yet &lt;em&gt;reduced&lt;/em&gt; productivity and &lt;em&gt;increased&lt;/em&gt; metal wastage were being observed.  Not really the results anyone was hoping for, customers blaming the vendor, vendor blaming the users etc.&lt;br /&gt;&lt;br /&gt;My job was to "troubleshoot the new software" and "find the bugs" before the manufacturing company started firing live ammo.&lt;br /&gt;&lt;br /&gt;Step 1 was to get a coherent problem statement.  It seemed that in the vendor's lab everything went according to plan - sheet metal machines could be reconfigured in tens of seconds via a new software load - yet at the factory it was taking minutes and materials were frequently being cut to the wrong dimensions.&lt;br /&gt;&lt;br /&gt;So what was different between the factory and the lab?  I was assured that there was no differences at all - machines had been swapped, the exact same builds had been uploaded to the machines at both sites, error logs had been downloaded etc.  But clearly there was a difference, otherwise it would be working (or broken) in both places.&lt;br /&gt;&lt;br /&gt;I figured there must be something environmental - how else could the exact same machine, software, and configuration work perfectly in one location and not another.  "So, tell me about this factory" I asked.  "Never been there" was the answer (believe it or not).  Ah-ha!&lt;br /&gt;&lt;br /&gt;So off we go to the warehouse/factory thingy.  We never even got through the tour of the floor before we made the critical observation - these metalworking dudes have &lt;em&gt;really big hands&lt;/em&gt;!  If your job consists of throwing around huge blocks of steel, cranking big heavy leavers, and turning giant bolts, then you soon develop a pair of mitts like shovels.&lt;br /&gt;&lt;br /&gt;Why was this important?  Quite simple.  The keys on the small numpad-type keyboard that had been specially made for entering the program parameters on each machine were a standard keyboard size, and were therefore simply far too small for the bunch-of-bannans fingers of the guys that had to use it.  These guys are hardcore welders and whatnot, they don't have our delicate little programmer hands!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh3.ggpht.com/_fhZACHRBLcQ/SW0CNgqn-qI/AAAAAAAAAPE/IDIgHRdZpjU/5108FBFD-236C-4066-9125-DB8006F0E313.jpg?imgmax=800" alt="5108FBFD-236C-4066-9125-DB8006F0E313.jpg" border="0" width="269" height="392" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;So what's the lesson here?  &lt;strong&gt;Know Your Users&lt;/strong&gt;.  It's as simple as that.  You have no business even touching a keyboard (of any size) until you know who your users are, where they work, how they'll interact with the system, and what successful use is.  Remember - you're not building the software for yourself or your business analysts, you're building the software for &lt;em&gt;them&lt;/em&gt;.  Get to know them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6514931905159780601?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6514931905159780601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6514931905159780601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6514931905159780601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6514931905159780601'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/parable-of-big-hands.html' title='The Parable of the Big Hands'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_fhZACHRBLcQ/SW0CNgqn-qI/AAAAAAAAAPE/IDIgHRdZpjU/s72-c/5108FBFD-236C-4066-9125-DB8006F0E313.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8574220299159328524</id><published>2009-01-11T09:27:00.001Z</published><updated>2009-01-11T09:27:00.972Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Making Decisions</title><content type='html'>I thought I'd start with this as my first 'proper' post of the year, mainly because decision making isn't usually considered a skill in it's own right, despite being deceptively simple and so commonly done poorly.&lt;br /&gt;&lt;br /&gt;Making a decision isn't a stand alone task, when you make one, you really do a small collection of things together.  You make choice from some options, you make a plan and delegate it, and then you follow up and review.  Most people think that once they've picked their option they're done, but like Drucker says, you haven't made a decision until you have an action plan - you've only made a choice.&lt;br /&gt;&lt;br /&gt;So let's talk a little more about effective choosing, as that's the first hurdle to trip over.  The behaviors you want to avoid here are essentially procrastination.  How many times have you been staring an obvious course of action in the face (or been presented with a fantastic opportunity) but instead of making progress, you're taking bets on which is growing faster - your number of choices or the list of data points people want to see for each one!  You have to reduce your number of options to a manageable amount (3 is a magic number if you're stuck for inspiration), and while you should never ignore great last minute ideas just for the sake of rules, most business don't fully appreciate the cost of inaction.  The point marked "doing anything is better than nothing" creeps up a lot quicker than you think.&lt;br /&gt;&lt;br /&gt;The next thing you have to worry about is the ballooning amount of information on each of your choices.  Too many and you risk it being treated like a smorgasbord (can we have &lt;em&gt;this&lt;/em&gt; from option A, and &lt;em&gt;that&lt;/em&gt; from option B) or being paralyzed by the sheer volume of statistics and technicalities.  Try removing things that are the same for all choices - for example, if A, B, and C are all similarly expensive, why compare cost?  And how about things you don't feel strongly about?  I don't know how many times I've seen stakeholders agonize over details like the difference in reusability between 2 choices in a decision, and then when asked where else they plan to use the technology, answer "nowhere".  If it's an attribute you don't feel strongly about, then it's unlikely to influence your decision, so why clutter the process with it?&lt;br /&gt;&lt;br /&gt;We've talked a lot about paring things down, and now here's something to add in.  Don't forget that for every choice you're comparing you need to know what you &lt;em&gt;don't&lt;/em&gt; get if you &lt;em&gt;don't&lt;/em&gt; pick it.  Most people are generally pretty good at stacking up the costs and benefits, but opportunity cost is often neglected.&lt;br /&gt;&lt;br /&gt;Hurdle number 2 is action plans and delegation - the behavior you want to avoid here are those deja vu meetings where you all sit around and 'review' the decisions you made, wonder at the lack of progress and then agree to 'update next week' all over again.  Once you've made your choice, don't let yourself off the hook until you've agreed &lt;em&gt;who&lt;/em&gt; is actually going to do the work, and by &lt;em&gt;when&lt;/em&gt;.  Follow the usual rules on delegation - make sure whoever you're going to hold accountable clearly understands their obligations, is empowered to do the work, and has the available resources.&lt;br /&gt;&lt;br /&gt;Don't forget to follow up.  You spend your time on the things that are important to you, and you're not making unimportant decisions, are you?  The things that you focus on will get done -  keep track of what's happening, make major milestones public, and use your sponsorship to see it through.  And once whatever it is has been delivered (or has crashed and burned), you're still not quite finished.  Now comes the feedback loop - what did you learn?  How can the experience improve the rest of the organization?  What pitfalls can you now help others avoid?&lt;br /&gt;&lt;br /&gt;And finally, you shouldn't be afraid to revisit your decisions and change your mind.  You should be keeping an eye on your customers, your portfolio, and your team, and continually assessing what any changing circumstances may mean for you.  That said, you must resist being flighty as you need to show commitment, but keep in mind that "because we said we would" isn't a business benefit to completing a project - it's a sleepwalker's justification for not being in touch with the market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8574220299159328524?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8574220299159328524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8574220299159328524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8574220299159328524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8574220299159328524'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/making-decisions.html' title='Making Decisions'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6997208187234893937</id><published>2009-01-10T09:22:00.000Z</published><updated>2009-01-10T09:22:00.811Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Welcome to 2009</title><content type='html'>It's been 2009 for a little under 2 weeks now, and so far I can confidently say it will continue to be for around another 50 weeks or so.  OK - I accept that's not my A material - moving swiftly on...&lt;br /&gt;&lt;br /&gt;At this time of year it's customary to make a few new year's resolutions - fresh commitments you somehow feel renewed fervor towards keeping just because we incremented the year counter by 1 - and they almost always involve gym memberships.&lt;br /&gt;&lt;br /&gt;If I take a brief look back at &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!159.entry"&gt;last year's resolutions&lt;/a&gt; I think I can safely say I hit my top priorities, but just as predicted, the exercise part seems to have slipped through the cracks.  No matter, that's what these annual counter-flips are for, getting invigorated about your health for 30 days or so.&lt;br /&gt;&lt;br /&gt;I'm always interested in hearing from people out there in the technical community for any reason, and from time to time I am lucky enough to receive some feedback on my posts (thanks by the way!).  Over the last 12 months the articles that have generated the most interest have been on management, dealing with people, and being effective in organizations.  It seems like you want to hear more about &lt;em&gt;getting things done around technology&lt;/em&gt; than about the technology itself.  Well there's some resolution input right there...&lt;br /&gt;&lt;br /&gt;This year I'm going to try changing the balance of the content I write, aiming for a higher ratio on project management and professional disciplines without completely dropping the things I like to bring up on architecture and computer science.  After all, a hundred little things happen every day, and it's just a matter of being a bit more selective about what's captured and shared.&lt;br /&gt;&lt;br /&gt;So yeah, welcome to 2009, you can make it whatever you what you want it to be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6997208187234893937?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6997208187234893937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6997208187234893937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6997208187234893937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6997208187234893937'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2009/01/welcome-to-2009.html' title='Welcome to 2009'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6485960784741826059</id><published>2008-12-22T10:36:00.001Z</published><updated>2008-12-22T10:36:13.840Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Christmas, Ad Rev, and Charity</title><content type='html'>It's nearly Christmas (again!) and I hope you're &lt;em&gt;way&lt;/em&gt; too busy enjoying the best this season has to offer to be reading this!  With any luck, the systems and people you look after will all be humming along just fine, leaving you able to spend plenty of time with family and friends.&lt;br /&gt;&lt;br /&gt;At times like this, it can be easy to forget that there are a lot of people out there who don't have it as sweet as we do.  Where running water is a luxury, we'd find it difficult getting sympathy for our lengthy outstanding bugs list or early morning release woes!&lt;br /&gt;&lt;br /&gt;I'm no Bono, but I like to &lt;a href="http://www.eachan.com/2008/05/do-some-good.html"&gt;contribute somehow&lt;/a&gt; whenever I come across a cause I believe in, but doing something specifically at this time of year has the extra bonus of reminding you of exactly how lucky you are during what can be a time of excesses.&lt;br /&gt;&lt;br /&gt;Now, this blog has always been about the free exchange of ideas - a place where I can capture my original thoughts and experiences from the work I do, in the hope that it will help others with the work that they do.  Whatever else it is, it's never been a money making exercise - and that's why I've never before tried to monetize the content, despite a growing readership (hello to both of you).&lt;br /&gt;&lt;br /&gt;However, as of today, keener-eyed observers will notice a Google Ads box lurking surreptitiously in the right hand panel, ready to corrupt my benevolent posts with it's raw, unbridled, marketing vivacity.  But don't worry - I haven't sold out yet!  Here is the plan...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I'll run Google AdSense for the coming year, and around this time next year, donate all the revenue to charity.  Every cent, and a moderate top up from myself.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It is impractical to pick a charity 12 months ahead, but the money will be donated via &lt;a href="http://www.globalgiving.co.uk/"&gt;Global Giving&lt;/a&gt; or &lt;a href="http://www.justgiving.com/"&gt;Just Giving&lt;/a&gt; (or maybe both) so that you can keep me honest.  I'm thinking about supporting something which helps to establish education in 3rd world countries - that appeals to my "help those who are prepared to help themselves" philosophy - but will take suggestions from the community.&lt;br /&gt;&lt;br /&gt;As well as cheques being posted next December, you can expect a running total, say, quarterly - and heck, if things go &lt;em&gt;really&lt;/em&gt; well maybe we'll have a mid-year checkpoint and make a donation then too.&lt;br /&gt;&lt;br /&gt;So, Merry Christmas and all the best for 2009, and remember, if you see something that interests you on the right hand side then give it a click - it's for a good cause!&lt;br /&gt;&lt;br /&gt;See you next year&lt;br /&gt;Eachan&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6485960784741826059?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6485960784741826059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6485960784741826059' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6485960784741826059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6485960784741826059'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/christmas-ad-rev-and-charity.html' title='Christmas, Ad Rev, and Charity'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1624560271935860402</id><published>2008-12-21T14:40:00.000Z</published><updated>2008-12-21T14:40:00.488Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>When is the right time to launch?</title><content type='html'>Ignoring commercial concerns such as marketing campaigns, complimentary events, and market conditions, this essentially comes down to weighing the quality/completeness of the product against getting to market sooner.&lt;br /&gt;&lt;br /&gt;The quality over time to market side has been advocated a few times in recent episodes of &lt;a href="http://www.boagworld.com/"&gt;Paul Boag's podcast&lt;/a&gt;, so I figured I would speak up for the other side.  But before I do, let me just say that I don't think there is a right answer to this and, as Paul also conceded, it depends on if your application's success requires a land grab or not.&lt;br /&gt;&lt;br /&gt;I am, by nature, an "early and often" man - and that's &lt;em&gt;kind of&lt;/em&gt; a vote for time to market over quality.  I say &lt;em&gt;kind of&lt;/em&gt; because I think it would be more accurate to say that it's a vote for time to market over &lt;em&gt;perfection&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;For me, the "often" part is inextricable linked to the "early" part.  If you can show a pattern of frequent, regular improvement and feature releases, then you can afford to ship with less on day one.  Users can often be more forgiving when see things turned around quickly, and new things regularly appearing can even become a reason in itself to return to the site more often.&lt;br /&gt;&lt;br /&gt;Quality is still a factor, but it isn't as black and white as I've been hearing it presented.  In the early days of a new product, I think &lt;em&gt;where&lt;/em&gt; you spend your time is more important than overall quality.  You should be very confident in anything that deals with accounts, real money, or the custody of user's data before shipping.  I would argue that getting those areas right for launch at the expense of other parts of the system is better than a more even systemwide standard of quality.  You always have limited resources.  Spend the most where it counts the most.&lt;br /&gt;&lt;br /&gt;And finally, openness.  Be truthful and transparent with your users.  Start a blog about development progress and the issues you've run into.  Provide feedback mechanisms, and actually get back to people who've taken the time to share their thoughts - with something material too, not just an automated thankyou.  Send out proactive notifications ahead of impactful changes and after unplanned events.  Stick 'beta' labels on things you're shipping early - it'll keep user's blood pressure down, and you might be surprised by how much of the community is prepared to help.&lt;br /&gt;&lt;br /&gt;I am aware that I haven't actually answered the question that lends this post its title.  I don't know if there even is an off-the-shelf answer, but I hope that I've at least given you some more ideas on how to make the right decision for yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1624560271935860402?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1624560271935860402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1624560271935860402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1624560271935860402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1624560271935860402'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/when-is-right-time-to-launch.html' title='When is the right time to launch?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-9073774171380893852</id><published>2008-12-19T16:54:00.001Z</published><updated>2008-12-19T16:54:12.041Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Constraints and Creativity</title><content type='html'>Does the greatest creativity come from unlimited choice; a totally blank canvas with every possible option and no restrictions, or from difficult circumstances; where pressure is high, the problems are acute and all the easy avenues are closed?&lt;br /&gt;&lt;br /&gt;History has proven necessity to be the mother of invention time and time again, and I've personally seen a lot of otherwise-excellent people become paralyzed when faced with too much opportunity.&lt;br /&gt;&lt;br /&gt;The current economic circumstances are bringing this into somewhat sharp relief.  From time to time I get approached by other entrepreneurs with an idea they want to develop - usually only a couple of times a year, but in the last couple of quarters I've seen half a dozen.  There is something about this credit crunch...&lt;br /&gt;&lt;br /&gt;Conditions are right for the sorts of things I've seen; internet based, self-service, person to person applications that look for efficiency by cutting out middlemen and using smarter fulfillment.  They're &lt;em&gt;all&lt;/em&gt; great ideas and I &lt;em&gt;really&lt;/em&gt; wish I had the time to help them all out.&lt;br /&gt;&lt;br /&gt;Returning to the point, would you get this kind thinking in times of plenty?  Who knows, maybe something good will come out of this credit crunch after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-9073774171380893852?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/9073774171380893852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=9073774171380893852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/9073774171380893852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/9073774171380893852'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/constraints-and-creativity.html' title='Constraints and Creativity'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5926801986088356722</id><published>2008-12-17T12:44:00.001Z</published><updated>2008-12-19T14:32:20.610Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Tradeoffs - You're Doing It Wrong</title><content type='html'>Our time is always our scarcest resource, and most of the web companies I know are perpetually bristling with more ideas than they could ever manage to ship.  We always wish we could do them all, but at the same time we know deep down that it isn't realistic.  Under these circumstances, tradeoffs are an inevitable and perfectly normal part of life.&lt;br /&gt;&lt;br /&gt;The secret to doing this well is in what things you weigh against each other when deciding how to spend the resources you have.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh4.ggpht.com/_fhZACHRBLcQ/SUPUxAtwfAI/AAAAAAAAAOo/hBHvWo8ZHf4/decision.jpg?imgmax=800" alt="decision.jpg" border="0" width="400" height="250" /&gt;&lt;/div&gt;&lt;br /&gt;It's so easy to start down the slippery slope of trading features off against the underlying technologies that support them.  Fall into this trap and you'll get a small surge of customer-facing things out quickly, but stay with the pattern (easy to do - as it does reward you well in the short term) and you'll soon find yourself paralyzed by technical debt; struggling against continuously increasing time to market and building on top of a shaky, unreliable platform.&lt;br /&gt;&lt;br /&gt;Instead, try trading off a feature &lt;em&gt;and&lt;/em&gt; it's supporting technology against &lt;em&gt;another&lt;/em&gt; feature and it's supporting technology.  This isn't a carte blanche ticket for building hopelessly over-provisioned systems - it's simply about setting yourself up in the most appropriate way for future requirements and scalability, rather than foregoing whatever platform work that would have been diligent and starting off behind the curve.&lt;br /&gt;&lt;br /&gt;Trading features off against their underlying technology is not just short sighted, it's also unrealistic.  You see, the fact is that all customer-facing features have to be maintained and supported anyway, no matter how badly we wish we could spend the time on other things.  And right up front, when we first build each feature, we have the most control we're ever going to have over how difficult and expensive that's going to be for us.&lt;br /&gt;&lt;br /&gt;This is a philosophy that &lt;em&gt;has&lt;/em&gt; to make it all the way back to the start of the decision making process.  When considering options, knowing the true cost of ownership is as vital as the revenue opportunity and the launch cost.  Remember - you build something once, but you maintain it for life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5926801986088356722?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5926801986088356722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5926801986088356722' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5926801986088356722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5926801986088356722'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/tradeoffs-you-doing-it-wrong.html' title='Tradeoffs - You&amp;#39;re Doing It Wrong'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fhZACHRBLcQ/SUPUxAtwfAI/AAAAAAAAAOo/hBHvWo8ZHf4/s72-c/decision.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8992083571116463255</id><published>2008-12-13T13:24:00.001Z</published><updated>2008-12-13T13:24:53.746Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><title type='text'>Failure Modes</title><content type='html'>Whenever we're building a product, we've got to keep in mind what might go wrong, rather than just catering mindlessly to the functional spec.  That's because specifications are largely written for &lt;a href="http://www.eachan.com/2008/10/fail-more-neo.html"&gt;a parallel universe where everything goes as planned&lt;/a&gt; and nothing ever breaks; while we must write software that runs right here in this universe, with all it's unpredictability, unintended consequences, and poorly behaved users.&lt;br /&gt;&lt;br /&gt;Oh and &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!143.entry"&gt;as I've said in the past&lt;/a&gt;, if you have a business owner that actually specs for failure modes, kiss them passionately now and never let them go.  But for the rest of us, maybe it would help us keep failure modes in the forefront of our minds as we worked if we came up with some simplified categories to keep track of.  How about internal, external, and human?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Internal&lt;/strong&gt;&lt;br /&gt;I'm not going to say too much about internal failure modes, because they are both the most commonly considered types and they have the most existing solutions out there.&lt;br /&gt;&lt;br /&gt;You could sum up internal failures by imagining your code operating autonomously in a closed environment.  What might go wrong?  You are essentially catering for quality here, and we have all sorts of test environments and unit tests to combat defects we might accidentally introduce through our own artifacts.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;External&lt;/strong&gt;&lt;br /&gt;The key difference between external and internal failure modes is precisely what I said above - you are &lt;em&gt;imagining&lt;/em&gt; that your code is operating in perfect isolation.  If you are reading this, then I sincerely hope you rolled your eyes at that thought.&lt;br /&gt;&lt;br /&gt;Let's assume that integration is part of internal, and we only start talking external forces when our product is out there running online.  What might go wrong?&lt;br /&gt;&lt;br /&gt;Occasionally I meet teams that are pretty good detecting and reacting to external failures and it pleases me greatly.  Let's consider some examples; what if an external price list that your system refers to goes down?  How about if a service intended to validate addresses becomes a black hole?  What if you lose your entire internet connection?&lt;br /&gt;&lt;br /&gt;Those examples are all about blackouts - total and obvious removal of service - so things are conspicuous by their absence.  For bonus points, how are you at spotting brownouts?  That's when things are 'up' but still broken in a very critical way, and the results can sometimes cost you far more than a blackout, as they can go undetected for a while...&lt;br /&gt;&lt;br /&gt;Easy example - you subscribe to a feed for up-to-the-minute foreign exchange rates.  For performance reasons, you probably store the most recent values for each currency you use in a cache or database, and read it from there per transaction.  What happens if you stop receiving the feed?  You could keep transacting for a very long time before you notice, and you will have either disadvantaged yourself or your customers by using out of date rates - neither of which is desirable.&lt;br /&gt;&lt;br /&gt;Perhaps the feed didn't even stop.  Perhaps the schema changed, in which case you'd still see a regular drop of data if you were monitoring the consuming interface, but you'd have unusable data - or worse - be inserting the wrong values against each currency.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Human&lt;/strong&gt;&lt;br /&gt;Human failure modes are the least catered for in our profession, regardless of the fact they're just as inevitable and just as expensive.  You could argue that 'human' is just another type of external failure, but I consider it fundamentally different due to one simple word - "oops".&lt;br /&gt;&lt;br /&gt;To err is human and all that junk.  We do stuff like set parameters incorrectly, turn off the wrong server, pull out the wrong disk, plug in the wrong cable, ignore system requirements etc - all with the best of intentions.&lt;br /&gt;&lt;br /&gt;So what would happen if, say, a live application server is misconfigured to use a development database and then you unknowingly unleash real users upon it?  You could spend a very long time troubleshooting it, or worse still it might actually work - and thinking about brownouts - how long will it be before you noticed?  For users who'd attached to that node, where will all their changes be, and how will you merge that back into the 'real' live data?&lt;br /&gt;&lt;br /&gt;Humans can also accidentally &lt;em&gt;not&lt;/em&gt; do things which have consequences for our system too.  Consider our feed example - perhaps we just forgot to renew the subscription, and so we're getting stale or no data even though the system has done everything it was designed to do.  Hang on, who was in charge of updating those SSL certificates?&lt;br /&gt;&lt;br /&gt;Perhaps we don't think about maintenance mistakes up front because whenever we build something, we always picture ourselves performing the operational tasks.  And to us, the steps are obvious and we're performing them, in a simplified world in our heads, without any other distractions competing for our attention.  Again - not real life.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;And so...&lt;/strong&gt;&lt;br /&gt;All of these things can be monitored, tested for, and caught.  In our forex example, you might check the age of the data every time you read the exchange rate value in preparation for a transaction, and fail it if it exceeds a certain threshold (or just watch the age in a separate process).&lt;br /&gt;&lt;br /&gt;In our live server with test data example, you might mandate that systems and data sources state what mode they're in (test, live, demo, etc) in their connection string - better yet generate an alert if there is a state mismatch in the stack (or segment your network so communication is not possible).&lt;br /&gt;&lt;br /&gt;The question isn't are there solutions; the question is &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!180.entry"&gt;how far is far enough&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;As long as you think about failure modes in whatever way works for you, and make a pragmatic judgement on each risk using likelihood and impact to determine how many monitors and fail-safes it's worth building in, then you'll have done your job significantly better than the vast majority of engineers out there - and your customers will thank you for it with their business.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8992083571116463255?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8992083571116463255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8992083571116463255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8992083571116463255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8992083571116463255'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/failure-modes.html' title='Failure Modes'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-5435102757516002928</id><published>2008-12-02T21:36:00.001Z</published><updated>2008-12-02T21:43:09.460Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Speed is in the Eye of the Beholder</title><content type='html'>Yesterday I was coming through Heathrow again, and while I was waiting for my luggage to surprise me by actually turning up, I was ruminating on performance, user experience, and the iris scanner (&lt;a href="http://news.bbc.co.uk/2/hi/uk_news/england/london/4792206.stm"&gt;old BBC link&lt;/a&gt;).  For those who haven't had the pleasure, we're talking about a biometric border security system based on the unique patterns in an individual's eye, implemented at certain UK borders as an optional alternative to traverse passport security in a self-service way.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh3.ggpht.com/_fhZACHRBLcQ/STWbbFjNZZI/AAAAAAAAAOM/YcK5egWwKLg/2B5E815C-63E0-4921-B5B4-C3F979924E23.jpg?imgmax=800" alt="2B5E815C-63E0-4921-B5B4-C3F979924E23.jpg" border="0" width="401" height="182" /&gt;&lt;/div&gt;&lt;br /&gt;Flying internationally at least once a month for the last couple of years, I've been a regular user of the iris scanner since it's early trials.  Like all new technology, it went through a period of unreliability and rapid change in its early days, but its been pretty good for a while now.  Step into booth.  Have picture of eyes taken.  Enter the UK.  Awesome.&lt;br /&gt;&lt;br /&gt;The only problem is that...&lt;br /&gt;It...&lt;br /&gt;Is...&lt;br /&gt;Just...&lt;br /&gt;Too...&lt;br /&gt;Slow...&lt;br /&gt;&lt;br /&gt;Don't get me wrong - you don't have to queue up for it (yet) and you do spend less time overall at the border - it's just that, for a high tech biometric solution, it seems to take an awful long time to look me up once it snaps what it considers to be a usable image of my retinas.  You know, in real time it isn't even that expensive -  probably an average of about 5 or 6 seconds - but it's just long enough for you to want to keep moving, hesitate, grumble to yourself, briefly wonder if it's broken, and then the gates open up.&lt;br /&gt;&lt;br /&gt;It occurred to me that maybe my expectations as a user were perhaps unfair, but then quick as a flash I realized - hey, &lt;em&gt;I'm&lt;/em&gt; the user here, so don't &lt;em&gt;I&lt;/em&gt; set the standard?&lt;br /&gt;&lt;br /&gt;So that's when I started to think about how the performance of this system could be improved, and caught myself falling straight into rookie trap number 1:&lt;br /&gt;&lt;br /&gt;I started making assumptions about the implementation and thinking about what solutions could be put in place.  I figured there must be some processing time incurred when the retinal image is captured as the machine picks out the patterns in my eyes.  That's a local CPU power constraint.  Once my retinal patterns are converted into a machine-readable representation, there must be some kind of DB lookup to find a match.  Once I've been uniquely identified, I imagine there will be some other data sources to be consulted - checking against the various lists we use to keep terrorists and whatnot at bay.&lt;br /&gt;&lt;br /&gt;Well this all sounds very read intensive, so it's a good case for having lots of local replicas (the iris machines are spread out over a number of terminals).  Each unique 'eye print' is rarely going to come through more often than days or weeks apart, so most forms of request caching won't help us much with that.  Of course there is also write load - we've got to keep track of who crossed the border when and what the result was - but we can delay those without much penalty, as it is the reads that keep us standing in that booth.  Maybe we could even periodically import our border security lists to a local service if we observe a significant network cost in checking against them for each individual scanned through the gate (assuming they are currently maintained remotely by other agencies).&lt;br /&gt;&lt;br /&gt;Ignoring the fact that I'm making all sorts of horrible guesses about how this system currently works, these seem like reasonably sensible patterns to me, so what's the rookie trap?&lt;br /&gt;&lt;br /&gt;Simply that I didn't start by understanding the basic problem I am trying to solve, instead rolling up my sleeves and diving straight into the technical complexities.  In doing so, I might have overlooked a plain, simple solution and that's usually bad - why solve a problem in a complex, expensive way when a simple, cheap way will do just as well?&lt;br /&gt;&lt;br /&gt;In this example, the problem is not that 5 seconds is an unacceptable time to process the image, compare the data against the registered users, and then pass all the additional border security checks - the problem is that &lt;em&gt;5 seconds feels like a long time when you're standing in a glass box waiting for it all to happen&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;So what else might we have done instead of a major re-architecture of the iris back end?  How about just lengthening the booth to form slightly more of a corridor, with the scanner at one end and the gates at the other?  With this simple trick, it still takes 5 seconds before the gates can open, but it doesn't &lt;em&gt;feel&lt;/em&gt; like it - you haven't been standing still waiting, there is a sensation of progress.&lt;br /&gt;&lt;br /&gt;Same level of system performance, very different user experience.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;General engineering lesson 1&lt;/strong&gt; - customer experience is king.  Monitoring and other data driven metrics are important, but how it &lt;em&gt;really&lt;/em&gt; looks and feels to your users matters way more than whatever you can prove with data.  They'll judge you by their own experiences of your system, not by your reports.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;General engineering lesson 2&lt;/strong&gt; - you don't have to solve every problem.  Sometimes it's better/cheaper/faster to neutralize or work around the issue instead.  You might not be able to build a different floor layout, but you can do things like transfer data in the background (not locking out the UI) and show progress 'holding' pages during long searches etc.&lt;br /&gt;&lt;br /&gt;Oh and just for the record, I really have no idea how the back end of the iris system works - you are &lt;em&gt;supposed&lt;/em&gt; to be seeing the analogy here...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-5435102757516002928?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/5435102757516002928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=5435102757516002928' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5435102757516002928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/5435102757516002928'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/speed-and-eye-of-beholder.html' title='Speed is in the Eye of the Beholder'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_fhZACHRBLcQ/STWbbFjNZZI/AAAAAAAAAOM/YcK5egWwKLg/s72-c/2B5E815C-63E0-4921-B5B4-C3F979924E23.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2222461336745736404</id><published>2008-12-01T08:21:00.000Z</published><updated>2008-12-01T08:21:01.031Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Change Control</title><content type='html'>With another December rolling around already, we head into that risky territory that we must navigate once a year - seasonal trading for many companies is picking up, yet now is the time when most support staff are trying as hard as possible to be on holiday.  A tricky predicament - and what better time to talk about change control?&lt;br /&gt;&lt;br /&gt;A lot of people - particularly fellow agilists - regard change control as a pointless, work-creationist, bureaucratic impediment to doing actual work.  If it's irresponsibly applied, then I'd have to agree with them, but there are ways to implement change control that will add value to what you do without progress grinding to a halt amid kilometers of red tape.&lt;br /&gt;&lt;br /&gt;Firstly, let's talk about why we'd bother in the first place.  What's in it for us, and what's in it for the organization, to have some form of change control in place?  Talking about it from this perspective (i.e. what we want to get out of it) means that whatever you do for change control is much more likely to deliver the benefits - because you have a goal in mind.&lt;br /&gt;&lt;br /&gt;Here's what I look for in a change control process:&lt;br /&gt;•	The discipline of documenting a plan, even in rough steps, forces people to think through what they're doing and can uncover gotchas before they bite.&lt;br /&gt;•	Making the proposed change visible to other teams exposes any dependencies and technical/resource conflicts with parallel work.&lt;br /&gt;•	Making the proposed changes visible to the business makes sure the true impact to customers is taken into consideration and appropriate communication planned.&lt;br /&gt;•	Keeping simple records (such as plan vs actual steps taken) can contribute significantly to knowledge bases about the system and how to own it.&lt;br /&gt;•	Capturing basic information about the proposed change and circulating it to stakeholders makes sure balanced risk assessments are made when we need to decide when and how to implement something, and how much to spend on mitigations.&lt;br /&gt;&lt;br /&gt;Ultimately, this all adds up to confidence in the activities the team are undertaking, and over time, will lead to less late nights and less reactive work.&lt;br /&gt;&lt;br /&gt;And here are my rules of thumb for how change control should be implemented:&lt;br /&gt;•	Never let any process get in the way of doing the bloody obvious.  If someone's on fire, you don't go and get the first aid manual and look up 'F' for fire.&lt;br /&gt;•	Change control can be granular, with stricter controls on more critical elements (like settlements), and a more flexible approach on lower impact or easier to restore elements (like content and feeds).&lt;br /&gt;•	Don't just take a off the shelf or copy another organization verbatim - this is the kind of thing that got change control the reputation it has - think about what &lt;em&gt;you&lt;/em&gt; need and do something appropriate.&lt;br /&gt;•	Start small and grow up - it's easy to add more diligence where it proves necessary, but much more difficult to relax controls on areas where progress is pointlessly restricted.&lt;br /&gt;&lt;br /&gt;So what do you &lt;em&gt;actually&lt;/em&gt; do?  As I said above, start off lightweight and cheap - a spreadsheet should do it, there isn't always the need for a huge workflow management database.  Make a simple template and make sure you circulate it the way information is best disseminated in your organization (email, intranet, pinned on the wall - whatever gets it seen).  Borrow ideas from your industry peers, but keep in mind the outcomes that best serve your circumstances.  Most of all, identify the right stakeholders for each area of the system, appreciate the different requirements the applications under your stewardship have, and get into the habit of weighting risk and thinking before you act.&lt;br /&gt;&lt;br /&gt;Here's to peace of mind - let's spend December at christmas parties, not postmortems!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2222461336745736404?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2222461336745736404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2222461336745736404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2222461336745736404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2222461336745736404'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/12/change-control.html' title='Change Control'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2583858367025931157</id><published>2008-11-21T09:40:00.001Z</published><updated>2008-11-21T09:41:59.936Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Root Cause Analysis</title><content type='html'>To help me kill some time at an airport (which seems to be my second job these days), let me reach into my wardrobe of soap-box issues and pick something out.  Ah, root cause analysis, here we go.&lt;br /&gt;&lt;br /&gt;In my opinion, proper root cause analysis is the &lt;em&gt;most&lt;/em&gt; important part of any operational support process.&lt;br /&gt;&lt;br /&gt;Having a professional, predictable response and the skills to restore service quickly are critical - but you have to ensure that your support processes don't stop there.  If they do, then you're simply doomed to let history repeat itself, and this means more downtime, more reactive firefighting, and less satisfied customers.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh6.ggpht.com/_fhZACHRBLcQ/SSaB4t11V6I/AAAAAAAAAOI/fPZHXL4ra3Y/ambulance.jpg?imgmax=800" alt="ambulance.jpg" border="0" width="200" height="196" /&gt;&lt;/div&gt;&lt;br /&gt;Good root cause analysis takes into account the entire event - systemwide conditions, the teams response, the available data, the policies applied - not just the technical issue which triggered the fault, and looks for ways to reduce the likelihood of recurrence.&lt;br /&gt;&lt;br /&gt;Doing root cause analysis properly can be expensive, because you don't need to get to the bottom of why it happened &lt;em&gt;this time&lt;/em&gt;, it's &lt;em&gt;why it keeps happening&lt;/em&gt;, and &lt;em&gt;why the system was susceptible to the issue in the first place&lt;/em&gt; that you need to uncover to really add future value.  Think of the time spent on it as an investment in availability, freeing up your team to work more strategically (as well as enjoy their jobs more), and happier users (which oddly seems to make happier engineers).&lt;br /&gt;&lt;br /&gt;But what you learn by doing this isn't really worth the time you spend on it without the organizational discipline to follow up with real changes.  If you're truly tracing issues back to their root, you'd be surprised how many are the result of a chain of events that could stretch right back to the earliest phases in projects.  This needs commitment.&lt;br /&gt;&lt;br /&gt;If you make money out of responding to problems then you'll probably want to ignore my advice.  There is a whole industry of IT suppliers whose core business lives here, and while it's an admirable pursuit, don't take the habit with you when you join an internal team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2583858367025931157?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2583858367025931157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2583858367025931157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2583858367025931157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2583858367025931157'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/11/root-cause-analysis.html' title='Root Cause Analysis'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_fhZACHRBLcQ/SSaB4t11V6I/AAAAAAAAAOI/fPZHXL4ra3Y/s72-c/ambulance.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3431097603522173580</id><published>2008-11-19T18:11:00.001Z</published><updated>2008-11-19T18:11:53.370Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>The Confidence-o-Meter</title><content type='html'>A while back we had a project that just seemed destined to face every type of adversity right from the outset (we've all had at least one).  Being a new line of business for us, we didn't even have a customer team when work needed to begin!  It was going downhill, and with strict regulatory deadlines to meet, we needed to get it back on track.  Additional complications arose because the team was new, and as such were still gelling together as they tackled the work.  Let's throw in an unusually high dosage of the usual incomplete specifications, changing requirements, and unclear ownership that regularly plague software projects and you have a recipe for a pretty epic train smash.&lt;br /&gt;&lt;br /&gt;They say necessity is the mother of invention (Plato?) and there was certainly no shortage of necessity here, so we got on with some serious invention.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We needed a way to bring the issues out in the open, in a way that a newly forming team can take ownership of them without accusation and defensiveness creeping in.  More urgently still, we had conflicting views on the status of each of the workstreams.&lt;br /&gt;&lt;br /&gt;It seemed sensible to start by simply getting in the same room and getting on the same page.  To give the time some basic structure, we borrowed some concepts from the &lt;a href="http://www.planningpoker.com/detail.html"&gt;planning poker&lt;/a&gt; process.  There were some basic ideas that made sense for us - getting the team together around a problem, gathering opinion in a way that prevents strong personalities dominating the outcome, and using outliers to zero in on hidden information.  As an added bonus, the quasi-familiarity of the process gave the team a sense of purpose and went some way to dispel hostility in a high pressure environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Solution&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We started by scheduling a weekly session and sticking to it.  Sounds simple, but when the world is coming down around your ears, it is too easy to get caught up in all the reactivity and not make the space to think through what you're doing.&lt;br /&gt;&lt;br /&gt;We set aside some time at the end of each week, and our format for the session was fairly simple:&lt;br /&gt;•	All the members of the delivery team state their level of confidence that the project will hit its deadline by calling out a number between 1 and 10, 1 being definitely not, 10 being definitely so.&lt;br /&gt;•	We record the numbers, then give the lowest and highest numbers an opportunity to speak, uncovering what they know that makes them so much more or less confident than the rest of us.  This way the whole group learned about (or dispelled) issues and opportunities they may have been unaware of.&lt;br /&gt;•	In light of the new information from the outliers, everyone has an opportunity to revise their confidence estimate.  This is recorded in a spreadsheet which lends this post its title.&lt;br /&gt;•	Finally we took some time to talk over the most painful issues or obvious opportunities in the project and the team, then picked the most critical one and committed to changing it over the coming week.  We also reviewed what we promised ourselves we'd change last week.&lt;br /&gt;&lt;br /&gt;Through this discipline the team made, in real time, a bunch of very positive changes to themselves and how they work together without having to stop working and reorganize.  We also had a very important index that we could use to gauge exactly how worried we should be - which is pretty important from a risk mitigation perspective.  The trend was important too - we were able to observe confidence rise over time, and respond rapidly to the dips which indicated that the team had encountered something that they were worried would prevent them from delivering.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Outcome&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This exercise gained us a much more stable view of a chaotic process, and let us start picking off improvements as we worked.  By making the time to do this and being transparent with the discussions and decisions, the team felt more confident and in control of their work - which always helps morale.&lt;br /&gt;&lt;br /&gt;Because we were able to give the business a coherent, accurate assessment of where we were at, we were able to confidently ask for the right support - it was easy to show where the rest of the organization could help, and demonstrate the impact if they didn't meet their obligations to us.&lt;br /&gt;&lt;br /&gt;In summary, we got our issues out in the open and got our project back on the rails.  And by the time we got together for our post-implimentation retrospective, we were pleasantly surprised by how many of our most critical problems we'd already identified and fixed.  If you're in a tough spot with a significant piece of work and a fixed deadline, consider giving something like this a try - I think it will work alongside any development methodology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3431097603522173580?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3431097603522173580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3431097603522173580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3431097603522173580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3431097603522173580'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/11/confidence-o-meter.html' title='The Confidence-o-Meter'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-7552122149781198844</id><published>2008-11-17T11:25:00.001Z</published><updated>2008-11-17T11:25:21.346Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud Computing Isn't...</title><content type='html'>Thought for the day - when does a new idea gain enough structure to graduate from meme to tangible concept?  Is there some quorum of 'experts' that need to agree on its shape?  Perhaps we need a minimum number of books written on the topic, or a certain number of vendors packaging the idea up for sale?  Or maybe it is as simple as all of us trying it our own way for long enough for observable patterns to emerge?&lt;br /&gt;&lt;br /&gt;We might have already crossed this bridge with cloud computing thanks to the accelerated uptake of robust platforms such as EC2 and App Engine (and the adherence to theme of newer offerings like Azure), but there is still a lot of residual confusion that we might start to mop up if we were so inclined.&lt;br /&gt;&lt;br /&gt;The first thing we might stop doing is retrospectively claiming any sort of non-local activity as cloud computing.  What's that?  You've been using Gmail or Hotmail for years?  No.  sorry.  You are not an ahead-of-the-curve early adopter, you are just a guy who has been using a free web based email system for a while.&lt;br /&gt;&lt;br /&gt;Before the inevitable torrent of angry emails rains down upon my inbox, let's pause to think about what we're trying to achieve here.  Does classifying the likes of Hotmail and - well, insert your favorite SaaS here - as cloud computing help or hinder the adoption and development of cloud technology?  I think we probably establish these analogies because we believe that the familiarity we create by associating a trusted old favorite with a radical new concept may add comfort to perceived risks.  But what about the downside of such a broad classification?&lt;br /&gt;&lt;br /&gt;These systems are typically associated with a very narrow band of functionality (for example, sending and receiving email or storing and displaying photos) and are freely available (supported by advertising or other 2nd order revenue).  They tend to lack the flexibility, identity, and SLA that an enterprise demands.  This analogy may well be restricting adoption in the popular mind.  Besides, where do you draw the line?  Reading this blog?  Clicking 'submit' on a web form?  Accessing a resource in another office on your corporate WAN?  I'm not knocking anyone's SaaS, in fact the noble pursuits that are our traditional online hosted email and storage systems have been significant contributing forces in the development of the platforms that made the whole cloud computing idea possible.&lt;br /&gt;&lt;br /&gt;So, if a lot of our common everyday garden variety SaaS != a good way to talk about cloud computing, then what is?&lt;br /&gt;&lt;br /&gt;Let's consider cloud computing from the perspective of the paradigm shift we're trying to create.  How about cloud computing as &lt;em&gt;taking resources (compute power and data) typically executed and stored in the corporate-owned datacenter, and deploying them into a shared (but not necessarily public) platform which abstracts access to, and responsibility for, the lower layers of computing&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;That may well be the winner of Most Cumbersome Sentence 2008, but I feel like it captures the essence to a certain degree.  Let's test our monster sentence against some of the other attributes of cloud computing - again from the perspective of what you're &lt;em&gt;actually&lt;/em&gt; doing in a commercial and operational sense when you build a system on a cloud platform:&lt;br /&gt;&lt;br /&gt;•	Outsourcing concern over cooling, power, bandwidth, and all the other computer room primitives.&lt;br /&gt;•	Outsourcing the basic maintenance of the underlying operating systems and hardware.&lt;br /&gt;•	Converting a fixed capital outlay into a variable operational expense.&lt;br /&gt;•	Moving to a designed ignorance of the infrastructure (from a software environment perspective).&lt;br /&gt;•	Leveraging someone else's existing investment in capacity, reach, availability, bandwidth, and CPU power.&lt;br /&gt;•	Running a system in which cost of ownership can grow and shrink inline with it's popularity.&lt;br /&gt;&lt;br /&gt;I think talking about the cloud in this way not only tells us what it is, but also a little about what we can do with it and why we'd want to.  If you read this far and still disagree, then enable your caps lock and fire away!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-7552122149781198844?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/7552122149781198844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=7552122149781198844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7552122149781198844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/7552122149781198844'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/11/cloud-computing-isn.html' title='Cloud Computing Isn&amp;#39;t...'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1036164771049206645</id><published>2008-11-11T11:37:00.001Z</published><updated>2008-11-21T23:25:33.542Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>My agile construction yard</title><content type='html'>I have been successfully practicing agile for quite a while now, and I've always believed that, given a pragmatic application of the &lt;a href="http://agilemanifesto.org/principles.html"&gt;principles&lt;/a&gt; behind it, it can be used to manage any process.  Mind you, having only ever tried to deliver software with agile, this remained personally unproven.  Gauntlet?&lt;br /&gt;&lt;br /&gt;So I figured that if I am going to keep going on about it, I am going to have to put my money (and my house) where my mouth is.  So I did, and this is the story...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The requirements&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I wanted a bunch of work done on my house - extending a room, replacing the whole fence line, building a new retaining wall, laying a stonework patio, new roof drainage, building a new BBQ area, and some interior layout changes - and I thought it's now or never.  I spoke to the builder and told him all about agile, lean thinking, project management practices like SCRUM and XP, and how it can benefit both of us in delivering House 2.0.  He asked if he could speak to the responsible adult who looks after me.  "Great, a waterfall builder" I say to myself as I try not to be offended by the 'responsible adult' quip.&lt;br /&gt;&lt;br /&gt;But we strike a deal; he's going to do big up front drawings and a quote, and we'll proceed my way at my own risk and responsibility.  The game is on.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh6.ggpht.com/eachanfletcher/SQNPpgUYWaI/AAAAAAAAAL4/HUiOIefTpjc/lego.jpg?imgmax=800" alt="lego.jpg" border="0" width="400" height="325" /&gt;&lt;/div&gt;&lt;br /&gt;The first thing we do is run through all the things I want done, which ones are most important to me, and roughly how I want them all to look.  I guess you could call this the vision setting.  Then my contractor asks me the few big questions; the materials I want to use, budget, and when I want it ready by.  He makes some high level estimations on time and cost, based on which I rearrange my priorities to get a few quick wins.  We have a backlog.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The project&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Our first 'sprint' is the fence line.  We come across our first unknown already - the uprights that hold the fence into the ground are concreted in and we either have to take twice as long to tear them out, or build the new fence on the old posts.  Direct contact throughout the process and transparency of information ensures that we make the decision together, as customer and delivery team, so that neither of us is left with the consequences of unforeseen situations.  I want the benefit of new posts so I'm quite happy to eat the costs put forward.&lt;br /&gt;&lt;br /&gt;Next we do the retaining wall, and we have a quick standup to go over the details - we need to decide on a few details up exact height and the type of plants growing across the top.  Since the fence has been done I go with some sandy bricks that match the uprights and the wall is constructed without incident.  The next thing we're going to tackle is the BBQ area; however, beyond that the roadmap calls for the room extension and so we need to apply for planning consent in order to get the approval in time.  Agile doesn't mean no paperwork and no planning, it means doing just enough just in time for when you need it.&lt;br /&gt;&lt;br /&gt;Now we hit our first dependency - the patio must be laid first before we can build the BBQ area.  That's cool, and through our brief daily catchups, we come up with an ideal layout and pick out some nifty blocks.  A bit of bad weather slows down the cementing phase slightly, but we're expecting that - this is England.  We use the opportunity to draft some drawings for the room extension and get the consent application lodged.&lt;br /&gt;&lt;br /&gt;It's BBQ building time.  I've been thinking about it since we started the project, and I decided I wanted to change it.  The grill was originally going up against one wall, but wouldn't it be much more fun if it was right in the middle so everyone could stand 360 around it and grill their own meat?  You bet it would.  We built a couple of examples out of loose bricks (prototypes?) and then settled on a final design.  It takes a bit more stone than the original idea, but it's way more awesome.&lt;br /&gt;&lt;br /&gt;Then our project suffered it's first major setback - the planning consent process uncovers that a whole lot of structural reinforcement will be needed if they're going to approve the extension.  That pretty much triples the cost of adding the extra space.  Is it still worth it at triple price?  Not to me.  Lucky we didn't invest in a lot of architect's drawings and interior design ideas, they'd be wasted now (specifications are inventory and inventory is a liability).  So we start talking about alternatives, and come up with a plan to create the new space as storage and wardrobes - not exactly what I had in mind up front, but at less than half the original cost it still delivers 'business value'.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The retrospective&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So how did it all turn out?  Well, as a customer, I felt involved and informed throughout the whole process, and the immediate future was usually quite predictable.  Throughout the project I had the opportunity to adjust and refine my requirements as I saw the work progress, and I always made informed tradeoffs whenever issues arose.  I am happy, the builder is happy, and I got exactly what I wanted - even though what I &lt;em&gt;really&lt;/em&gt; wanted ended up quite different to what I &lt;em&gt;thought&lt;/em&gt; I wanted when we started.&lt;br /&gt;&lt;br /&gt;Oh and if anyone wants a good building contractor in Surrey...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1036164771049206645?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1036164771049206645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1036164771049206645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1036164771049206645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1036164771049206645'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/11/my-agile-construction-yard.html' title='My agile construction yard'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/eachanfletcher/SQNPpgUYWaI/AAAAAAAAAL4/HUiOIefTpjc/s72-c/lego.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-6916663326910562247</id><published>2008-11-07T09:58:00.000Z</published><updated>2008-11-07T09:58:01.082Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='scale'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cost in the Cloud</title><content type='html'>Cost is slated as benefit number 1 in most of the cloud fanboy buzz, and they're mostly right, usage-based and CPU-time billing models do mean you don't have tons of up front capital assets to buy - but that's not the same thing as saying all you cost problems are magically solved.  You should still be concerned about cost - except now you're thinking about expensive operations and excess load.&lt;br /&gt;&lt;br /&gt;Code efficiency sometimes isn't as acute a concern on a traditional hardware platform because you have to buy all the computers you'll need to meet peak load, and keep them running even when you're not at peak.  This way you usually have an amount of free capacity floating around to absorb less-than-efficient code, and of course when you're at capacity there is a natural ceiling right there anyway.&lt;br /&gt;&lt;br /&gt;Not so in the cloud.  That runaway process is no longer hidden away inside a fixed cost, it is now directly costing you, for example, 40c an hour.  If that doesn't scare you, then consider it as $3504 per year - that's for once instance, how about a bigger system of 10 or 15 instances?  Now you're easily besting $35K and $52K for a process that isn't adding proportionate (or at worst, any) value to your business.&lt;br /&gt;&lt;br /&gt;Yikes.  So stay on guard against rogue process, think carefully about regularly scheduled jobs, and don't create expensive operations that are triggered by cheap events (like multiple reads from multiple databases for a simple page view) if you can avoid it.  When you are designing a system to run on a cloud platform, your decisions will have a significant impact on the cost of running the software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-6916663326910562247?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/6916663326910562247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=6916663326910562247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6916663326910562247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/6916663326910562247'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/11/cost-in-cloud.html' title='Cost in the Cloud'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8645306313748796808</id><published>2008-11-03T14:44:00.002Z</published><updated>2008-11-04T13:19:25.292Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Eachan's Famous Interview Questions - Part II</title><content type='html'>A while back I posted some &lt;a href="http://www.eachan.com/2008/07/eachan-famous-interview-questions.html"&gt;engineering manager/leader interview questions&lt;/a&gt; that I frequently use - designed to test how someone think, what their priorities are, and how they'd approach the job - rather than whether or not they can do the job at all.  As I said back then, if you're at a senior level and you're testing to see if someone is capable of the basic job all, then you're doing it wrong (rely on robust screening at the widest point - your time is valuable).&lt;br /&gt;&lt;br /&gt;Like everything else, this is subject to continuous improvement (agile interviewing - we're getting better at it by doing it) and with more repetition you tend to develop more ways of sizing people up in a 1 hour meeting.  So here is iteration 2:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. What is the role of a project leader?&lt;/strong&gt;  Depending on your favorite SDLC, that might be a project manager, SCRUM master, or team leader - but what you're looking for is a distinction between line management (the maintenance of the team) and project management (the delivery of the work).&lt;br /&gt;&lt;br /&gt;[You might not make such distinctions in your organization, it is important to note that all these questions are intended to highlight what an individuals natural style is, not to outline a 'right' way to do it.]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Walk through the key events in the SDLC and explain the importance of each step.&lt;/strong&gt;  It is unlikely any candidate (except maybe an internal applicant) is going to nail down every detail of &lt;em&gt;your&lt;/em&gt; SDLC, but what you're hoping to see is a solid, basic understanding of how ideas are converted into working software.  It seems overly simple, but you'd be surprised how many people, even those who have been in the industry many years, are really uneasy about this.  Award extra credit for 'importances' that benefit the team as well as the business (for example - product demos are good for the team's morale etc).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Who is in a team?&lt;/strong&gt;  Another dead simple one, and what you are testing for is engagement, inclusion, and transparency.  Everyone will tell you developers, and usually testers, but do they include NFRs like architects?  Supporting trades like business analysts and project managers?  How about the customer him/herself?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. What is velocity, how would you calculate it, and why would you want to know?&lt;/strong&gt;  Their ability to judge what their team is capable of is the key factual basis to the promises they'll make and how they'll monitor teams performance and be able to help them improve over iterations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Explain the software triangle.&lt;/strong&gt;  This is another one of my favorites - because the fundamental relationship between time, scope, and cost is as real a law as gravity yet &lt;em&gt;so many&lt;/em&gt; engineering professionals still seem to live in some kind of weird denial.  Perhaps afraid of falling off the edge of the earth?  Nonetheless, someone who won't get swept along on a romanticized story of One Man's Heroic Triumph Over Project X will make sure you keep a sustainable team and not fall into the sarlacc pit of over-promising and under-delivering.  You can also use this question as a springboard to explore how they'd negotiate tradeoffs with customers and how they'd make the costs of decisions visible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. How would you handle a team coming off a failed project?&lt;/strong&gt;  No one will ever preside over a flawless team that never drops anything, so being able to handle this effectively is a critical skill.  For me, the ideal candidates have some answers to both 'what can we do to recover morale and re-motivate the team?' and 'what went wrong and how can we sidestep it next time?'&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. What's the definition of done?&lt;/strong&gt;  You need you're on definition of done, but I'm always looking for people who include testing, documentation, successful build and integration, failure scenarios, maintenance plans etc in their definitions.  How about as far as commercial success?  You can easily wander into estimation from here - protecting time to build sustainable software is a vital prerequisite to actually doing it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Who are your stakeholders?&lt;/strong&gt;  Another one that varies terrifically from place to place.  Don't let them get away with 'the business' because remember, you're testing for a depth of understanding of How It's Done.  Do they include system administrators?  How about operators?  Customers themselves?  Do they prefer to work in a close, personal way with these individuals, or to abstract them away behind business analysts and product managers?  It is all valuable decision making data for you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. Imagine you could wave a magic wand and either make your products recover from failure 50% quicker, or make them 50% less likely to fail in the first place - which would you choose?&lt;/strong&gt;  A bit of a wily questions, but one that will expose their strategic vs operational bias.  More interesting is the discussion around &lt;em&gt;why&lt;/em&gt; they chose the way they chose.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. Imagine you have a black box which fails regularly.  You may chose to have basic observation in real time or vastly detailed statistics on a 24 hour delay - which would you choose?&lt;/strong&gt;  Alternatively, you can ask this one in a less course way by looking for examples of different types of system and the circumstances in which each choice might be appropriate.  This type of question, along with number 9, can also demonstrate their ability to  theorize and generalize (while appreciating that they're doing so) without studying the details of a specific example.  This is usually indicative of experience.&lt;br /&gt;&lt;br /&gt;There are no 'right' or 'wrong' answers to most of these questions (although I would argue there are 'better' answers to some), just answers that will suit you well, and answers that are less compatible.  Ultimately, exploring people in this way will help you predict how they'll perform given autonomy - and why give yourself more governance than you need to do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8645306313748796808?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8645306313748796808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8645306313748796808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8645306313748796808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8645306313748796808'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/eachan-famous-interview-questions-part.html' title='Eachan&amp;#39;s Famous Interview Questions - Part II'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3732576438311537862</id><published>2008-10-27T12:14:00.001Z</published><updated>2008-10-29T13:57:35.083Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><title type='text'>Fail More, Neo</title><content type='html'>If you expect everything to work all the time, if you believe everything will be perfect first time around, if you think everything you try and every idea you have will always be brilliant - then you are living in some kind of delusional hyper-fantasy.  Stay there, trust me, it's better than out here.&lt;br /&gt;&lt;br /&gt;But if you decide to take the red pill, and join us here in the real world, there are a few things you should know that will make your integration easier.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://lh3.ggpht.com/eachanfletcher/SPCwgeHZjrI/AAAAAAAAALc/xsPOtu9yHMA/736617E0-207B-4A08-8B90-19453D1EF7FB.jpg?imgmax=800" alt="736617E0-207B-4A08-8B90-19453D1EF7FB.jpg" border="0" width="380" height="260" /&gt;&lt;/div&gt;&lt;br /&gt;Firstly, machines have not taken over the world, and human beings are not just a kind of great big box of Duracell batteries to them.  But this is mostly because &lt;em&gt;we can't make machines awesome enough yet&lt;/em&gt;, see below...&lt;br /&gt;&lt;br /&gt;Out here in the real world, we mostly learn by doing things (until we can make those machines that beam kung-fu directly into our brains).  We try something out, observe the results, and then we do it again with some slight variations.  Those little tweaks we make as we try again and again are based on the pain we feel each time it doesn't work out.  We call this a feedback loop, and we've learned this way for thousands of years - if there was a better way to do it, a way we could just "get it right first time", then trust me, &lt;em&gt;we'd be all over that by now&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;We'll be honest with you - you can, even in the real world, get by with very little of such trial-and-error experience if you want.  A well-established pattern of mundane mediocrity leading directly to obsolescence is readily available.  In fact, you'd be surprised how popular a choice this actually is!  Let's call it the grey pill.&lt;br /&gt;&lt;br /&gt;Assuming you don't fancy the drab, lackluster, second-rate existence the grey pill guarantees, what else can you do with the humans under your command?&lt;br /&gt;&lt;br /&gt;Firstly - and most importantly - &lt;em&gt;allow them to try&lt;/em&gt;.  Don't expect every idea to be killer, or everything to work out first time around.  Allow - no wait - &lt;em&gt;require&lt;/em&gt; experimentation and iteration.  It is the number 1 way your humans will expand their understanding, and believe it or not, a string of failures &lt;em&gt;is&lt;/em&gt; the shortest path to that one thing that does work brilliantly.  Tom Watson, an old golf-playing human we have out here, once said “if you want to succeed, double your failure rate”.&lt;br /&gt;&lt;br /&gt;You might notice that some of your humans seems a little reluctant to embrace the idea - especially those recently defrosted from 'grey pill' institutions.  How can you spruce them up into lean, mean, mistake-making machines?&lt;br /&gt;&lt;br /&gt;People often fear the consequences of failure more than failure itself.  So the best course of action is to make the consequences of failure something to look forward to - not something to hide from, and cover up.  Why not try celebrating failure?  If one of your humans has an idea, tries it out, and then brings back some knowledge and experience to the rest of the team, then you are much better off than you were before.  Make a big deal out of it, demonstrate to the rest of the team that it's OK to try.  Stretching yourself won't be punished.&lt;br /&gt;&lt;br /&gt;That doesn't mean rewarding scattergun bravado - what you're trying to encourage is a culture of balanced risk and methodical approach.&lt;br /&gt;&lt;br /&gt;I like the old saying "fail fast, fail cheap" because as a statement, it gives permission to try new things, yet it is also prescribes some basic guidelines.  Take the shortest path you can to discovering your idea doesn't work, and invest the minimum you need to in order to reach that same point.  After all, you'll need those resources for your next idea.&lt;br /&gt;&lt;br /&gt;So, thanks for joining us out here in the real world.  We really hope you'll make the most of it by embracing failure and trying new things out, because this is the only path to discovery and success - oh and we'll never build those dominant supercomputers to have a nifty war with if we don't believe in innovating!&lt;br /&gt;&lt;br /&gt;Maybe this post will be a failure.  Maybe my message won't get into the dreamworld (where we don't believe in failure) or grey pill land (where we don't try just in case).  But do you know what?  I won't mind if it doesn't - because I will have just eliminated one of the ways it doesn't work, and that's a step forward...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3732576438311537862?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3732576438311537862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3732576438311537862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3732576438311537862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3732576438311537862'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/fail-more-neo.html' title='Fail More, Neo'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/eachanfletcher/SPCwgeHZjrI/AAAAAAAAALc/xsPOtu9yHMA/s72-c/736617E0-207B-4A08-8B90-19453D1EF7FB.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3927798843139820248</id><published>2008-10-24T19:39:00.002+01:00</published><updated>2008-10-29T19:46:50.494Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Availability or Control?</title><content type='html'>In the web business, we usually consider availability to be paramount - and given that motivation, we're getting pretty good at things like graceful degradation and partial failure. But now that you've pulled your system apart and neatly isolated all the features, how do you cope with the situation where no service is preferable to partial service?&lt;br /&gt;&lt;br /&gt;This &lt;em&gt;can&lt;/em&gt; be true. Consider, if you will, a trading system operated by a team of risk managers. You have built the system to be fault tolerant and allow partial failures - and this usually works out great - but what happens if a failure in the infrastructure or application results in the risk managers no longer being able to administer the system? It's still running publicly (thanks to you awesome failure isolation) so customers are still buying and selling. You cant change your prices and respond to changing market conditions - uh oh - exposure. What do we do?&lt;br /&gt;&lt;br /&gt;One answer is a word we don't like - especially if we just built a reasonably decoupled system - dependency. Yuck, but there is no shame in creating some intentional dependencies that support the business rules. If you &lt;em&gt;never&lt;/em&gt; want to execute trades &lt;em&gt;unless&lt;/em&gt; you can manage your position, then what is the advantage to running the trading system without the liability tool? Nothing - if anything it's an undesirable risk.&lt;br /&gt;&lt;br /&gt;So draw up some service dependencies, or make the applications depend on their monitors at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;runtime&lt;/span&gt;. It might not appeal to how we'd like to run the system, but the truth is it accurately reflects how we'd like to run the business.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3927798843139820248?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3927798843139820248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3927798843139820248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3927798843139820248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3927798843139820248'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/availability-or-control.html' title='Availability or Control?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-8148303275912872134</id><published>2008-10-20T21:12:00.000+01:00</published><updated>2008-10-20T21:12:01.069+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>And the problem with agile is...</title><content type='html'>I get drawn into a lot of debates about the pros and cons of agile (or maybe I just like a good fight?) and the standard attack pattern around quality is starting to become &lt;em&gt;sooooo&lt;/em&gt; passe.  So I'm going to tackle it here, in the hope that I can use a one-link defense in future.  Kind of like TinyURL but for arguments.&lt;br /&gt;&lt;br /&gt;Firstly, let me go on record by saying that I most certainly am an agile proponent, but at the same time I don't believe it is the single, solitary answer to how we should do everything in technology.  You have to have more than one tool in your kit.&lt;br /&gt;&lt;br /&gt;So let me go ahead and get this off my chest:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agile != doing a poor job&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Agile doesn't mean doing no testing, it means doing &lt;em&gt;just enough testing to ensure appropriate quality&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Agile doesn't mean doing no documentation, it means doing &lt;em&gt;just enough documentation to effectively convey meaning and understanding&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Agile doesn't mean doing no architecture, it means doing &lt;em&gt;just enough design work to understand how to start iterating the solution&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Agile doesn't mean having no requirements, it means having &lt;em&gt;just enough detail for the foreseeable future and embracing change beyond that&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;It is also about appreciating that &lt;em&gt;just enough&lt;/em&gt; can mean different things in different projects, different business problems, and different parts of the system.&lt;br /&gt;&lt;br /&gt;Come on people, these aren't new ideas!&lt;br /&gt;&lt;br /&gt;To be fair, I can see where some of this criticism comes from.  There are cowboys out there who use agile as an excuse to dispense with necessary diligence or take ill-advised shortcuts.  When it all comes crashing down, it does sound better to say "hey, we were doing agile" than "hey, we couldn't really be bothered planing this work properly" for the individuals concerned.  The fact is that crappy engineers exist.  There is no such thing as an SDLC that turns good engineers into poor engineers, we just started accepting that as an excuse.&lt;br /&gt;&lt;br /&gt;If agile does have something to answer for here, it is that this kind of poor work is much more visible much earlier (if concealment is your game).  The reality is the same team would make the same (or worse) errors in judgement regardless of the approach they used, you just wouldn't know about it for 12 months - and by then, who knows whose fault that was?&lt;br /&gt;&lt;br /&gt;Don't accept output any crappier than you otherwise would just because it has agile stamped on it - if anything you should expect better, because you will have had more opportunities for course correction along the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-8148303275912872134?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/8148303275912872134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=8148303275912872134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8148303275912872134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/8148303275912872134'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/and-problem-with-agile-is.html' title='And the problem with agile is...'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4211613472845632685</id><published>2008-10-16T11:16:00.000+01:00</published><updated>2008-10-16T12:01:31.570+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='scale'/><title type='text'>What Your Network Guy Knows</title><content type='html'>So you're getting into distributed systems; maybe you've got some real scalability issues on the horizon, or perhaps you want to better isolate failure, or be able to cope with more concurrent change in the system.  So how do you do this webscale thing then?&lt;br /&gt;&lt;br /&gt;Time for some homework.  Listening to some vendor pitches, maybe reading some books, or getting an expensive consultant or two in for a while (I'll take your money from you if that's what you want) might possibly do it.  But before all this gets out of hand, did you realize you're probably sitting right next to a distributed systems fountain of knowledge?  You already have someone, right there in your team, who has spent their entire career working with the largest eventually consistent multi-master distributed systems in the world - the trick is they might not even know it themselves - and that someone is your network guy.&lt;br /&gt;&lt;br /&gt;Let's test this assertion against a couple of technologies that network engineers deal with every day, and look at what we can take from them into our distributed systems thinking.&lt;br /&gt;&lt;br /&gt;How about something fundament - routing protocols.  Networking gurus have a small army of acronyms at their disposal here; &lt;a href="http://en.wikipedia.org/wiki/Ospf"&gt;OSPF&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/EIGRP"&gt;EIGRP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IS-IS"&gt;IS-IS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Bgp"&gt;BGP&lt;/a&gt;, and the sinister sounding &lt;a href="http://en.wikipedia.org/wiki/Routing_Information_Protocol"&gt;RIP&lt;/a&gt;.  These are essentially applications that run on network devices (and sometimes hosts themselves), map out the network topology, and provide data for devices to make packet forwarding decisions.&lt;br /&gt;&lt;br /&gt;So what can we import from this technology?&lt;br /&gt;1. Partitioning - networks are broken down into manageable chucks (subnetworks) which scope load (broadcasts), ringfence groups of systems for security, and limit traffic across slow and expensive links.&lt;br /&gt;2. Scalability - routing protocols allow massive global networks to be established by summarizing contiguous groups of networks again and again, and ensuring any node can establish end-to-end connectivity without having to understand every single path in the network (just a default route).&lt;br /&gt;3. Failure isolation - subnets are bordered by routing protocols, which form a natural boundary to most forms of network malarky.  In the event that a network becomes unpredictable (flapping), some routing protocols are able to mark them down for predetermined time, which aids in local stabilization and prevents issues spilling over into healthy networks.&lt;br /&gt;4. Self healing - when a failure in a network or a link between networks occurs, routing protocols observe the problem (by missing hellos or interfaces going down) and take action to to reestablish reachability (work around the problem using alternate paths etc).  Each node will recompute it's understanding of the networks it knows how to reach, learn who it's neighbors are and the networks they can reach, and then return to business as usual via a process called convergence (this is a really simple study in eventual consistency and variable consistency windows).&lt;br /&gt;5. Management - for the most part, networks separate their control messages from the data they transport.  A good practice, especially when combined with techniques like QoS, because it significantly reduces the risk of losing control of the infrastructure under exceptional load conditions.&lt;br /&gt;&lt;br /&gt;Now let's look at something application layer - &lt;a href="http://en.wikipedia.org/wiki/Domain_Name_System"&gt;DNS&lt;/a&gt;.  This should be a somewhat more familiar tool (or you're kind of reading the wrong blog) and we touch it quite regularly but probably don't appreciate what goes on in the background.  At it's most basic level, DNS is a client/server system for providing a mapping between human-readable hostnames and machine-friendly IP addresses.  Oh but it's so much more...&lt;br /&gt;&lt;br /&gt;So what can we import from this technology?&lt;br /&gt;1. Partitioning - DNS is hideously, frighteningly big, there are hundreds of thousands of nodes in this system, from the dozen or so root servers all the way down to the corporate internet access edge servers.  It is a good example of dividing up a problem; to find us you'd work right to left through a fully qualified domain name, starting with the "." (root), we're in the "com" container (hosted by a registrar), then the "betfair" container (hosted by us), and finally you'd get back some data from a record matching "www" and arrive at our place.&lt;br /&gt;2. Scalability - did I mention DNS is big?  DNS uses a classic combination of master/slave nodes and caching on the client and server side to scale out.  At the corporate edge, DNS proxies resolve addresses on behalf of internal clients and keep answers in a local cache, ISPs and those who run their own zones keep a number of slaves (many read only) and spread queries out amongst them, and finally an expiry timestamp (TTL) is set on query results permitting client side caching.&lt;br /&gt;3. Resilience - clients can be configured with a list of servers, which they will cycle through should they receive no answer.  Additionally, the DNS protocol is stateless, making it easy to move servers around hot and load balance using simple, lightweight algorithms.&lt;br /&gt;4. &lt;a href="http://www.eachan.com/2008/06/cap.html"&gt;CAP&lt;/a&gt; - DNS definitely prefers availability over consistency, the window for an updated record to be propagated around the internet being ~24hrs in most cases.  It's also highly tolerant to network segmentation, individual servers being happy to live separated from the rest of the DNS infrastructure for long periods of time, answering queries, and then catch up with all the changes in the zones they host once connectivity is reestablished.&lt;br /&gt;5. Operations - the hierarchical way the namespace is organized is perfectly matched to how authority is delegated.  If you're going to have a massive system spread around the globe, you've got to think about how you're going to operate it, and the DNS model for this is based on allocating administration with ownership.  This gives complete flexibility and control to namespace owners without risking the integrity of the system as a whole and let's us operate the biggest distributed system in the world without employing the biggest IT team in the world.&lt;br /&gt;&lt;br /&gt;So buy your network guy a coffee.  Ask him how his world works.  If you can draw the philosophical parallels, it might be the most valuable couple of hours you've spent in ages.&lt;br /&gt;&lt;br /&gt;Oh and by the way - distributed systems are all about the network, so you're going to need a friend here anyway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4211613472845632685?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4211613472845632685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4211613472845632685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4211613472845632685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4211613472845632685'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/what-your-network-guy-knows.html' title='What Your Network Guy Knows'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-1747437582953888020</id><published>2008-10-12T17:22:00.000+01:00</published><updated>2008-10-13T13:31:25.459+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Is Leadership a Noun or a Verb?</title><content type='html'>Is technical leadership something you know or something you do?  Is it a finite thing you can point to, and check off a list, or is it an ongoing process, more akin to a journey?  Let's look at what it means in practice...&lt;br /&gt;&lt;br /&gt;Firstly you have to have some answers - or better yet &lt;em&gt;know the right questions&lt;/em&gt;.  You need to have a vision, and preferably some ideas on how to break that down into Big Goals.  You need to define what success looks like for your team, and know what sorts of things contribute to that success and what sorts of things distract you from it.  Maybe this is leadership the noun?&lt;br /&gt;&lt;br /&gt;All good work so far, but worth nothing to your organization if no one knows about it - who is it that's supposed to be working towards these goals?  Who is it that you depend upon to realize your vision?&lt;br /&gt;&lt;br /&gt;So the next thing you need is for everyone to proverbially Get On Board.  You have to communicate that vision as simply as possible and help every individual understand exactly how they can contribute to it.  The whole team has to get emotional about it, believe in it, and live it through how they do their jobs each day.  Perhaps this is leadership the verb?&lt;br /&gt;&lt;br /&gt;So perhaps the answer is both?  I certainly think so.  Share an empty vision or set the wrong goals and you won't get where you need to be.  Keep quiet about your plans and how they can be achieved and you rob the organization of huge value.&lt;br /&gt;&lt;br /&gt;Oh and don't forget to keep your eye on the horizon - things change and from time to time that means adapting your strategy or losing ground!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-1747437582953888020?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/1747437582953888020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=1747437582953888020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1747437582953888020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/1747437582953888020'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/is-leadership-noun-or-verb.html' title='Is Leadership a Noun or a Verb?'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-3292430107928456828</id><published>2008-10-09T00:30:00.001+01:00</published><updated>2008-10-13T14:51:11.424+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>IASA Connections - Day 3</title><content type='html'>&lt;a href="http://www.eachan.com/2008/10/iasa-connections-day-1.html"&gt;Day 1&lt;/a&gt;, &lt;a href="http://www.eachan.com/2008/10/iasa-connections-day-2.html"&gt;day 2&lt;/a&gt;, and now day 3:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.ambysoft.com/scottAmbler.html"&gt;Scott Ambler&lt;/a&gt; – Practice Leader in Agile Development, IBM Software Group&lt;/strong&gt;&lt;br /&gt;•	Data modelling from an agile perspective.&lt;br /&gt;•	Don’t get too hung up on purist agile, good techniques are good techniques regardless of where they come from.&lt;br /&gt;•	Software development is more of a craft or an art than engineering – hence we tend to apply some practices that don’t make things the easiest for us.&lt;br /&gt;•	Agile is becoming mainstream – you cannot dodge it – and data is not going to change from being an asset, so how can these things coexist?&lt;br /&gt;•	Data and quality are 2 words that are hardly ever seen together, yet this is so important.&lt;br /&gt;•	In most “Big Requirements Up Front” projects, 45% of features never used, 19% of features rarely used, so this is effectively a waste of over half the development budget.&lt;br /&gt;•	66% of teams work around internal data groups, most common reasons are difficulty in engagement, responses too slow, and development teams don’t understand the value.  So data architects have work to do.&lt;br /&gt;•	Modelling is like anything else, it just needs to be good enough for the task at hand (repeatable results, not repeatable processes).&lt;br /&gt;•	If you can’t get active stakeholder participation, then cancel the project because all that will happen is disaster &lt;br /&gt;•	Clear box testing is just as important as black box testing, because you can test triggers, views, constraints, and referential integrity rather than just observable functionality.&lt;br /&gt;•	Do continuous integration of databases – there is nothing special about data so why shouldn’t it be treated the same?&lt;br /&gt;•	Make it easy for people to do the right thing – loads of verbose documentation and white papers are less likely to be effective than a small number of run-able assets and some 1:1 support to integrate them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Obviously Scott was wearing his data hat this time, but clearly the whole session was predicated upon the fact that you believe relational databases are themselves the right solution…&lt;br /&gt;•	Really like the “repeatable results not repeatable processes” phrase, it is such a powerful idea – I am always battling the ‘1 process to rule them all’ crowd.&lt;br /&gt;•	Probably best whiteboard walkthrough of the “karate school” example I’ve ever seen.&lt;br /&gt;•	My approach to modelling has always been to define things in order of ‘most difficult to change later’ to ‘least difficult to change later’ so when you run out of steam the unknowns you’re left with are the cheapest ones.&lt;br /&gt;•	Abstractions – a lot of the examples in the talk were based around the assumption that applications directly accessed data, we need to think more about how we can build systems that don’t need to know details about schemas etc (access via object etc).&lt;br /&gt;•	Totally agree with the active stakeholder participation thing, if it’s important enough for them to expect you to deliver it then its important enough for them to invest themselves in it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://drneil.blogspot.com/"&gt;Dr Neil Roodyn&lt;/a&gt; - independent consultant, trainer and author&lt;/strong&gt;&lt;br /&gt;•	A session titled “software architecture for real time systems” was about patterns for performance and performance tuning.&lt;br /&gt;•	Hard vs. soft real-time distinctions important.&lt;br /&gt;•	Time is so often not considered in system design – we think about features and quality and failure but so little about latency.&lt;br /&gt;•	Automated failure recovery is so much more important in real time computing because you cannot stop to allow human intervention upon failure.&lt;br /&gt;•	There are some strong similarities between real time computing thinking and distributed systems thinking:&lt;br /&gt;1.	Consistency&lt;br /&gt;2.	Initialisation&lt;br /&gt;3.	Processor communication&lt;br /&gt;4.	Load distribution&lt;br /&gt;5.	Resource allocation&lt;br /&gt;•	Asynchronous is kind of “cheating” as it leads to the illusion actions have completed before responses are returned.&lt;br /&gt;•	The 3 most important considerations in real time computing are time, time, and time (haha very good Neil).&lt;br /&gt;•	Common software tricks and patterns for real time systems (obviously assuming real time performance is your overriding requirement):&lt;br /&gt;1.	Use lookup tables for decision making&lt;br /&gt;2.	Used fixed size arrays&lt;br /&gt;3.	Avoid dynamic memory allocation&lt;br /&gt;4.	Reduce number of tasks in the system&lt;br /&gt;5.	Avoid multithreaded design&lt;br /&gt;6.	Only optimise popular scenarios&lt;br /&gt;7.	Search can be more efficient than hash&lt;br /&gt;8.	Use state machines&lt;br /&gt;9.	Timestamps instead of timers&lt;br /&gt;10.	Avoid hooks for future enhancements&lt;br /&gt;11.	Avoid bit packed variable length messages&lt;br /&gt;12.	Reduce message handshakes&lt;br /&gt;13.	Avoid mixed platform support&lt;br /&gt;14.	Minimise configurable parameters&lt;br /&gt;•	Overall know your system and approach performance tuning scientifically, observe where time is lost and spend energy there, don’t just guess.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	When we think about SLAs for latency we have to make sure we consider time from the users perspective – if you have a very fast back end but it takes ages for results to render for users, then is it really high performance?&lt;br /&gt;•	Even if you have a few processes in your system that need to be real-time, chances are the majority of your system does not, so don’t be afraid to mix memes because if you make the whole thing real time end-to-end you might be unnecessarily sacrificing some scalability or maintainability.&lt;br /&gt;•	Totally agree with points on &lt;a href="http://www.eachan.com/2008/05/nice-threads.html"&gt;developers needing to know more about the tin their systems run on&lt;/a&gt; and how this will lead to better software overall.&lt;br /&gt;•	I cant’ help but think we’re getting lazy from our (relative) lack of constraints – back when you had 32K to play with you really thought hard about how you used that memory, when you had to load everything from tape you really planned that storage hit…&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://nealford.com/"&gt;Neal Ford&lt;/a&gt; – Software Architect and Meme Wrangler, Thoughtworks&lt;/strong&gt;&lt;br /&gt;•	Fairly by-the-book session on “&lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!158.entry"&gt;SOA won’t save the world&lt;/a&gt;” but via the humorous and engaging analogy of &lt;a href="http://www.chucknorrisfacts.com/"&gt;Chuck Norris facts&lt;/a&gt;.&lt;br /&gt;•	“Peripherally technical manager” types are the key causes for SOA overpromising.&lt;br /&gt;•	Good definition of a service as a unit of course grained, self-contained business functionality.&lt;br /&gt;•	The tension will always be on between centralised planning and tactical action, so you need to learn how to plan ahead without the planning becoming a constraint on business agility.&lt;br /&gt;•	Beware of “cleaning up” the messy communications paths in the enterprise by hiding them inside a box (ESB) – you still have same underlying problems, but you suddenly have less visibility of them.&lt;br /&gt;•	Beware of the difference between ‘standards based’ and ‘standardised’ i.e. most vendor ESB solutions share some common basic standard foundations but the functionality has been extended in a proprietary way – so it can still mean lock in.&lt;br /&gt;•	Keep track of the number of exceptions you’re granting against the governance you have in place – too many and you might have excessive governance.&lt;br /&gt;•	Using ubiquitous language is a must; perhaps even have a formal dictionary for each project.&lt;br /&gt;•	The business must be in integration projects not just initiate them.&lt;br /&gt;•	We all like a bit of ESB-bashing but they can still be useful for connecting up things like mainframes and 3rd party systems to your nifty REST/WS fabric.&lt;br /&gt;•	Exchanging metadata is a great way to negative communication parameters (reliability, security, synchronicity etc) between services and consumers.&lt;br /&gt;•	SOA is undebugable – but it is testable - so a good testing discipline is essential.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	The insurance industry is the place I’ve worked with the most legacy out there (you cant retire certain mainframe systems until all the policyholders die!) and the ESB attachment is just the right milk for this cookie.&lt;br /&gt;•	We as engineers contributed to the overselling as much as the Neal’s peripherally technical manager did – I think we got carried away with the interest that a bit of technology was suddenly getting and we were happy to be on the bandwagon as we usually struggle so hard to get technical things on the agenda – how could we not ride this wave?&lt;br /&gt;•	There are more benefits to SOA than reuse yet that’s all we ever seem to talk about.  How about what it can do for scalability?  Failure isolation?  Concurrent change?  Hot maintenance?&lt;br /&gt;•	Yes.  BPEL.  Terrifying.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Big Summary&lt;/strong&gt;&lt;br /&gt;Overall I think this was a very good flagship event, my thanks to the organisers.  The turnout was a good size – small enough to feel personal and allow plenty of networking opportunities, yet big enough to ensure a variety of engaging discussions.&lt;br /&gt;&lt;br /&gt;The IASA mission is a worthwhile one, and one that I think we don’t do enough about in any technology discipline.  Whether we’re talking about architects, system administrators or developers, how much time do we spend investing in our community?  In ourselves as a profession?  When was the last time you looked for someone to mentor?  Went out of your way to share your ideas beyond your organisational boundaries?  Visited a university to see what the talent you’ll have to work with in 5 years is actually learning?  Investing in ourselves as an industry is undervalued, and I’m happy to be part of a group trying to address this.&lt;br /&gt;&lt;br /&gt;If there is 1 thing I would change for next year, it would be the format of the talks.  There are already enough conferences you can go to and watch someone meander through a slide deck (this was great meandering though!).  If we change the focus so that speakers only use 50% of the allotted time and treat their role as setting the scene, then we could use the other 50% to get a real group discussion going on the topic at hand.  I would certainly find that more valuable, and I would suggest that promoting high intensity peer discussions on tough technology and strategy issues would probably better serve the mission of establishing architecture as a profession.&lt;br /&gt;&lt;br /&gt;I have been assured that you will eventually be able to find the slides from the formal sessions and keynotes &lt;a href="http://www.devconnections.com/updates/sanfrancisco%5F08/arch%5Fiasa/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So that was IASA Connections.  Tomorrow I’m off to UC Berkeley for the day, so probably best ease back on the beer this evening (it makes it harder to maintain the illusion of cleverness I’ll need).  Sayonara.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-3292430107928456828?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/3292430107928456828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=3292430107928456828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3292430107928456828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/3292430107928456828'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/iasa-connections-day-3.html' title='IASA Connections - Day 3'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-2001526929972344667</id><published>2008-10-08T02:21:00.001+01:00</published><updated>2008-10-13T14:50:55.936+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>IASA Connections - Day 2</title><content type='html'>Ceteris paribus, what comes after &lt;a href="http://www.eachan.com/2008/10/iasa-connections-day-1.html"&gt;day 1 of a conference&lt;/a&gt;?  Well, day 2 of course…&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.rollthunder.com/"&gt;David Platt&lt;/a&gt; - teacher and author (and mad professor?), Rolling Thunder Computing&lt;/strong&gt;&lt;br /&gt;•	Day 2’s keynote on why software sucks, which was adapted from his book by the same name.&lt;br /&gt;•	Lots of statistics on why users hate our software, mostly boiling down to the theory that software is built by geeks for geeks but actually used by regular folks.&lt;br /&gt;•	2 million web users in 1994 has become 1200 million in 2006; and almost all are now laymen (in 1994 almost all were geeks themselves).&lt;br /&gt;•	Platt’s rule, “know thy user for he is not thee”&lt;br /&gt;•	Users don’t want to use your application, they want to have used it – so understanding that you provide a means to an end rather than an end in itself is a helpful thought pattern.&lt;br /&gt;•	Customers don’t buy software, they buy the outcome it’s intended to create, e.g. you don’t buy a drill from B&amp;Q, you are really buying a hole.&lt;br /&gt;•	Transferring extra clicks into cash (salary costs of time spent clicking) is a useful way to demonstrate this to management.&lt;br /&gt;•	Suggested solutions:&lt;br /&gt;1.	Add a virgin to your design team, i.e. get someone never used your system before to try it and observe their challenges.&lt;br /&gt;2.	Break convention when needed – for example, why have a save button if you could just have the system save things as you go?&lt;br /&gt;3.	Don’t allow edge cases to reach mainstream – if something is really unlikely to be used by more than 1% of visitors, why include it in the main real estate?&lt;br /&gt;4.	Instrument carefully – watch user experience, track clicks, see what users actually click and how frequently, how do they arrive at certain pages/features?&lt;br /&gt;5.	Always question each design decision, “is it taking us closer to ‘just working’ or further away?”&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Some of the talk didn’t apply to Betfair per se, as online gaming/gambling etc joins the ranks of things like porn (can I say that?) in software that’s used for the experience, rather than to go through a process to arrive at a destination.&lt;br /&gt;•	Most of the examples are based on software that shipped with pointless features or usability issues.  What wasn’t addressed was how architects and engineers relate to this – I agree that you can make &lt;a href="http://www.eachan.com/2008/09/would-you-do-it-in-real-life.html"&gt;terrible usability errors&lt;/a&gt;, but this is usually a decision making process by product managers and other stakeholders rather than the result of developers work.  More material on how engineers can push back on these decisions would help us as a profession.&lt;br /&gt;•	Instrument carefully is good advice, and in my opinion is critical to effective A/B testing.  Knowing what your customers like best coupled with the ability to try new layouts or versions in a lightweight way is a pretty important to keeping the best software out there.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://blogs.tedneward.com/"&gt;Ted Neward&lt;/a&gt; - independent software development architect and mentor, Neward &amp; Associates&lt;/strong&gt;&lt;br /&gt;•	What are architects really about and what does architecture mean?&lt;br /&gt;•	We tend to get carried away with “what if’s” like what if I want to change logging system later so build in 96 logging APIs and pretty much use 1 or 2.&lt;br /&gt;•	Do we have architectural styles in the same way as building architecture has styles?&lt;br /&gt;•	Defining pragmatism – avoiding idealism in favor of something appropriate.&lt;br /&gt;•	There is no such thing as NFR, they are all just requirements.&lt;br /&gt;•	What do architects do:&lt;br /&gt;1.	Understand (what’s the problem, what’s the constraints)&lt;br /&gt;2.	Reassess (changing goals, changing constraints)&lt;br /&gt;3.	Explore (more potential solutions, new opportunities)&lt;br /&gt;•	Beware of the coolness trap – cool technology doesn’t mean appropriate technology.&lt;br /&gt;•	The 3 kinds of architects:&lt;br /&gt;1.	Infrastructure – datacenters, networks, storage&lt;br /&gt;2.	Enterprise – CTO high level leadership&lt;br /&gt;3.	Solutions– the “per project” answers to business questions&lt;br /&gt;•	Patterns are not architecture; they are simply a vocabulary we can use to have high-speed discussions about technical ideas.&lt;br /&gt;•	When designing systems, make big decisions first, then next most detailed, then next most detailed…&lt;br /&gt;•	Idea of architecture catalogue (the things you do as an architect)&lt;br /&gt;1.	Communication – transports, exchanges, and formats.&lt;br /&gt;2.	Presentation – UI, style, and delivery.&lt;br /&gt;3.	State management – durable vs. transient, context vs. process.&lt;br /&gt;4.	Processing – implementation, transactions, and shared data.&lt;br /&gt;5.	Resource management – location, registry, discovery.&lt;br /&gt;6.	Tools – languages, data formats.&lt;br /&gt;•	If you don’t explicitly define architecture it will be implicitly defined for you!&lt;br /&gt;•	Architecture is a bigger picture view than a developer would typically take.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Not sure I agree with the bigger picture assertion, as I think this promotes the ivory tower perception of architects – and besides, successful software demands that everyone involved in building it understands the bigger picture.&lt;br /&gt;•	You need to consider future options, but take into account likelihood and difficulty to change and watch for entering diminishing returns!&lt;br /&gt;•	One of the reasons traditional architects don’t suffer the same difficulties we do is that the constraints and practicalities in real world construction are so much more visible.  We need to put more effort into making these understood.&lt;br /&gt;•	I like the NFR idea because so few people talk about scalability and availability etc as business benefits, but they most certainly are!&lt;br /&gt;•	Agree with the patterns point, too many people get hung up on them but they do not describe a working solution.&lt;br /&gt;•	While I always like to talk about defining architecture as a trade, I am not sure about the catalogue idea – some of those decisions (like presentation, data formats, and languages) and surely best made by those closest to the problem; i.e. the delivery engineers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://drneil.blogspot.com/"&gt;Dr Neil Roodyn&lt;/a&gt; - independent consultant, trainer and author&lt;/strong&gt;&lt;br /&gt;•	Gave a talk called “it’s all wrong, change it all” a rather provocative title that attracted me to the session…&lt;br /&gt;•	We know things are going to change, so how can we put ourselves in a position where this is as easy as possible?&lt;br /&gt;•	We’re in a change heavy industry, however, humans are naturally change averse so this is something we have to work hard at.&lt;br /&gt;•	Abstractions actually make it harder to change things, because they bind code to a particular abstraction – and people tend to feel emotional attachment to their implementations!&lt;br /&gt;•	Big visions are so important - always remember that’s what you’re delivering against, not the details.&lt;br /&gt;•	We get carried away with reusability – make sure the expected demand for it to be reusable justifies the cost of building it in a reusable way.&lt;br /&gt;•	How you design your system can make it more change-friendly or less change-friendly, this is how architecture can help.&lt;br /&gt;•	People are the biggest factor – there is a fine line between continuous improvement and gold plating.&lt;br /&gt;•	Don’t underestimate malleability of code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	People typically associate change with risk or loss.  Part of the trick to getting buy in to ideas and making people happy to adopt changes is to address good-old-fashioned “what’s in it for me?”&lt;br /&gt;•	Abstraction layers scares me because we’re not getting smarter at the same rate that we’re abstracting away from the primitives.  I think we have a problem as an industry, which is convincing people to &lt;a href="http://www.eachan.com/2008/09/don-be-developer-be-engineer.html"&gt;learn to be engineers&lt;/a&gt; (computer scientists) over quick and dirty coders (learn Java in 28 days and get a job).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.iasahome.org/web/home/about/leadership"&gt;Paul Preiss&lt;/a&gt; – President, IASA&lt;/strong&gt;&lt;br /&gt;•	Dealing with how we establish architecture as a profession in it’s own right.&lt;br /&gt;•	To be a profession something must have:&lt;br /&gt;1.	An identifiable body of knowledge&lt;br /&gt;2.	Able to enter this trade without having to have been something else first&lt;br /&gt;•	Helping to realize architecture as a profession is a key purpose of the IASA group.&lt;br /&gt;•	America Institute of Architects formed in 1857 because (sound familiar?):&lt;br /&gt;1.	It is difficult to solve real architecture problems due to lack of targeted resources&lt;br /&gt;2.	It is difficult to find experienced architects&lt;br /&gt;3.	It is difficult to be of maximum value to our employers due to lack of stable job definition&lt;br /&gt;4.	It is difficult to tell a qualifies architect from an unqualified one&lt;br /&gt;•	Architects tend to be in one of 4 major groups:&lt;br /&gt;1.	Corporate&lt;br /&gt;2.	Vendors&lt;br /&gt;3.	Thought leaders&lt;br /&gt;4.	Service integrations&lt;br /&gt;•	Professional perspectives and skills taxonomy are resources we’re trying to build up – providing that ‘identifiable body of knowledge’&lt;br /&gt;•	The &lt;a href="http://www.iasahome.org/web/home/skillset"&gt;skills one must master&lt;/a&gt; to truly deserve the title of architect are:&lt;br /&gt;1.	The IT environment&lt;br /&gt;2.	Business technology strategy&lt;br /&gt;3.	Design&lt;br /&gt;4.	Human dynamics&lt;br /&gt;5.	Quality attributes&lt;br /&gt;6.	Software architecture&lt;br /&gt;7.	Infrastructure architecture&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Working towards formalizing architecture as a practice, a role, and a valuable and necessary part of a team is a massive undertaking – we have work to do here as an industry.&lt;br /&gt;•	Perhaps the key to this is working backwards from result?  Maybe we need to ask ourselves “how do we test for architecture?”  If we can work out what we’d be able to observe in an organization with this nebulous architecture thing in it vs. one that does not, then we’ll have an answer and some benefits to point at!&lt;br /&gt;•	In the short term we can’t test for architecture so how do we find them?  Well you can test for thinking patterns, values, and philosophies so look for the ones that contribute the most to your organizations definition of success.&lt;br /&gt;•	Perhaps we need a charter?  Some publically visible set of principles that anyone engaging a software architect should expect to be met?&lt;br /&gt;•	Good to see the ‘ities’ discussed as central to what we do.&lt;br /&gt;•	I still say it’s science Mr. Preiss – but pragmatic science!  We solve real-world business problems by using our skill and experience to apply the right technology.&lt;br /&gt;&lt;br /&gt;And with that I must once again apply my problem solving skills to the problem of unconsumed beer.  See you tomorrow, same bat-time, same bat-channel...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-2001526929972344667?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/2001526929972344667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=2001526929972344667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2001526929972344667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/2001526929972344667'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/iasa-connections-day-2.html' title='IASA Connections - Day 2'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-4137449682580645215</id><published>2008-10-07T03:02:00.001+01:00</published><updated>2008-10-13T14:50:45.225+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>IASA Connections - Day 1</title><content type='html'>This week I skipped across the Atlantic to attend the International Association of Software Architects &amp; Architect Connections conference in San Francisco.  Between my failed attempts at getting a chapter off the ground in Romania and being a long-standing member of the London chapter, IASA has been a hugely valuable organization to be associated with.  There are regular activities at most major IT hubs in the world, with a strong focus on sharing ideas and meeting other people with similar technology challenges.&lt;br /&gt;&lt;br /&gt;For the next 3 days I have a fairly hefty schedule of people to meet and sessions to attend - so I'll try and throw up a brief summary post at the end of each day covering what's discussed.  So let's dive straight into day 1:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.davidchappell.com/"&gt;David Chappell&lt;/a&gt; - serial technology writer and speaker, Chappell &amp; Associates&lt;/strong&gt;&lt;br /&gt;•	Gave the first days keynote on cloud computing, covered the basics (this is still a very misunderstood topic) and direction over the next few years.&lt;br /&gt;•	Cloud computing falls into 3 main categories; cloud delivered products like windows live, attached services such as spam filtering and email antivirus, and cloud platforms like EC2 and S3.&lt;br /&gt;•	There will always be a mix of 'onsite' software and cloud based services in every organization in the future - so clouds will not rules the world!&lt;br /&gt;•	Advantages of cloud computing include lower costs and less financial risk (as capacity grows with demand, rather than having to build for peak from day 1).&lt;br /&gt;•	Disadvantages of cloud computing include trust issues, data protection, and regulatory requirements.&lt;br /&gt;•	Important to distinguish between consumer (free and ad supported and usually less reliable) and business (usually paid directly and covered by an SLA) cloud solutions.&lt;br /&gt;•	Underlying message is really about change and how hard it is - and how this relates to making the paradigm shift we need to get the enterprise to accept cloud as a valid technology.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	The cynical side of me can’t help but think we’re throwing things we've been doing for ages (like hosted email virus and spam checking) into the cloud bucket now that we came up with a new word for it.&lt;br /&gt;•	I consider some of the constraints of building on a cloud platform to actually be benefits – forcing developers to abstract away from hardware means you’re building systems that are inherently more scalable, available, and hot maintainable (whether deployed in a cloud or onsite).&lt;br /&gt;•	Lack of enterprise strength SLAs are keeping a lot of organizations away from cloud computing.  Perhaps we as engineers have an obligation to help the business start to look less at SLA and more at actual performance?  Most of the time a cloud infrastructure will trash a fixed internal hardware deployment in overall availability yet he SLAs don’t yet demonstrate this.&lt;br /&gt;•	Cost is very much still a factor when moving to a cloud deployment, but you move to a marginal cost consideration – you don’t want to run an expensive piece of code for each hit, since that unnecessarily increases the cost of the hosting.  In a traditional model it doesn’t matter so much if you have expensive code running most of the time if you’re using capacity normally idle except during peak – now that costs you every time you execute it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://drneil.blogspot.com/"&gt;Dr Neil Roodyn&lt;/a&gt; - independent consultant, trainer and author (and big fan of XP)&lt;/strong&gt;&lt;br /&gt;•	The “capital A” Architect vs. the idea of “little a” architecture, talking about what the role really should be and how it works in agile.&lt;br /&gt;•	In software we sometimes borrow a little to heavily from industrial engineering.&lt;br /&gt;•	Architecture is a practice created to try and put predictability back into a process that is inherently unpredictable (software delivery).&lt;br /&gt;•	Traditionally we try to separate design from construction – i.e. have really smart architects design the system and then any idiots can code it – and how this is flawed thinking.&lt;br /&gt;•	Change is inevitable in software projects, most of our traditional processes require rigid and stable requirements in order to be successful but this is not real life.&lt;br /&gt;•	Do the best developers only end up architects because we romanticize the role too much?  Or it is the only way they see they can get career progression?  Wouldn’t we rather have the best coders coding?&lt;br /&gt;•	Maybe we need to start looking at developers more as craftsmen and less like engineers?&lt;br /&gt;•	Be careful how you incentivize people, because that’s what you’ll get!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Something omitted here is that the quality of an engineering team’s output can never exceed the quality of it’s input, so there is a strong dependency on working well together with customers to truly understand requirements and make the right tradeoffs.&lt;br /&gt;•	Incentive is a very valid point, if you measure architects on creating verbose design documents or UML diagrams then that’s what you’ll get – try measuring them on quality, working software.&lt;br /&gt;•	The people that know how best to solve problems are the people closest to their effects, so architecture has to be about harnessing the individual developers skill, experience, and exposure to the domain – not trying to tell them what to do.&lt;br /&gt;•	I quite like the label “engineer” because it stands for solving real world problems with technology – but I do agree the process does need to be considered to be more creative than it currently is.  I recently read something that likened software development to film making, which I think is a powerful analogy.&lt;br /&gt;•	Why does IT have such a bad reputation?  I don’t think it is as simple as failed projects, I think it is how they’re ‘washed up’ afterwards too.  Working closer with customers along the way makes sure they’re aware of the impact of their decisions (changing/adding requirements) so you can easily end up with projects over time/budget, which are not considered failures by the business – because they expected it and were involved along the way.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.infoq.com/presentations/shoup-ebay-architectural-principles"&gt;Randy Shoup&lt;/a&gt; - Distinguished Architect, eBay&lt;/strong&gt;&lt;br /&gt;•	The architectural forces governing eBay are scalability, availability, latency, manageability, and cost.&lt;br /&gt;•	Their architectural strategies are partition everything, asynchronous everywhere, automate everything, and remember that everything fails!&lt;br /&gt;•	Data partitioning is dividing DBs by functional areas (user, items, feedback) then sharding so that each logical DB is horizontally partitioned (by a key such as itemID) which provides scalability for write heavy data sets.&lt;br /&gt;•	CAP - their system prefers availability and network partition tolerance and thus trades away consistency.  Variable window for different features.&lt;br /&gt;•	Functional segmentation at application server layer follows the same pattern as the databases (selling, search, checkout).&lt;br /&gt;•	Most operations are stateless which means the most basic, off the shelf load balancers can be used to horizontally scale application server tier.&lt;br /&gt;•	When travelling though the system, what state is generated is accumulated in cookies, URLs, and a scratch (periodically flushed) DB.&lt;br /&gt;•	Patterns used:&lt;br /&gt;1.	Event dispatch (new item listed, item sold)&lt;br /&gt;2.	Periodic batch (auction close process, import 3rd party data)&lt;br /&gt;3.	Adaptive configuration (dynamically adjust consumer thread pools and polling frequency based on SLAs)&lt;br /&gt;4.	Machine learning (dynamically adapt experience by collecting data for the day on for example recommendations and then try different ones next day)&lt;br /&gt;5.	Failure detection (collect data on activity send on multicast message bus and listeners watch for certain error messages)&lt;br /&gt;6.	Rollback (entire site redeployed every 2 weeks and no changes cannot be undone, features rolled out in dependency tree order)&lt;br /&gt;7.	Graceful degradation (switch off non essentials, defer processing to more guaranteed async messages)&lt;br /&gt;•	Message reliability dealt with via framework.&lt;br /&gt;•	Code deployment decoupled from feature deployment, so new versions can be rolled out with dormant functionality (they call this wired off) that can then be turned on gradually.&lt;br /&gt;•	NOT agile and don’t claim to be!&lt;br /&gt;•	Completely redeploy entire site every 2 weeks – although this is more of a constant, rolling upgrade than the big bang it sounds like.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	A very agreeable talk, particularly around deployment, versioning, and A/B testing.&lt;br /&gt;•	The architectural forces are very similar to our &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!162.entry"&gt;6 principles&lt;/a&gt; (&lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!167.entry"&gt;availability&lt;/a&gt;, &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!163.entry"&gt;scalability&lt;/a&gt;, &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!164.entry"&gt;maintainability&lt;/a&gt;, &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!165.entry"&gt;quality&lt;/a&gt;, &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!166.entry"&gt;security&lt;/a&gt;, and &lt;a href="http://eachanfletcher.spaces.live.com/blog/cns!B8A616986315D842!168.entry"&gt;user experience&lt;/a&gt;) and really are just different words to describe the same good practices needed to meet the challenges we have in common.&lt;br /&gt;•	State is the enemy of scalability, and it is refreshing to see someone tackling this well - instead of saying "how can we build a distributed state tracking system this big?" they're saying "how can we build our system so that the functionality does not depend upon a central state system?"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.designpatternsfor.net/"&gt;Rob Daigneau&lt;/a&gt; - Chief Architect, SynXis&lt;/strong&gt;&lt;br /&gt;•	Anti-patterns - human behavior in software projects and how to deal with it.&lt;br /&gt;•	Overdependence on methodology as solution to all problems and smooth project execution – not enough focus on personalities and simple human nature.&lt;br /&gt;•	Individual anti-patterns:&lt;br /&gt;1.	Cyber addict – using only IM or email etc for communication is very efficient, but not necessarily effective as you can lose the meaning of your message.&lt;br /&gt;2.	Fortress – not sharing knowledge and being secretive leads to good old fashioned unsustainable codebases and key man dependencies.&lt;br /&gt;3.	Ugly baby – too little care taken with how and when criticism is issues can lead to valid advice and points being ignored to the detriment of the project.&lt;br /&gt;4.	Perfectionist – believing that masterpieces are the only way every time can lead to unnecessary gold plating, artificially inflating the cost and time to market beyond what’s beneficial to the organization.&lt;br /&gt;5.	Conquistador – being overzealous about "the one way to do it" can mean failure to make good tradeoffs.&lt;br /&gt;6.	Workaholic – not having the right work/life balance will only lead to burn out and mistakes made.&lt;br /&gt;•	Team anti-patterns:&lt;br /&gt;1.	Hazing – throwing people into the deep end with very little coaching or attention to integrating with the existing team often means they take a long time to become productive.&lt;br /&gt;2.	Fight club – the organization can become a casualty in pointless battles between architects and developers, developers and testers etc unless teams learn to work together.&lt;br /&gt;3.	Wishful thinking – working out some estimates that show a certain milestone cant be reached in a certain timeline means just that, no matter how much you’d like it not to.&lt;br /&gt;4.	Firing squad – if people are scared to disagree or the culture doesn’t encourage the introduction of new ideas; the organization can be robbed of great value that stays locked away in engineers’ heads.&lt;br /&gt;5.	Too many cooks – if there are no clear boundaries then consensus becomes a huge issue and teams become paralyzed, unable to make progress because of endless circular discussions.&lt;br /&gt;•	Leadership anti-patterns:&lt;br /&gt;1.	Deer in headlights – if a leader wont (cant?) make a decision then the company stands still and competitors gain ground.&lt;br /&gt;2.	Cliff jumpers – taking risks for the sake of risks or making decisions on dangerously incomplete data can waste time, money and patience.&lt;br /&gt;3.	Spin zone - talking talk not walking walk gets transparent pretty quick.&lt;br /&gt;4.	Drill sergeant – exercising authority in an aggressive way makes very short-term gains and never gets a team behind a goal.&lt;br /&gt;5.	False summits - artificial deadlines or objectives can be dangerous, if the activity doesn’t turn out to be committed to, a loss of morale and trust in management can result.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Reasonably fundamental stuff for experienced management but good to see it getting airtime in this crowd, architects typically come up via technical tracks and probably don’t spend enough time on their influencing and consensus building skills given how important a part of the role this it.&lt;br /&gt;•	This would have been a good opportunity to talk more about incentive and how it drives behavior.  A lot of anti-patterns can be traced back to KPIs that encourage/reward the wrong things.&lt;br /&gt;•	Preventing burnout and keeping sustainable development going are some key reasons I like SCRUM – working in sprints gives you a cyclic mix of high intensity work interspersed by more passive, thoughtful phases.&lt;br /&gt;•	I liked the Gerald Weinberg quite "no matter how it looks at first it is always a people problem".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.solidq.com/na/MentorDetail.aspx?Id=54"&gt;Ken Spencer&lt;/a&gt; – Practice Manager, Solid Quality Mentors&lt;/strong&gt;&lt;br /&gt;How agile applies to traditional, formal technical projects using a current project for the US government as a case study.&lt;br /&gt;Manufacturing background so most examples look back to this experience.&lt;br /&gt;Looking at why most projects fail – this is because people fundamentally keep doing what they do.&lt;br /&gt;Given that we almost automatically repeat what we know, the good news is that this means being successful once significantly increases the likelihood of being successful again.&lt;br /&gt;Spend commensurate amount of time planning - you need plans but you need to know when to just start work and learn from doing.&lt;br /&gt;Good enough – what are the testing criteria and when are you into diminishing returns?&lt;br /&gt;The ‘love curve’ which is a cycle you go through when taking over a failed project; initially distrusted though bad experience, then looked upon as savior, then reality sets in, then they see sustainable success.&lt;br /&gt;Getting back to basics – when things go off the rails look first at the simplest units of work the team ought to be doing and this is usually where you will find your answers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I think&lt;/strong&gt;&lt;br /&gt;•	Largely based on the agile manifesto, so we have a pretty strong philosophical connection here.&lt;br /&gt;•	Slightly damming of waterfall, at the end of the day it isn’t all bad and isn’t evil, I think it’s quite suitable for very repeatable, commodity projects as long-horizon predictability is possible and the phase space of all possible features is finite.&lt;br /&gt;•	Not sure I like the label ‘formalized’ when used to describe waterfall vs. agile, as this kind of indicates less control, visibility, and organization around agile when in fact I think these are some of its strengths.&lt;br /&gt;&lt;br /&gt;Whew!  Time for beer now, see you tomorrow…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4740937111045053616-4137449682580645215?l=www.eachan.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.eachan.com/feeds/4137449682580645215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4740937111045053616&amp;postID=4137449682580645215' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4137449682580645215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4740937111045053616/posts/default/4137449682580645215'/><link rel='alternate' type='text/html' href='http://www.eachan.com/2008/10/iasa-connections-day-1.html' title='IASA Connections - Day 1'/><author><name>Eachan Fletcher</name><uri>http://www.blogger.com/profile/11975739524615592926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://1.bp.blogspot.com/-rYr7Ie0PFxc/TomScxES2ZI/AAAAAAAAAaw/HoPOtVv7GMo/s220/HanSolo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4740937111045053616.post-7601293759999329445</id><published>2008-10-02T13:44:00.001+01:00</published><updated>2008-10-02T13:44:00.903+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Scheduled Reboots and Natures Way</title><content type='html'>One of the basic aspects of a biological computing mindset is the appreciation that nothing lasts forever.  Everything degrades, corrupts, and dies over time - and that is perfectly normal, because it's duly replaced by a fresh-faced youngster, eager to service the rest of the organism [system] from a nice, fresh 
