tag:blogger.com,1999:blog-47409371110450536162024-02-19T10:45:23.749+00:00The Fletcher ProjectThe 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.Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.comBlogger162125tag:blogger.com,1999:blog-4740937111045053616.post-26719324059773352232018-06-15T19:14:00.000+01:002018-06-15T19:22:17.729+01:00NestEgg is hiring!<span style="font-family: "arial" , "helvetica" , sans-serif;">I founded NestEgg a little over a year ago, and it's been an INCREDIBLE first year. We've created an AI that replaces the need for a human property manager, delivering happier tenants, less stressed landlords, and better deals on tradespeople.</span><br />
<br />
<div style="color: black; letter-spacing: normal; margin: 0px; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: small; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">As a small team of co-founders we have achieved a lot over the last 12 months; validated our idea, launched a successful beta in a test market, signed a bunch of awesome distribution deals, and - most recently - closed our first round of external funding. That last one means we can now dial it up to 11, so we need to grow the team!</span></div>
<div style="color: black; letter-spacing: normal; margin: 0px; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: small; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br /></span></div>
<div style="color: black; letter-spacing: normal; margin: 0px; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: small; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><b>WE ARE HIRING</b></span></div>
<div style="height: 0px;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span></div>
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">NestEgg is at the center of two things that are exploding with new ideas, innovation, and investment - cognitive computing and prop tech. As an ex-CTO I find this incredibly stimulating, and as a current CEO I am energized by the powerful customer outcomes we can create with this platform. It's not just technology to us, it's technology with a purpose. A purpose that really matters to tens of millions of people across the US on a daily basis.</span><br />
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">We're offering all the creative freedom and influence an early startup usually provides, as well as a life-changing stake in that future outcome. We're a distributed team with tons of flexibility, so finding the absolute best people is more important to us than current location.</span></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br /></span></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><b>Our standard package includes</b></span></span></span><br />
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">Competitive salary for early companies</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">Significant equity stake - you will <i>really</i> own what you do</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">Bonus tied to clearly established business metrics</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">Flexible healthcare package</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">401k integrated with payroll</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">Tech allowance to upgrade phones and laptops</span></span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">A 'take what you need' vacation policy</span></span></li>
</ul>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;"><b><br /></b></span></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;"><b>In return we expect</b></span></span><br />
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Strong sense of urgency and ownership</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Accomplished technical skills in more than 1 domain</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Experience in a consumer facing internet business</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Comfortable working in a distributed environment</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Experience collaborating with a multi-disciplinary team</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Demonstrated intuition and proactivity; can execute against broad goals</span></li>
</ul>
<ul>
<li><span style="font-family: "arial" , "helvetica" , sans-serif;">Appetite for personal growth and taking on new things</span></li>
</ul>
<br />
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif;">We need a couple more product-minded full stack engineers and a great, customer-first UI developer. The people we want to bring on will know what it really means to be entrepreneurial; to execute quickly across a broad set of contemporary technologies (without sacrificing quality!) and be passionate about creating a future outcome that transforms an entire industry.</span><br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">If developing your career in these areas is something you're excited by, then <a href="mailto:eachan@nestegg.rent" target="_blank">get in touch</a> so that I can tell you more of the story of a better future you could be part of making come true.</span></span>Anonymoushttp://www.blogger.com/profile/05240222221652024266noreply@blogger.com0Chicago, IL, USA41.8781136 -87.62979819999998241.4995241 -88.275245199999986 42.256703099999996 -86.984351199999978tag:blogger.com,1999:blog-4740937111045053616.post-33260675094645047402018-04-20T16:57:00.000+01:002018-04-21T20:00:57.307+01:00Making good decisions in a startup<span style="font-family: "arial" , "helvetica" , sans-serif;">Welcome to my first post in a long time. What changed?</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I recently started my own company and the single most important thing to get right is fast, good quality decision making. The quality comes from analytical thinking and a quest for evidence, but the speed comes from having a shared framework that makes conversations more efficient. So I wrote this for us as a team:<br /><br />First, let's establish the case for not thinking. Using cognitive shortcuts (assumptions, patterns, heuristics) is an extraordinary evolutionary advantage - it is metabolically very cheap (compared with reasoning over the complete field) and allows you to focus your very finite attention on the one or two variables you're able to actively manage in flow. This kept us alive for hundreds of thousands of years when training a neural pathway to associate movement in tall grass with an imminent predator threat was a fundamental survival advantage. We seldom face such primitive and fatal threats any more, but our brains still parse the world in exactly the same way - we look for ways to reduce the complexity around us and respond from pre-established instincts, not analytical evaluation.<br /><br />Thus an evolutionary advantage can become a hindrance in the modern world, although it is still very applicable in most ordinary, day-to-day situations. Most of your interactions with other people are straightforward and monotonous, and not thinking through every aspect of those from first principles is tremendously useful.<br /><br />The downside comes whenever you're doing something new, which you almost always are in a startup. Whether it is taking on tasks that are new to you as an individual, or it is your disruptive company doing something that has never been done before, you haven't developed any useful pathways for these things. But that is not what <a href="https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow" target="_blank">your sneaky brain will want you to believe</a>! Because of the low cost and high success of this cognitive mode, you're brain has gotten pretty good about misleading your perception of what you've really though through and what you haven't.<br /><br />So what can we conclude so far?<br />(1) Heuristics are super useful evolutionary advantages for dealing with most situations in daily life.<br />(2) They are so useful - and so cheap - that your brain will try and avoid any analytical thinking it can, even fooling you into thinking you know things you don't.<br />(3) The impact of this is amplified when you're doing something new, for example a startup.<br /><br />Therefore, it is vital to build some introspective awareness of this, and be very deliberate about how decisions are made when you're building a new company by exercising [at least some] new skills against a new idea. The degree of novelty you face will be high, the frequency and importance of decision making will be high, and that's going to be demanding. You need to be deliberate about this and you need good tools for thinking.<br /><br />Let's talk about protocols to make this more effective, if not necessarily easier:<br /><br />When approaching an ambiguous decision - which we define as a need for direction or choice before progress can be made in an area that the participants lack significant prior experience dealing with - the place I like to start is establishing some criteria for the outcome. Making decisions is about selecting a path which is preferred over all available alternative paths, so ask preferred how? For example you might say that you prefer options that achieve a quicker time to market, or a lower cost, or require fewer external dependencies, or can be reused in other situations you're confident you will need to address in the near future, etc. Be specific and measurable, and avoid tautologies like 'best choice for us' etc, you are defining precisely why an option would be the best choice. These give you dimensions against which to evaluate options, and that's where good research comes in.<br /><br />But - before we start on that - it is worth touching on weighting. Important decisions seldom come down to a single dimension (although it can be a real advantage if you can make that happen) and, whenever you are dealing with n criteria with n options, you will almost always find that each options outperforms the others along different dimensions. That is to say you more often end up with a collection of options that are all 8/10 instead of one 10/10 and a bunch of 3/10s. Giving each dimension a unique weighting is the most effective way to bring clarity - you declare what you value most, and the best path to that presents itself and makes its associated tradeoffs clear (ie the things it did not score highly on).<br /><br />Next you need to take another step back, and question whether or not you're even aware of all the possible paths! I have seen a lot of regret from teams that rush to make a call on something, select from what they know, and then become aware of much better options they had available to them only once it's too late and they're committed. When enumerating the options keep in mind that you're dealing with a situation your group has little expertise in, so it is unlikely you'll be able to just get in a room and come up with all the relevant options as a team.<br /><br />If the novelty is driven by your new, different idea, then there is unlikely to be a lot of prior art to uncover (i.e. you cant just learn off others). So you will need to engage in some generative exercises to create options. If you're familiar with product design, the product discovery process has a whole set of activities you can select from that will focus your creative energy in a practical way. Literature I would recommend here are things like <a href="https://www.thesprintbook.com/" target="_blank">Sprint</a> and anything in general on discovery methodologies.<br /><br />If the novelty is driven by you and your team members taking on new roles you're less familiar with, then congratulations, this is the easier problem to solve. All you need to do is find a few people (definitely more than one) who have faced the same situation you're currently in and absorb their experience.<br /><br />When looking at prior art you will inevitably find a distribution of opinions on your current dilemma. If it were an easy issue then you wouldn't be struggling with it - regardless of novelty - and viewpoints on complex issues seldom converge. In fact, if you do find consistency in the opinions you're collecting, that is a red flag and I would suggest deliberately looking for outliers. Once you have a few different ideas to work with, you can further process that data by evaluating your sources. Look for things like quality (i.e. how qualified is the person and how do they index generally in this discipline), think about the context they were in when they made their similar decision that you're attempting to learn from (how similar was that to your situation), and what are their motivations or incentives attached to helping you (for example someone selling a solution which could apply to your current problem may not be as unbiased as you'd like).<br /><br />The point is to differentiate the individuals you've sampled such that you can sort them into more credible/relevant and less credible/relevant. That will help you decide which advice to follow most closely. While you're at the stage of evaluating the quality and motivation behind the data points you've collected, I also think it is important to pause here and reflect on your own biases. <a href="https://digest.bps.org.uk/2018/04/20/our-brains-rapidly-and-automatically-process-opinions-we-agree-with-as-if-they-are-facts/" target="_blank">It is human nature to love our own ideas</a>, so anything you hear that confirms your own initial guess is likely to be taken more seriously than it otherwise might be on its own merits. Always tie things back to your early criteria for the decision - this technique can move the conversation from which idea you 'like the best' back to something more objective, and based on the measurable outcomes you've declared.<br /><br />Most of these decisions are going to be team based - in a startup you're a small group and everyone is super engaged in everything. I recommend adopting some frameworks to help execute the decision and prevent it from becoming directionless or combative. Something like <a href="https://en.wikipedia.org/wiki/Responsibility_assignment_matrix" target="_blank">RACI</a> can bring structure to the process by established clear roles relating to how input will be taken, how the decision will be made, and how it will be communicated. I have seen this radically accelerate how quickly and constructively a group reaches a conclusion.<br /><br />My next protip would be to document everything. Keep some notes on criteria, options, key discussion points, and conclusion. Human memory isn't reliable in the way most of us think it is, and your ability to look back on today from some point in the future and review your performance will be extremely limited without a decent log. Closing the loop on what outcomes were realized vs what predicted is an essential habit to get into if you want your team and your company to grow and improve. Do not skip this, even when you're super busy.<br /><br />A few final thoughts specifically for leaders:<br /><br />There's contemporary - and dangerous - rhetoric in many corporations along the lines of 'everyone is entitled to their opinion/all opinions are valid' etc. The problem with this is it removes an individual's responsibility to put forward properly researched and rational arguments. If you can just trot out any old utterance and have it considered equally valid input with an evidence-based analysis someone else worked hard to put together, then there is no incentive to put in the hard thinking it takes to get to quality decision making. Everything degrades into a war of opinions and, in those situations, a hierarchy always wins and we're all generally aware that <a href="https://www.forbes.com/sites/derosetichy/2013/04/15/what-happens-when-a-hippo-runs-your-company/" target="_blank">HIPPO has a weak correlation with good results</a>. I recommend holding your team to a high standard of discourse, and being very clear that active participation is encouraged, but active participation comes with some expectations.<br /><br />Speaking of active participation, you should always be looking for neurodiversity on important issues. That means deliberately looking for dissent, and it is especially important if everyone seems to be agreeing. In On Liberty, John Stewart Mill said:</span><br />
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">"</span><span style="background-color: white; color: #181818; font-family: "merriweather" , "georgia" , serif; font-size: 14px;">He who knows only his own side of the case knows little of that. His reasons may be good, and no one may have been able to refute them. But if he is equally unable to refute the reasons on the opposite side, if he does not so much as know what they are, he has no ground for preferring either opinion... Nor is it enough that he should hear the opinions of adversaries from his own teachers, presented as they state them, and accompanied by what they offer as refutations. He must be able to hear them from persons who actually believe them...he must know them in their most plausible and persuasive form."</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br />I think that is a powerful way to highlight one of our cognitive weaknesses. Human reasoning is fundamentally flawed and limited, and it is only when we push against one another that we gain real quality in our thinking. Seeking out opposing views - again, well structured and properly argued - is essential to fully testing the dominant hypothesis before you start acting on it. I have changed my mind a lot - and been glad I did - using this behavior.<br /><br />To close with I offer you a 'brain hack' of sorts; small adjustments in the language you use externally can change how you process information internally. When formulating hypothesis I suggest replacing "I think..." with "I would like to find out if..." because it divorces you from your own ideas (so you're less likely to display bias towards that option) and it places the emphasis on discovery, not declaration (you're setting up an investigation and you'll be led by the evidence, not stating a position).</span></div>
Anonymoushttp://www.blogger.com/profile/05240222221652024266noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-88563507406740543512015-07-14T06:27:00.002+01:002015-07-14T06:28:59.454+01:00Career Advice and That Jason Post<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Last week <a href="http://calacanis.com/2015/07/04/the-most-important-piece-of-advice-for-folks-starting-their-careers/" target="_blank">Jason Calacanis wrote this post</a>, and I sent a kind of expansion of it to my team. A few of them came back and told me I should post it, so here goes...</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">This one stood out from the general noise in ‘career advice tweetstorms’ because, when I read it, I thought to myself holy shit that is exactly how I think of people and exactly how I know my boss thinks about me. That is pretty important intel for anyone hoping to achieve meteoric growth in my kind of company, so I think it is worth you each internalizing what it means for you. Let me break it down a little more first, into some more grounded practicalities:</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">1 and 2 are items I consider pretty immutable, so just do it. Besides - this isn’t work. If you’re in the right career then this is fun, you’re passionate about it, and you eat it up 24x7 whether you’re paid for it or not. It doesn’t feel like work. Achieving mastery in your craft is its own reward. However I acknowledge that not everyone can be in a job they find personally fulfilling and enlightening and, if you are in a product or technology role just because it pays well, then I’m not going to get all preachy about your motives. Just keep in mind that if you want to stay in that role and keep growing the rewards over time, then you need to do this just as much as (and maybe more than) those who are pursuing their passions. Because they will leave you behind, and they will out-compete you for the best roles.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">3 is where Jason and I are going to disagree or – at best – there is a subtlety we agree on for which ‘startup’ is useful shorthand. Where I think we might philosophically agree is that you need to get somewhere where you can be individually visible (not buried in a huge team of homogenous ‘resources’) and your ability to step up and take on more, to exceed the normal boundaries of your primary responsibility, are not structurally constrained. Big, mature organizations tend to be set up such that the system of production (roles/structure, process, inputs and outputs) is defined in the abstract, and pursued ahead of unique or especially talented individuals who may not fit easily into any one predefined box. And, because these things tend to become more rigid over time, it is difficult to exceed one’s personal remit in a constructive way. Pick a business in a growth industry, and pick a team which is big enough to do cool stuff but not so big as to require Vogon-like bureaucracy, and pick a boss who values utilizing (and stretching) individuals where their passions and aptitude converge over having everyone nicely fit into a tidy box with the ‘right’ label on it. Startups are like this out of necessity – that’s why I can agree that ‘startup’ is a compact way to communicate this kind of sentiment – but they don’t have a monopoly on this. It can be a sustainable lifestyle choice in any phase of a business.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Item 4 is one of the characteristics I have seen in almost every high potential high performer I have had the pleasure of looking after. To what Jason already has there I would add two things; first working hard and taking on more doesn’t mean being in the office 24x7. It just means intensity, urgency, focus, and prioritization. I won’t personally give you any points for being in the office any longer than me – in fact I am slightly more likely to wonder if you need a little extra support. Second thing here is to know your cake from your icing, as a really fabulous CEO I worked for a long time ago told me. Go after more, take on more, over-deliver unexpected surprises, but never at the expense of your core responsibilities. The reason your primary role exists at all is because a lot of customers and colleagues rely on you delivering on time and to a high quality. That’s your cake. And if your cake starts to suffer for more icing – all the extras etc – that marks the difference between a high performing high capacity individual who is obviously in need of a promotion and an irresponsible slacker who doesn’t understand the business needs and is letting the team down.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">I work with a few companies at different stages of growth, and I wish I saw a little more of item 5 everywhere I go. You should actively look for chances to do this, not wait until you’re asked to do a brown bag session or something. The fastest path to true mastery of anything is to have to teach it to another. Or, in career advice terms if you prefer, unless there is at least someone around who is as good as you at what you currently do then this will eventually become a blocker to your personal advancement. Giving you a bigger role is important but creates a difficult rubix cube-esque puzzle, but giving you a bigger role when you have a solid, practiced succession plan ready and waiting becomes a no-brainer.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">6 yup another JFDI. This I would enhance with <a href="https://en.wikipedia.org/wiki/Robustness_principle" target="_blank">Postel’s Law</a>. If you practice a kind of ‘human equivalent’ of the robustness principle then you will shut down negativity instead of amplify it and deescalate potential conflict. ‘Assuming positive intent’ is such a powerful tool for keeping everything constructive and feeling awesome about yourself and others.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">I’d read 7 as never be reluctant to ask for things. And not just in reward; also resources, opportunities, mentoring, training, chances to join in senior forums, a place in special projects. Whatever. And I know this town is equity-crazed, and equity is certainly nice, but it isn’t the only way to be rewarded and it isn’t the only path to wealth. Regardless, you should be fairly compensated for the value you create. Amid all today’s rhetoric about leaning in and whatever, just keep in mind that the prerequisite to this is to actually demonstrate your value though real results, consistently over time first. Similar to my addendum on number 4, this distinguishes the merited from the ‘participation award’ crowd who want it all just handed to them for showing up. You own your career.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">8 is table stakes in product. You’re here to define an alternate future, where your company is better tomorrow than it is today. Startups are just one killer feature around which the rest of a business and a complete product emerges, so all the same instincts and behaviors will carry you to success in any product-led business whether or not you might call it a startup.</span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">So that’s some career advice I think everyone can take something away from. I believe that people achieve more and feel more passionate about the product (and stick around longer!) when they can see how doing so is helping them grow and taking them closer to their idea of success for themselves. That’s why this shit matters to me and it matters that my leadership team take it equally seriously for all my people.</span></span></div>
Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com2tag:blogger.com,1999:blog-4740937111045053616.post-48188007086315667162015-01-16T20:55:00.000+00:002015-01-16T20:55:00.037+00:00The power and the pitfalls of test and learn<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">My core philosophy on product is that product/market fit is a journey; it is a function of discovery and learning over time, and it is impractical to expect to be able to make a set of ideal decisions up front (i.e. in advance of any product development and real feedback from real customers).</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">We now live in the world where the fast eat the slow, and I am going to argue that learning <i>is</i> speed:</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">At Hotwire we’ve dramatically improved our business performance in the last year by focussing on learning as a primary goal. It’s a first order metric, along with the ‘hard’ KPIs most businesses are familiar with (revenue, room nights, activations, etc) but - as any good teacher will tell you - measuring learning is extremely hard to do. Fortunately for us, there’s another feature which is both easy to observe and highly correlated with learning: experimentation.</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Whenever you see a high rate of improvement (in nature and in science) you will almost always see a high rate of experimentation. There’s a great Thomas Edison quote which goes something like; “None of my inventions came by accident. I see a worthwhile need to be met and I make trial after trial until it comes.” Most of our early learning as human beings is heavily experiment driven; it is interactions with the world that teach us how to behave effectively within it. But my favorite story about the value of pursuing learning as a primary goal is the Kremer Prize:</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">In 1959 Henry Kremer, an industrialist and patron of early aviation, established a prize of £50,000 for the first human-powered aircraft to achieve a controlled flight. Hundreds of attempts were made over 20 years with no success. And most of these were well-informed experts; aviation companies and universities etc. The prize went unclaimed until 1977 when Paul MacCready won it with his Gossamer Condor. The secret to his success wasn’t being smarter than any of those who previously attempted flights or knowing something they didn’t, it was his approach to the problem being fundamentally different.</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Most teams spent months designing and building their craft, then they took it out to a field or an airstrip to try it out, then they crashed, then they swept all the pieces up and returned to the hanger for another few months to rebuild. MacCready focused not on the airframe that would work, but on a cheap construction which was easy to assemble and disassemble by hand in the field. Using this he was able to try more designs out in one single day than every preceding team added together for the entire previous year.</span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">His formula for success had 2 main features; variation and repetition. You can see this in nature too; natural selection tries out variations of organisms over and over again (optimizing to the ultimate KPI - life itself!) as those organisms improve their suitability to their environments. While not strictly mathematical, Fisher’s theorem is a useful formalization of this (and the other examples we’ve discussed here). It goes something like this; “The rate of increase in fitness of any organism at any time is equal to its genetic variance in fitness at that time.” Or, more simply:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The capability to try out more hypothesis at any given time is highly correlated with faster improvement.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">
</span><div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">So learning is speed, and number of experiments is a useful approximation of learning. But before you just count all a/b tests etc, there are some subtleties to success here:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The first thing I like to watch out for is confirmation bias. As you embrace test and learn and make experiments cheaper to run you lower the bar for organizational participation. This is unquestionably another benefit - harnessing the innovation of a larger slice of your org - but not everyone is as academically disciplined as you’d hope, and there is an underlying human tendency to like our own ideas and see them in a less-critical light than the ideas of others. A while ago I was fortunate enough to be able to spend some time with Alan Kay, and he told me that science is the process that stops people from falling in love with their own ideas. This is more than just a principle; if you come up with a hypothesis which you’re trying to <i>prove</i> instead of <i>disprove</i>, you will tend to discount contradictory evidence (i.e. proof points that suggest customers do not like it) and waste a lot of time trying marginally different manifestations of the same core idea in the desperate hope that you can somehow make them love it. You lose speed, not gain speed, this way.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">A fun way to look at this is to examine the difference between scientific thinking and religious thinking. Jack Cohen is another wonderful human being, with a vast amount to teach the world, with whom I had the pleasure of spending a little time. He argues that; in religious thinking all that matters is how hard you believe, especially in the presence of contradictory evidence (it’s there to test your belief). In scientific thinking, all that matters is how hard you doubt, especially in the presence of confirmatory evidence (easy answers there to trick you into overgeneralizing your observations).</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">People will naturally come up with ideas that they like, but good product hygiene is about coming up with ideas that your customer likes. Rigor in testing is the ultimate arbiter which can make that distinction clear to you, if you let it. If you’re not open to being wrong - in fact expecting it and actively seeking to make it so - then you cannot, by definition, learn.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Another big-picture mistake is confusing iteration with learning. It’s a common problem in the whole ‘transition to agile’ world; break up a big-up-front-plan into a number of predetermined phases, label them ‘iterations’ and then cash in your huge cheque as a profound agile coach. Starting with the same inflexible ideas and delivering them across a higher number of software releases has some benefits in terms of quality and system risk, but it does nothing to improve your product/market fit. You had determined the level of product/market fit at the beginning of the project and you have not improved that fit over the whole, say, year you were working on it whether it’s one single release at end of the 12 months on a whole series of incremental drops every two weeks. Learning is about regularly shipping something customers can touch, then watching their interactions with that thing. Looking for where it enriches and where it detracts, and only then deciding on the final scope for that next iteration. The point is that each iteration should reflect the learnings from the previous iteration and improve upon it with respect to the customer experience, and therefore cannot be rigidly determined in advance of that feedback.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">To be inclusive and stimulate the organizational pathways for innovating, a pretty broad filter is useful in the beginning. All ideas are valid, and anything can be reduced to a testable hypothesis. But, as you execute on a test and learn backlog, selecting ideas which are both coherent with the existing product and carry a higher probability of resulting in an improved experience for the customer becomes important. Think back to our Kremer Prize example; while MacCready focused on the ability to explore a large number of variants, he was not randomly experimenting with geometry in the hope that he got lucky and found something that would fly. He was an engineer who ran an aerospace company and he had a detailed understanding of all the mechanics involved in lift and control etc. In user experience terms that means figuring out what customers are sensitive to, and using those things as inspiration points for ideas. On the internet these sensitivities are rooted in behavioral science (decision theory, nudge theory etc) and are often things like social signals (how many others have bought the same item or currently viewing this page), urgency messaging (this is a popular item or this deal expires soon), and recommendation (if you like <i>x</i> you might like <i>y</i>) etc. Discovering what these sensitivities are for your particular product can get you more ideas aligned to the physics of your particular business.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">When talking about ways to increase the likelihood of ‘winning’ tests I always like to reiterate the value of ‘losers’ too. A losing test is essentially an idea someone had for a new product or interaction which, without the experiment disproving the hypothesis, would have resulted in a project that would have taken away valuable product development resources for no (or negative) return. What did you save right there? How much customer attrition did you avoid by staying away from that unpopular option?</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">There is much more to doing this well - a whole series of posts wouldn’t do it justice - but I like to focus on the quality of the thinking first.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">So does learning == speed? At least in the special case of how rapidly you can get to the right product/market fit and grow, it certainly does here. Is the number of experiments a good heuristic for organizational learning? If you chart the improvement in our real business performance and the number of concurrent tests over time, you see very similar growth curves, just as Fisher’s theorem predicted...</span></div>
Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-91268710005578909452014-05-31T23:09:00.001+01:002014-05-31T23:09:48.870+01:00A brief lesson on company culture and local optimum<div style="text-align: justify;">
<i>Culture governs what happens when the CEO isn't in the room</i> - or something like that - is one of my favorite little soundbites. Like all the most profound things I collect I'm not responsible for its genesis and, after a brief google search, I can't definitively pin down a source. So I'm in the academically-uncomfortable zone of having to leave a quote uncredited... shiver...</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I believe in principles and purpose guiding the actions of independent thinkers over prescribed activities and traversing an entirely predetermined course to an arbitrary long term goal (which discourages learning and responding to the environment).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The behavioural norms established in any collection of individuals will either enable or constrain that freedom. That is why company culture is important.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
At this point it is probably worth noting that I'm not making an argument for one leadership philosophy being inherently superior to another, I think there are many organizational pursuits which are well suited to the repeatable (ie low variation by design) and predictable activities yielded by closely micromanaging highly prescriptive processes. I simply argue that culture happens, whether you actively choose it or not, and you always benefit from understanding your nature and actively creating a culture within which it will be the healthiest. In the creative and scientific fields I usually act I have a formula that works; based on learning loops, some <a href="https://www.youtube.com/watch?v=Y64ms-htffE" target="_blank">good old AMP</a>, and not trying to tell people smarter than I am what to do. </div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Like most people, my first few executive roles were the first chance I had to run things however I wanted, to really test my values in the real world without compromise. As a potentially unsafe generalisation, you pretty much get to set up your department/division/whatever however you see fit.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
And so I did. And I wrought most excellent, high performing teams, who were quick to adopt and enrich ideas and then turn those ideas into some remarkably successful products. And we all loved every second of our time together, and we always left on Friday smarter than we arrived on Monday.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
That was the outcome I'd hoped for, and I was glad to see some of the principles I held dear proven in the dispassionate and indifferent real world; where the strength of feeling you have for your ideas has zero influence on how effective they are.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
But that wasn't the lesson:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I had created these cultures as microcosms within larger organizations which had dissimilar global cultures. I was fooled for a long time - because it worked so well with only a little friction at the edges - but the real test is what happens when you're no longer there to perpetuate it. To keep this kind of microcosm going within an incompatible host requires constant force to protect the values and establish/defend the space for creativity and (critically) failure. You can do it, and you'll achieve what you want to achieve, but all systems normalize over time and without the constant force <a href="http://www.eachan.com/2012/07/a-few-notes-on-leadership.html" target="_blank">entropy kicks in fast</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
One of the things leadership is about is creating lasting change, a journey that is bigger than yourself and continues with or without you, so if you're serious about culture and you want to make a sustainable difference, then you need to infect the host (or just be the CEO!). You can use your microcosm to prove the effectiveness of a different set of behaviors but, if you can't cause that change to ripple outwards, then it will most certainly revert when you take yourself out of the situation.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
And, no matter how new you are in a role and how difficult it is to imagine moving on, you will. Unless you suck. Great people always move onwards and upwards; it is so with your teams (and if you're a good boss then you will encourage and enable it) and it is so with yourself (and if you have a good boss he or she will encourage and enable it).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Think about what you'll leave behind, and how that will be perpetuated without your influence.</div>
Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-89932686690351568312013-11-22T15:42:00.000+00:002013-11-22T15:42:45.222+00:00Natural Learning vs Institutional LearningA while back I was lucky enough to spend some time with <a href="http://en.wikipedia.org/wiki/Roger_Schank" target="_blank">Roger Schank</a> after a conference he spoke at. More and more I am finding that a thorough appreciation of human learning, cognition, and memory is essential to the study of AI. His books, especially <i>Scripts Plans Goals and Understanding</i> and <i>Teaching Minds</i>, are timeless essentials.<br />
<br />
His core messages at the event were around how to improve our education system, something I take every opportunity to contribute to, and the contrast he drew between how people actually learn and how we structure education was really arresting as a way to pose the core problem:<br />
<br />
Natural learning is: <br />
<ul>
<li>Voluntary</li>
<li>Interest driven</li>
<li>Goal driven</li>
<li>Depends of failure</li>
<li>Fun</li>
</ul>
Which, on the surface, certainly resonates.<br />
<br />
Institution learning is:<br />
<ul>
<li>Involuntary</li>
<li>Based on the school's goals, not the individuals goals</li>
<li>Individuals interests ignored</li>
<li>Failure seen as bad</li>
<li>Not fun</li>
</ul>
I know a lot of people whose school experiences support at least a handful of these.<br />
<br />
Makes you think. I guess I will joining that PTA after all - although I guess you need to be a P first!Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-76170737029969324102013-08-17T21:01:00.001+01:002013-08-17T21:21:53.926+01:00The business value of technology<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">There's already plenty of material on articulating the value of technology in a business sense, but it tends to be quite - I don't know - <i>corporate</i> I guess, and most focus on the justification of a particular framework or product. That might be quite appropriate in an IT environment, but less helpful in more visceral engineering endeavors.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">So what's the justification for good method, design, and computer science? How do you map that <i>academia</i> to real business concerns? A while back I made a handy reference guide for my business buddies:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"><br /></span>
</div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBK-t0wj-fmyy35zk9mEXE6kPMx2ThskpsS6m0-VJpbI_ti3inMwJYgjBVD708-Lfin6rBj42QtfFoCefPXCv4sTpmYNzMlpuhCajPjdqc078H2qFXhWr9VuZ19r5kmvD2cstcYwzMzhpx/s1600/cto+cheat+sheet.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBK-t0wj-fmyy35zk9mEXE6kPMx2ThskpsS6m0-VJpbI_ti3inMwJYgjBVD708-Lfin6rBj42QtfFoCefPXCv4sTpmYNzMlpuhCajPjdqc078H2qFXhWr9VuZ19r5kmvD2cstcYwzMzhpx/s400/cto+cheat+sheet.tiff" width="400" /></a></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">I don't believe that's comprehensive, but I do believe it's prototypical.</span></div>
Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com1tag:blogger.com,1999:blog-4740937111045053616.post-58217814278526409292013-01-06T21:37:00.002+00:002013-01-06T21:41:59.029+00:00AI and Travel<div style="text-align: justify;">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-520092929 1073786111 9 0 415 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
</style>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">There’s been <a href="http://www.tnooz.com/2013/01/03/news/expedia-starts-testing-natural-language-travel-search-big-data-style/" target="_blank">a bit of coverage</a> recently
about our Natural Language Processing search beta, but all that’s being talked about
is the semantic search element. The
journey we’re embarking upon is <i>much more</i>
ambitious than that, so I want to take a few minutes to fill in the blanks.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">NLP is an important ingredient to this product,
but it is not the product. The ‘product’
is a goal-oriented artificial intelligence specialized for solving travel
retail problems. We need natural
language only to provide a human-like interface into that intelligence.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><b><span style="font-family: Calibri;">Agency</span></b></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">We’re modeling our AI on the human-human
interactions that travel agents have with real people. But first let’s talk a little more about the
concept of agency. ‘Agency’ has a few
meanings, the most important one here being an actor able to interact with the
world. We develop agents ourselves every
day – subprocesses of the mind which are trained to take unsupervised control
of complex tasks for which we have developed some proficiency.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">Driving a car is an example most of us can relate
to. When you first start, you have to
consciously direct all your actions.
Hands at 10 and 2, check the mirror, engage the clutch, watch the
speedometer. After a few years (hey –
I’m a slow learner) you develop what you probably call the ‘knack’ for it and
you can drive around listening to music or holding a basic conversation. Those things you had to think so carefully
about have receded back from your conscious focus, delegated to <span id="goog_1512100694"></span><a href="http://www.consciousentities.com/deadends.htm" target="_blank">a specialized agent</a> who frees up your
attention for other things. You can use
that comfortably in any ‘like’ scenario – ie you don’t need to develop a new
one when you exchange your Toyota for a Honda.
Neat mental tool and fundamental to learning.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><b><span style="font-family: Calibri;">AI</span></b></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">What we’re trying to do at Expedia is mimic this feat
of human intelligence with machine reasoning, to give the level of personalized
service and helpful, relevant support that a customer would receive from a
real, live agent.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">That’s why what we’re doing here is so much more
than a semantic search service; it is more like a conversation which enables a
customer to start with their intent (a beach holiday, a romantic break, cheap
ski vacation etc) and, through an iterative exchange of ideas in
question-answer format, end up with the most suitable travel arrangements made.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">This isn’t a straightforward journey. I was recently lucky enough to spend some
time with <a href="http://stevenpinker.com/biocv" target="_blank">Dr. Steven Pinker</a> discussing this at length, and we concluded
that we understand the “A” but we don’t understand the “I” so this kind of project is
always part research. You have to be
optimistic to be a computer scientist!</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">But search can only really get a little bit
better before we <i>have to</i> make the
leap to AI. To society this is the move
from easy simple access to information to the delegation of problems to
agents. Perhaps now is the right time to
touch on the bigger picture, what the future might look like:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><b><span style="font-family: Calibri;">The
future of search</span></b></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">You won't see <a href="http://www.google.com/" target="_blank">this page</a> anymore. The whole search
space will be superseded by a network of generalized intelligences and specialized
intelligences, and search engines like Google [as you know it today] will become
the back end for that network, no longer a user-facing experience.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">Specialized intelligences will know how solve
specific problems – they'll have what we call domain expertise – such as
changing a washer in a tap, making a candle, or – ahem – planning a vacation.
They'll know how to organize loads of dissimilar data and services into
the logical relationships which allow us to achieve those tasks and only those
tasks. Generalized intelligences will be responsible for marshaling these
specialized intelligences, so that we don't even have to keep an index of the specialized
guys. So any time you want something you'll consult your generalized
intelligence which acts kind of like your e-majordomo; interpreting your
wishes, dividing them up into tractable problems, finding solvers and
delegating problems to them, then assembling the answer which carries the most
confidence and presenting it back to you in human language. Kind of like
how 'people' organizations work today – there are specialists who can undertake
specific tasks for you and generalists who can route you to the right
specialist (and sometimes have some supervisory function). It is a
pattern that we're used to.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">Example; you're going to change your spark plugs
(because you have a classic car – we'll all be hydrogen fuel cells by then!)
so, assuming you're not an expert mechanic, you'll first look up the general
principles – disconnect HT cables, unscrew old plugs, set gap on new plugs,
screw in new plugs, reconnect HT cables. Then you look up the specific
details for your vehicle – Haynes manual kind of stuff – how to remove the
rocker cover for easier access, how to check the cam timing etc, and then you
get your tools and parts together. You need to go any find the right
plugs (obviously) but also need the correct size socket driver and gaskets and
grease etc. That's quite an assembly of information and collecting of
items etc from [potentially] lots of different databases and shops. Or
you could just pose the problem to your personal AI and head straight out to
the garage. Perhaps you’ll also be
receiving step-by-step instructions, <a href="http://en.wikipedia.org/wiki/Augmented_reality" target="_blank">via your HUD</a>, overlaid in real time on the engine itself as you look at it.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">This is long term view. It will happen piecemeal, with sites
gradually becoming more intelligent and starting to offer experiences which
allow you to pose your problem, rather than hunt out information and evaluate
it yourself. Imagine an Amazon where you
could just say “I have a leaky tap” and (perhaps after some Q&A to narrow
down the problem) you’d be shown a pipe wrench, a pack of 1/2 inch washers, and
some DIY guides showing how to apply those tools without flooding your kitchen. Right now it shows me a book called “Death
and Other Things” by Christopher Hall and a mains powered household gas
detector. Today the onus is on me to know
that I need a pipe wrench etc and go looking for those items individually, accumulating
as I go.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">We kind of already do this. Back to our car analogy for a second, the
complex system that is the modern motor vehicle already contains a number of
these agents today. When I was young (oh
no – I have become my parents) my first car had manual <i>everything</i>. I had to change
gears, which meant developing a feel for torque and engine speed. I had to set the choke, which meant
developing an awareness of fuel/air mixture, and I had to switch the radiator
fan on and off, forcing me to have explicit knowledge of engine temperature.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">In other words, driving a car used to require
many more proficiencies than it does today.
The mechanical complexities are managed for us by clever (well, <i>just clever enough</i>…) homunculi so all we
need to do is point it in the right direction and push one lever to go faster
and another to slow down.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><b><span style="font-family: Calibri;">Back
to travel</span></b></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">The most important question to ask about any advancement
in technology is how it will improve the human experience. A future in which specialized intelligences
take away more of our common problems is essentially connecting intent to
effect by fewer intermediary steps.
Appeals to the lazy in all of us.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">From our adventures in machine learning
specifically, we expect to be able to benefit the traveler and the travel
business by:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<ul>
<li><span style="font-size: small;"><span style="font-family: Calibri;">A better user experience; expert guidance through
travel planning instead of imposing a significant research burden upon the traveler.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Calibri;">More intuitive interface which can be entirely
cohesive across dissimilar devices.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Calibri;">Higher conversion rates on sites and apps.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Calibri;">Faster support for travelers in-trip delivered
at a lower cost.</span></span></li>
</ul>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">To do this well any machine learning algorithm needs
a body of knowledge to train it. The
more comprehensive that body of knowledge, the more confidence you can have in the
answers an AI will produce. Expedia is
the world’s largest travel company and has been selling to and supporting
millions of travelers for over 15 years.
That experience is captured in petabytes of data generated by
instrumenting every aspect of the travel experience. This puts us in a really good position to do
something meaningful for the web travel universe with artificial intelligence,
as well as contribute to machine learning and machine reasoning disciplines.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Calibri;">That’s what our <a href="http://www.expediaaffiliate.com/innovationlabs" target="_blank">innovation labs</a> programme is all about </span><span style="font-family: Calibri;">–</span><span style="font-family: Calibri;"> benefiting our partners and contributing to our profession.</span></span></div>
Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-79711886909227402902012-07-29T00:23:00.001+01:002012-07-29T03:42:10.685+01:00A Few Notes on Leadership<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
I was recently asked to talk to one of our teams as part of a series they're doing on leadership, taking a selection of different execs from across the business and getting their take on what it is really all about. Leadership is a topic which resists a definition that is both concise and comprehensive, so I usually prefer to pick out a small selection of what it encompasses and deep dive on those. Here's what I picked out for them:</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<b>Prevent entropy</b>. Entropy is universal and for anything to progress (or even continue to exist) we need to continually add energy to that thing. Groups, projects, initiatives, morale, culture, all these things lose momentum when someone isn't adding energy to them, and it is a primary responsibility of leadership to be the dynamo at the center of the important things.<br />
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<b>Configure the environment</b>. Make it OK to do great things, take the friction out of forward progress, teach autonomy, and empower people without making them feel abandoned. It is a primary responsibility of leadership to establish an environment which encourages talent and quality and is hostile to impediment and waste.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />
<b>Expand minds</b>. Not just add new knowledge but also help people to change their mental models of the world around them; to think differently and be able to conceptualize new ideas. Experimentation, reasoning and analytical skills, and critical thinking are force multipliers for technologists. It is a primary responsibility of leadership to change what people are capable of, to make their organizations about more than just turning the handle the same way.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />
<b>Set purpose</b>. Everyone needs a purpose, and I mean a higher purpose, which transcends job description. The reason you're really here gives you the confidence to make better decisions. For example my guys aren't just here to write some code, or hack away at the Linux kernel, they're here to <i>change the way people build web travel apps</i>. The better you get at describing what that means and why it matters for customers the more independent and powerful your team can become. It is a primary responsibility of leadership to favor being highly <i>descriptive</i> over of being highly <i>prescriptive</i>, because it creates the space for teams to contribute at another whole level, not just follow orders, yet still be totally on strategy.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />
<b>Hire up</b>. Any great human endeavor is bigger than all of us and can only be accomplished by valuing a smart, talented team over valuing being the smartest, most talented person in the org. It is a primary responsibility of leadership to constantly raise the bar and bring in people than make you look <i>dumb</i>.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
But the most significantly thing I think (hope!) this team learned from their research is that leadership is bigger than any one leader. By now they will have heard a variety of different views from the cross-section of leaders they invited to talk to them. Humans like to be able to rationalize complex things down into a single answer, or at least a small set of non-conflicting statements, and in a way I hope that they <i>haven't</i> been able to do that here.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
The message here is that a large organization is more like an ecology than an individual organism, and therefore needs a healthy dose of heterogeneity to thrive. As a leadership <i>team</i> we're capable of things that we <i>individually</i> could not be because we leverage that diversity; the different style and substance we each bring intersects enough for cohesion and extends enough to afford us a synoptic view.</div>
<div style="text-align: justify;">
<br /></div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-70321975072071287032012-04-08T19:21:00.000+01:002012-04-08T19:21:03.608+01:00How Alan Kay changed my mind<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">I
was recently fortunate enough to spend an evening with </span><a href="http://en.wikipedia.org/wiki/Alan_Kay" rel="nofollow" target="_blank"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">Dr
Alan Kay</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">,
followed by a half day talk, followed by 2 whole weeks of slow
burn cognition for it to really sink in. Here are my lecture
notes, because I recognise the rare gift that is time with someone
like Alan and I think the world just might be a better place in
some small way if I share it with you.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Firstly;
a disclaimer. I don’t intend to give a comprehensive synopsis
of the talk, I’m not sure I could even do it justice, I intend to
highlight some of the points which really spoke to me, and the
consequent thinking that they started up in my head.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">New
vs. News</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Alan’s
talk was titled New vs. News and was more of a journey than a
discourse, covering immense ground without meandering into
unrelated territory. At its core was innovation and invention and
how to tap into that </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">je
ne sais quoi</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
which leads to something truly different. More importantly, it
was about how to get people to recognise what you have created and
get it adopted.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">The
theory is that news - something incremental to what we already
have today - is easy for most people to grok because of context.
We already know so much about the general subject it builds on,
and what’s being introduced is easy to understand relative to
that. Example; google instant. We know all about searching the
web, a lot of us have even been ‘trained’ into a new syntax to
coax better results out of that magic little window; I mean come
on, the word google has even become a verb! Getting an ever
changing list of those tasty results back in real time as we typed
was pretty easy to get our heads around. We also possess the
necessary passing appreciation of the other prerequisite concepts,
like speed and relevancy and refining.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">New
on the other hand takes imagination and vision to appreciate,
because we lack the tools necessary to understand it - we have no
common understanding of something else so similar that we can
readily make comparisons and build on that knowledge. Example;
the humble mouse. When that inseparable companion of the GUI was
first rolling around PARC desks in the early 70s it was hard for
people to see the application. Computers were big scary things
which occupied whole rooms, were fed punched cards or magnetic
tape, and standard out was still something very mechanical indeed.
What would one ever really point to? Or click on? We have the
opposite problem now - it is hard imagine a time when mousing
around wasn’t core to the experience of computing. Luckily,
nearly 10 years later, </span><a href="http://en.wikipedia.org/wiki/Steve_Jobs" rel="nofollow" target="_blank"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">a
guy you might have heard of</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
incorporated these concepts into the computers he wanted to build,
and the rest is </span><a href="http://en.wikipedia.org/wiki/History_of_the_graphical_user_interface" rel="nofollow" target="_blank"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">history</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
as they say.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">“If
I had asked people what they wanted, they would have told me
faster horses.” probably not, but frequently attributed to, Henry
Ford.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">My
favourite takeaways</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
</div>
<ul style="text-align: justify;">
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Argue
more, debate less. Arguing is a constructive process of trying to
find out and to illuminate. Debating is trying to win.
Organisations need to take a hard look at their behaviour here;
as soon as you form an ‘organization’ you create a set of agendas
which are irrelevant to problem solving. A group that can put all
that aside - along with their personal preferences on the matter -
and have rational discussions is powerful indeed. I have always
like this sentiment “The mark of intellectual honesty is the
solicitation of opposing points of view.” from a Tom Clancy novel
(believe it or not).</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Science
is the structure which solves the problem of people loving their
own ideas. You have to want to engage in a process which puts
some structure into how you conceptualise a problem, explore the
ideas, and figure out the best solutions. Science is that
framework. As a scientist myself I always identified with the
‘study of/organised knowledge’ definitions, but I really like this
one because it speaks to </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">how</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
you apply science and </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">why</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
you apply science. To remove noise.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Further to defining science; in some follow up with me Alan has pointed out yet another way to look at this; the idea of ideas. It is a disciplined way to free yourself from today, from the constraints of How It Works now. It is a shame that "thinking outside the box" has become a cliche - this is the prerequisite of thinking outside the box. It is acknowledging that <i>there is a box</i>, so that one is able to zoom out enough to see the container one was in, and then start to discover what's been excluded by that container.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">7
± 2 and how people think. George A. Miller’s theory which deals
with how people absorb information. Wikipedia </span><a href="http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two" rel="nofollow" target="_blank"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">explains
this more eloquently</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
than I will, so I will stick to emphasis. Effectively
communicating ideas is a critical skill in science so, along with
strong writing and presentation, a solid understanding of how
people learn and how brains process input is essential knowledge.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Learn
to think. Professional tennis players practice their game for 8
hours a day, what training do we do to expand our mental toolkit
and keep it sharp? We probably think that we do this a lot -
because we’re always thinking - but that stuff is the Wimbledon
Open, not the preparation and training and learning you need to do
to make sure that you’re good enough when you get there...</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Almost
all ideas are mediocre to bad, which is why you get no points for
them, points are awarded for the successful execution and adoption
of one.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">IQ
is less important than you think. In terms of what you’re able to
actually achieve, the impact that you can have on the world,
context [coupled with being smart </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">enough</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">]
is far more important. Example; Leonardo da Vinci invented an
incredible number of machines, vehicles, siege weapons, ways to
automate industrial tasks, but was unable to manifest any of those
creations. Not because he wasn’t smart enough, but because of the
environment. Back in the late 1400’s and early 1500’s the world
around da Vinci lacked the rigid construction materials and the
understanding of chemistry etc which needed to exist to be able to
build and to supply motive power to those inventions. Conversely,
it took Karl Benz in 1881 to build a practical, working motor
vehicle and Henry Ford in 1914 to shape mass production and make
it accessible. Clever men indeed but were they da Vinci smart, or
did they have an environment around them which had the right
collection of primitives solved that they were able to build on?</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Convenience
is a seldom recognised barrier to progress. Most people really
struggle to give up something near and convenient in order to
reach something else bigger and far more beneficial but further
away. Twinkies for you insiders!</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">User
experience and the 250ms timeout. A quarter of a second is how
long it takes for a brain to get bored - to have seen an image and
processed and interpreted it and be ready to act on the meaning -
and feel like it ought to be doing something. Even if that
something is make-work (such as superfluous navigation) because
that improves the </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">perception</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
of speed.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">TEMS.
Tinkering Engineering Math Science. A kind of sophistication
curve societies move through when they start to play with
technology (and haven’t most of us have moved through this in our
education and careers too?)</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Don’t
lose sight of your mission. Companies always start off with a
mission, but can make the mistake of becoming too attached to a
specific instantiation of that mission and then start to believe
that was the real mission all along. Example; railroad companies
in the US started off in the transportation business, using the
technology at the time (rail). They became attached to rail to
the exclusion of progress elsewhere and were outflanked by
competitors that they hadn’t even considered to be competition
(air and road travel).</span></li>
</ul>
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Threads
this started for me</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">My
overall impression was of how much more there is yet to do in my
chosen field. Invigorated. And a little bit humbled by the
distance yet to travel. And specifically;</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
</div>
<ul style="text-align: justify;">
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">So
much of the world is just point solutions. Tiny increments on
what we already do and already know.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Humans
like stories, we’re just wired that way. Things that can be
wrapped up in a narrative are much more digestible by most people.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Simplicity
is </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">always</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
worth the continual investment and stretch that it requires to
achieve.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Having
a vision in technology is 90% imagination and 10% science; then
the job is to transform that into 10% imagination and 90% science
so that it becomes buildable today.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">You
have to invest so much more of yourself than you think into
understanding the problem if you’re really going to solve for it
(or even know </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">what</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
you’re solving for).</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Good
science is timeless. I have met a lot of other
entrepreneurs/innovators/inventors (in the ‘have a patent’ sense
of the word) in my few short years on this planet and the majority
of them have been lucky tinkerers. They usually have an
interesting story which matches the times but no fundamental
underlying lesson which could be applied anywhere. I have always
believed that a rational scientific approach can take </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">anything</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
from point A onward, anytime and in any situation, because it
transcends circumstances and specifics. And this is exactly what
was proven out to me through Dr Kay’s talk, in terms more eloquent
than I am capable of reciting.</span></li>
<li><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">And
finally; it was eye opening to see how much of this was about
humans - the intersection of anthropology and computer science.
If you truly understand people </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">and</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">
technology then that’s when you’ll be able to really change the
world, not just build things.</span></li>
</ul>
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Whew</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">That
all took 2 weeks to cook in my head. I hope it is consumable and
I hope it starts threads in you that lead you somewhere else too.
Something Dr Kay reiterated several times in his half day session
was that his message - the specifics he was trying to communicate
to us - was not nearly as important as how that message makes you
think for yourself. And that makes a lot of sense when you
reflect upon it from a distance.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Special
thanks to the man himself for kindly validating my notes (oh yeah,
and for radically expanding my horizons, that too I guess).</span></div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com1tag:blogger.com,1999:blog-4740937111045053616.post-54099853428741846802011-12-03T17:04:00.001+00:002011-12-04T01:31:40.266+00:00Eachan's 5 Laws of Platform Architecture<div style="text-align: justify;">
Architecture - the shape of the system, the patterns used - is by far the most meaningful thing to get right in any system. Architectural decisions have far more influence on the capabilities and limitations of any given system than the implementation decisions - frameworks and languages - ever can.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
This effect is hugely 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 apps any way they can imagine or limit their options to a handful of pre-configured choices.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Side note here; the internet is becoming full of platforms. 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 create whole new experiences. You might put an app out there for customers, which you consider to be a finished product, and then discover that someone else is using <em>your app</em> as a building block in <em>their app</em>. One man's front end becomes another man's back end. I think this is a good thing for momentum and creativity; allowing new takes on current ideas to be spun up and explored quickly and cheaply.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
But if you <em>intend</em> 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 commercial utility. Not patterns per se, more like principles, which I'm going to call the 5 laws of platform architecture:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>1st Law of Platform Architecture</strong> - the value of a platform is directly proportionate to the amount of work it causes to be unnecessary.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Most web businesses are more similar than they are different. There is 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. 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. I like to ask "what <em>don't</em> 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>2nd Law of Platform Architecture</strong> - ease of adoption maps directly to business momentum.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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&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. 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 the platform game you are penalised for externally-observable complexity) and into how much you invest in documentation, SDK and client code, and developer community support. These things pay you back.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>3rd Law of Platform Architecture</strong> - entrypoint depth multiplies the business flexibility of any given service.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Higher layer abstractions always infer business logic. That's what a composite service really is; someone decided that for use case <em>alpha</em>, you always do <em>X then Y then Z</em>, and therefore aggregating calls out to services <em>A and B and C</em> solves that problem in a single call. You have just created a simpler solution for alpha - which is an admirable achievement and it belongs in your platform exposed to everyone else who has use case <em>alpha</em>. But let's say I have use case <em>alpha prime</em>? A basically similar business process but with key differences that no longer require data from <em>B</em>? That's why your underlying services belong in your platform too; if a client has some business logic which maps quite closely to the higher layer abstractions then that's great orchestration for that app. If a partner want to do something a little different, then he might have to consume those composites 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 through his own interfaces. 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>4th Law of Platform Architecture</strong> - compute work becomes exponentially cheaper and faster as it approaches the edge.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
At last something more technical! If you're building a platform, and you're <em>not</em> planning on comprehensive global coverage, then I would question your commitment to your idea on a web where ubiquitousness has never been cheaper to claim. So let's assume that you <em>are</em> doing this globally. 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. 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. There are plenty of mature grid and edge computing infrastructures out there to provide the scaffolding for this. What does it mean for your partners? 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>5th Law of Platform Architecture</strong> - as services become more atomic the addressable market segments become more broad.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
My 3rd law deals with entrypoints, and this is <em>nearly</em> the same thing. Lower layer abstractions allow platform consumption without constraining the use cases, but another critical property of those granular services is their atomicity. Your low level granular services must perform generic, stateless (independent) operations, all be individually consumable, and each should be of business value individually. When I say individually consumable I think I really mean individually <em>usable</em>. 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. Perhaps it needs slightly more 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. When your lower layer abstractions are <em>individually useful</em> you find that more kinds of businesses can <em>make use of</em> them. 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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. But what about the shape of the system(s) behind each service? That dimension of architecture - how you manifest each of your APIs - is just as important.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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 is suggest <a href="http://eachanfletcher.wordpress.com/2008/02/01/back-to-basics/" target="_blank">establishing some engineering principles</a> to give engineers a decision making framework within which they can own the problem and still consistently meet the higher standards expected from platforms. <a href="http://eachanfletcher.wordpress.com/2008/02/04/scalability-101/" target="_blank">Scalability</a>, <a href="http://eachanfletcher.wordpress.com/2008/02/05/maintainability-101/" target="_blank">Maintainability</a>, <a href="http://eachanfletcher.wordpress.com/2008/02/06/quality-101/" target="_blank">Quality</a>, <a href="http://eachanfletcher.wordpress.com/2008/02/07/security-101/" target="_blank">Security</a>, <a href="http://eachanfletcher.wordpress.com/2008/02/09/availability-101/" target="_blank">Availability</a>, and <a href="http://eachanfletcher.wordpress.com/2008/02/10/user-experience-101/" target="_blank">User Experience</a> have always worked for me.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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 <em>n</em> 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. I'm a pretty casual guy about most things, but that's a responsibility I take very seriously indeed...</div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-11176576139594191112011-11-05T20:31:00.000+00:002011-11-05T20:31:36.696+00:00The difference between taking a shortcut and cutting a corner<div class="p1" style="text-align: justify;">
There are two very different things to talk about here, with two very different implications for your software, but I'll admit that which way around you label them can simply be language pedantry. So for the purposes of this discourse, let's say that:</div>
<div class="p1" style="text-align: justify;">
<ul>
<li>Taking a shortcut is using your knowledge and experience in place of studying things from first principles every time.</li>
<li>Cutting a corner is a compromise in quality or good practices in the place of the prudent actions otherwise required.</li>
</ul>
</div>
<div style="text-align: justify;">
Both are used to speed progress through a given piece of work. Using knowledge and experience is a time to market competitive advantage gained through having talented people, compromising quality is a time to market advantage gained through process; albeit purchased at the price of later cost.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>Taking Shortcuts</strong></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Let's talk about taking shortcuts first. When you can do this confidently it is a magical place to be. 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Experienced people have been through years of doing everything by careful analysis and research, gradually proving out 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. That's why we hire the kind of people we hire.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Having all that collective wisdom at hand and <em>not</em> using it is irresponsible leadership and suffocating to the innovators you should be growing. 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 figure it out.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>Cutting Corners</strong></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
And now cutting corners. 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. Often more later trouble than you really think, which is why this accelerent is so frequently misused.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I say 'freqently misused' quite deliberately, because in a pragmatic real world it is not always the wrong thing to do. Occasionally it can even be the path to very big wins, when time is absolutely of the essence and every day counts materially. But it is <em>always</em> 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
If you are not grown up enough to manage the payback, then you are not grown up enough to incur the debt.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<strong>So...</strong></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hire people smarter than you are. 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. Carefully manage your quality, incur technical debt strategically, and never do it without paying it back.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
You'll do a good job and everyone will have a good time, most importantly your consumers.</div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-35774195003661854032011-09-18T21:52:00.000+01:002011-09-18T21:52:50.999+01:00Nobody cares about your tickets<div style="text-align: justify;">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.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Our customers - for the most part - like to speak in outcomes and business plans and commercial objectives and projects. 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.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">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. Hmmm.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">I think a bit of generalisation can help us to understand this. Lets appreciate that engineers, for the most part, are deeply practical people who are comfortable handling actionable tasks. Since we're also geeks - again for the most part - this descends quickly into technical details. You'd be surprised how unintelligible this can all be when you're not a developer. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">What I've learned over the years is that stakeholders are interested in the <i>meta problem</i>, the commercial plans and outcomes, not the <i>tangible problem</i>, the technical tasks and code which need to come together to solve it. As technical leaders we need to talk about the meta problems with the business, and the technical problems with the engineers.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">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. This most commonly surfaces as that old "unclear requirements" thing. The other challenge is making sure that, as we solve our technical problems, we're solving our meta problems. This isn't easy and this is why great product managers are so crazy hard to find!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">This kind of interpretation of work - the aggregation of agile units into bigger picture project plans - is usually an early casualty of agile adoptions. It is reminiscent of waterfall so we label it bad. But it is a helpful mechanism which bridges the gap between agile execution and regular business planning. It gives you both currencies.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Get awesome product people - they are the only other ones who live in this gap with you and have to speak both languages.</div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-4975409140539934252011-09-12T15:13:00.001+01:002011-09-14T12:10:15.736+01:00The secret of managing software projects<div style="text-align: justify;">As a technology manager there is almost unlimited discourse you can read about how to successfully manage delivery and control projects. The real secret here is you don't manage <i>projects</i>, you manage the <i>circumstances around a project</i>...</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">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. If you don't already have this then don't worry, you're not about to fail, you've <i>already</i> failed. What you're about to experience is you doing your best to mitigate the consequences of poor leadership. Good luck with that.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">But let's just say that you've got the structure right - now what? If that's true, then the best contribution you can make as a leader is managing the environment around the project. 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. 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. You're usually on the hook for the whole thing, so the temptation to dive into the details is often overwhelming. Do it if you must but know that you probably aren't helping. Your guys won't feel trusted and you won't be encouraging them to take ownership of their own space. If you have a good plan on a sensible horizon, don't fiddle with it. Every time you do you increase the chances of things not working out.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">That doesn't mean you should be disinterested or uninvolved - quite the opposite. Be there 100% for every engineer every day and give them everything they need to give you what you need. Be easily accessible and take on any potential problem, consequence-free, that your team feels like raising. 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.</div><div style="text-align: justify;"></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">I love technology. We all do. That's why we got into this business. 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.</div><div style="text-align: justify;"><br />
</div>The most important thing you can give to any project is certainty. Make a good plan based around people better than you are and then defend them.Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-34110748097925192642011-08-22T21:17:00.000+01:002011-08-22T21:17:59.471+01:00Great Quote and Greater Source<div style="text-align: justify;"><a href="http://www.randsinrepose.com/archives/2011/07/12/bored_people_quit.html"><span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">This article</span></a><span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"> has a great take on developer-husbandry, and I particularly like the last paragraph:</span></div><div style="text-align: justify;"><br />
</div><div style="background: white; text-align: justify;"><span lang="EN" style="mso-ansi-language: EN;"><span style="color: #222222; font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">"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."</span></span></div><div style="background: white; text-align: justify;"><br />
</div><div style="background: white; text-align: justify;"><span lang="EN" style="mso-ansi-language: EN;"><span style="color: #222222; font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;">Even better is who sent it over to me - one of my commercial stakeholders. Being in a tech savvy business makes my job a lot easier in a million little ways.</span></span></div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-22340350980074744182011-07-22T18:15:00.000+01:002011-07-22T18:15:48.355+01:00Why don't we invent more?<div style="text-align: justify;"></div><div style="text-align: justify;">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. Lots of different stories but the common theme seemed to be governance.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">When I say governance I mean things like roadmaps, product councils, architectural oversight, PMO, etc. Basically the constructs we've set up to steer our technology investments and spend our resources wisely. Properly applied, they are critical to the success of any significant engineering endeavour. Improperly applied they are critical to the failure of any significant engineering endeavour! So are they being properly applied to invention and experimentation?</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">I don't think it is a case of <em>proper</em> application as much as it is a case of application <em>at all</em>. 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. If you're only doing the former then you're only doing half your job.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">These are two very distinct types of activity and they shouldn't be governed by the same controls. It just makes no sense to apply ROI and risk controls and rigid scheduling to a journey of discovery with a totally unknown destination. The difference between teams who innovate and teams who just talk about it is <em>recognising the immense value in the journey alone</em>...</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Besides, you don't need all that bureaucracy. All you need to be great at this is to leave a space for it to grow and - if you have the right people - it will expand to fill it. <em>That</em> is how I roll and <em>that</em> is what I want to see.</div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-19642783295907822922011-07-13T22:20:00.002+01:002011-07-13T22:53:45.285+01:00Big Roadmap seeks Innovative Thinkers for long term relationship<div style="text-align: justify;">I haven't posted much recently - my <a href="http://www.expediaaffiliate.com/">new gig</a> has been keeping me quite busy - but life is returning to a more sustainable pace now so I'll be able to start sharing more often again. In the meantime I once again find myself drawing up battle plans in the war for talent. So what are my 3 top weapons I can bring to the fight?</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Step 1 - oops almost out of desks; let's get a really kick ass place to house all these smart engineers. So we're moving to <a href="http://www.angelbuilding.com/">a sweet new spot</a> in Angel. We're growing fast and it's already nearly standing room only at the current office. Covent Garden has its charms, but our new spot is being custom fitted - just for us - to be one of the best work spaces in the UK. Check out the progress:</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYr7Zn_QRhJlw3oWTnvksvv432b8_qOKDYlHm8H9ht7IYOqy5HmJYL_QxtdfY12Rp_CJBQ9IJqA8A_3DpJSw1oD5hakQa7Spe79PxJNM2Ie2xREj7qbkN4kQf3mEsom8Or-5CYfhldS7Sv/s1600/atrium.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" m$="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYr7Zn_QRhJlw3oWTnvksvv432b8_qOKDYlHm8H9ht7IYOqy5HmJYL_QxtdfY12Rp_CJBQ9IJqA8A_3DpJSw1oD5hakQa7Spe79PxJNM2Ie2xREj7qbkN4kQf3mEsom8Or-5CYfhldS7Sv/s320/atrium.jpg" width="239" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggeutmLFjUgUH4I7s8hBDx5lz18lKmAsfDeVFebbWVwdj00z_BKjzKWBly9HkT4X2W66LNm8W621EgY18VxwY0dK6OOb7O-rPDe9PsjP5psUr-b3NCsJWhNEgF6j7k-T6gapw_s-MbZ1XO/s1600/breakout.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" m$="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggeutmLFjUgUH4I7s8hBDx5lz18lKmAsfDeVFebbWVwdj00z_BKjzKWBly9HkT4X2W66LNm8W621EgY18VxwY0dK6OOb7O-rPDe9PsjP5psUr-b3NCsJWhNEgF6j7k-T6gapw_s-MbZ1XO/s320/breakout.jpg" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1cm7LeGvaS7Rv30xdatknXk1el3A7aoeh34DdgaRPJZMPp9fTMARYQjJairEoGQ8c-v_nPV0o9IORHMSyBpO4gLf61H1IygIeXDJdnheM-YksAm4MseXQuMw1brzBolSzeDqtYKpBHLaK/s1600/restaurant.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" m$="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1cm7LeGvaS7Rv30xdatknXk1el3A7aoeh34DdgaRPJZMPp9fTMARYQjJairEoGQ8c-v_nPV0o9IORHMSyBpO4gLf61H1IygIeXDJdnheM-YksAm4MseXQuMw1brzBolSzeDqtYKpBHLaK/s320/restaurant.jpg" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFkTWh0mYPnwSGYSBBiF4PtPXZV-ZX8BJWPwSbKmPC2GwKnneQES5gIyRFWoe_RWlbDDec1b6QFqw8zUsDeeExlVRWpHg1zQZrpkZ-s-UhjqzHjQKKbldXYjH4T687e1XJ736kofhrZfUa/s1600/roof.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" m$="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFkTWh0mYPnwSGYSBBiF4PtPXZV-ZX8BJWPwSbKmPC2GwKnneQES5gIyRFWoe_RWlbDDec1b6QFqw8zUsDeeExlVRWpHg1zQZrpkZ-s-UhjqzHjQKKbldXYjH4T687e1XJ736kofhrZfUa/s320/roof.jpg" width="320" /></a></div><br />
<div style="text-align: justify;">The list of features includes eco-geekery such as biomass boilers and heating and lighting driven by room occupancy sensors, high ceilings with 360 degree sunlight, huge storage space for bikes with plenty of showers and lockers, a variety of breakout areas for informal meetings, and a nifty cafe and Jamie's Italian restaurant on the ground floor. All 80,000 sq ft of it (a huge uplift to accommodate our growth) is coming along nicely and is 30 seconds walk from Angel tube station.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"></div><div style="text-align: justify;">Cool. Now for step 2 - set up the right environment and culture. So what is it <i>actually</i> like to work here? Well, you could <a href="http://www.expediajobs.com/">take our word for it</a>, or I could give you the inside scoop...</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"></div><div style="text-align: justify;">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. Therefore we have to have a culture which supports great engineering in order to succeed. 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. 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. Add to this a sustainable business model with <i>plenty</i> of big wins left to achieve and some clear priorities and shared steering of the business, and you have yourself the right ingredients for putting together some really successful software.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"></div><div style="text-align: justify;">In the macro, Expedia is a very large place but we operate in a kind of group structure. So yes, it is a very big company and that [fortunately] comes with some big company benefits, but the work experience is more similar to working for a well funded startup. We work as small, independent, cross-functional teams, with each team having a good mixture of autonomy and support. We believe that our guys should have end-to-end ownership of the systems they build - everyone is part of a small elite team and feels like they're personally making a difference. If you've read a few of my posts before then you probably have a fair idea about how I like to run things.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"></div><div style="text-align: justify;">Step 3 - challenges that <i>really</i> make you think. This is an exciting time to be part of creating something pretty unique; I've <a href="http://www.cloudwf.com/conference/speakers/717-eachan-fletcher-vice-president-of-technology-expedia-affiliate-network-expedia-inc.html">said recently</a> that we're about to change the rules in web travel and it's going to be fun. Obviously I won't share my roadmap here, but I will talk about the sort of technology we'll be working with. How about creating an eventually consistent distributed datastore latency tolerant? What about peer-to-peer cluster management in the cloud? Making an n+1 node in-memory cache topology aware? Automated provisioning based on realtime system utilisation feedback? Inventing new sorting algorithms and queuing strategies? Or your own anti-entropy protocol? Collecting obscene amounts of performance data and rebuilding your tools to watch those numbers move?...</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">You'll notice that I didn't say 'Java' or 'C#' or 'SQL' or 'PHP' at all. That's because, to a certain extent, those things aren't what's important. 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. Then they write some code as a result.<br />
<br />
</div><div style="text-align: justify;">If that sounds awesome to you, and you can show me some aptitude in this kind of space, then we should talk (especially if you're Cassandra/MapReduce curious). Get hold of <a href="mailto:efletcher@expedia.com">me</a> or my recruitment ninja, <a href="mailto:rpanchasra@expedia.com">Roopesh Panchasra</a>, <i>right now</i>.</div><div style="text-align: justify;"><br />
</div><div class="MsoNormal" style="text-align: justify;">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.</div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-27489678001959826672011-04-28T10:32:00.000+01:002011-04-28T10:32:11.258+01:00a geographic sense of urgency<div style="text-align: justify;">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. It's a nifty story about motivation and incentive. I'll do my best to retell it 2nd hand.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A few years ago Boeing was struggling with efficiency on their assembly lines. 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).</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">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. 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.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">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. 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! Flow. Work happens more fluidly and consistently all the way along the plane's terrestrial journey.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">This simple change to constant motion had a remarkable impact on the teams. I wish I had more data (and if I can find any I will post it) but the improvements in throughout were astounding. The physiological effect was a sense of pace - this is what they call a geographic sense of urgency. 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.</div><div style="text-align: justify;"><br />
</div>Smart idea Boeing.Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-56168969063206085152010-12-07T12:07:00.001+00:002010-12-07T12:07:05.926+00:00Intellectual Property in 3 posts – episode I<p align="justify">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.</p> <p align="justify">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.</p> <p align="justify">There are 4 main types of intellectual property defined in UK law and, along with their relatively dry legal descriptions, they are:</p> <p align="justify"><b>Trade marks</b></p> <p align="justify"><i>Indefinitely protects signs which distinguish the goods or services of one undertaking from those of another.</i></p> <p align="justify">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.</p> <p align="justify">It can become a trademark either by initial registration or it can acquire trademark status over time through use.</p> <p align="justify"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieaLXyzh9pBSey3AyGxalQziJdMUaQy1n3Pk94Y2Sm8dRqw2oF4m4xJt1ArQvE-DDyPtFZF0MHyp9kGw4WhJkh3DvvUzcZhYly0xpZp1AHO4d7qmaWcu54_4F7XhUYd4QWcsDl6JaDaww/s400/mcd_lovin_it__clr%255B1%255D.jpg">McDonald’s golden arches</a>, the <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSyXtzmzAvB5UVYoz5ZV8pd8UPxhGCRrk3dbHEnzCDEyB-9jhomdlSb4c9t-FXJIk8AH0AFZ9yNPAi0rPwlA57YBXMX2e8pHrQEgayLp9oe_fOkqTFFuzL9Rna_kY-nnJHBEcU2-CGhyphenhyphenlJ/s1600/ups-logo.jpg">UPS shield</a>, and <a href="http://www.opsl.org/v1/images/stories/pictures/nike-swoosh.gif">Nike’s swoosh</a> are all good examples of a trademark – instantly recognizable and clearly identifying a specific brand.</p> <p align="justify">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.</p> <p align="justify"><b>Patents</b></p> <p align="justify"><i>Protects the technical aspects of products or processes for 20 years.</i></p> <p align="justify">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.</p> <p align="justify">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.</p> <p align="justify">Check out James Cameron’s <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=7643748&OS=7643748&RS=7643748">platform for stereoscopic image acquisition</a> (also known as a camera mount) for example and <a href="http://www.google.com/patents?id=emkAAAAAEBAJ&printsec=abstract&zoom=4&source=gbs_overview_r&cad=0#v=onepage&q&f=false">improvement in velocipedes</a> (also known as bicycles) for something a little more old school.</p> <p align="justify"><b>Registered designs</b></p> <p align="justify"><i>Protects the appearance of products for 25 years.</i></p> <p align="justify">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.</p> <p align="justify">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).</p> <p align="justify">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 <a href="http://www.ipo.gov.uk/">Intellectual Property Office</a> 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!</p> <p align="justify"><b>Design rights</b></p> <p align="justify"><i>Protection for appearance of products without any special application being made (for example copyright).</i></p> <p align="justify">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.</p> <p align="justify">The subclasses (if you want to be geeky about it) are:</p> <ul> <li> <div align="justify">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.</div> </li> <li> <div align="justify">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.</div> </li> <li> <div align="justify">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.</div> </li> </ul> <p align="justify">If design rights apply automatically why would you pay to register a design? If you rely solely on automatic design rights then <i>you must prove</i> 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.</p> <p align="justify">So that’s our 4 identified types of IP.</p> <p align="justify">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.</p> <p align="justify">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.</p> Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com1tag:blogger.com,1999:blog-4740937111045053616.post-16768044808467012392010-11-19T09:48:00.002+00:002010-11-19T13:57:29.233+00:00Steriods for Signups<div style="text-align: justify;">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.<br /><br />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.<br /><br />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.<br /><br />So how can you juice this up?<br /><br />The <span style="font-style: italic;">very</span> 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.<br /><br />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 -> credentials -> personal details -> checkout then you <span style="font-style: italic;">should be</span> thinking visitor -> credentials -> name and email address -> shipping address -> 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).<br /><br />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 <span style="font-style: italic;">reduce</span>. 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 <span style="font-style: italic;">have to</span> stop you from granting them access to the rest of your product entirely?<br /><br />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).<br /><br />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.<br /><br />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.<br /><br />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 <span style="font-style: italic;">always</span> shows that anytime a customer leaves the page(s) for <span style="font-style: italic;">any</span> 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.<br /><br />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.<br /><br />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.<br /><br />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.<br /></div>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com1tag:blogger.com,1999:blog-4740937111045053616.post-89164744386680168422010-10-27T20:54:00.001+01:002010-10-27T20:54:37.549+01:00Adding a feature dimension to planning boards<p align="justify">Planning boards – sometimes called task boards – are a great way to make work visible, facility teamwork, and surface impediments.  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.</p> <p align="justify">This is unprecedented transparency and one of the reasons why I love it, but it does have one small shortcoming.  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.  Yes things are moving along, but what <em>really</em> are those things?  Of the 4 stories we’re doing this sprint, which business feature does this progress (or impediment) relate to?  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?</p> <p align="justify">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.</p> <p align="justify">Some of my guys recently started adding a 2nd dimension to their planning boards; features.  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.</p> <p align="justify"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdtoLwEIVLP30k_8F-6gsFVENAC2aXht8c4qnpjNzGgRF-R49xLOXezmhS_VecceXDRlMSIXB9ch-Pq8Xc2BqSfCGJ5Msxttzly4HjvqbYGEZT-z4CIEn_b20GnUFNRfKp8-hA_leUQ-0/s1600-h/image%5B4%5D.png"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTdombLP2rCdnhY7Zfx4fPuuuI_DPXb2lBd61Z5wSM9QqRUNfyBpWi2T7XL3NbafeLzi_ROJjQUQPSvq23K0PPCGXMMHC-moIIm6akI8I819ax8ZhoptXr2OAWYYgblu77MvLjAjBzgNY/?imgmax=800" width="375" height="405" /></a></p> <p align="justify">Even I find this easier to consume!  Rock on you little geniuses (you know who you are).</p> Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-5784580175737505732010-10-04T20:34:00.001+01:002010-10-04T22:11:53.192+01:00MVP in the Enterprise<p align="justify"><a href="http://en.wikipedia.org/wiki/Minimum_viable_product">Minimum Viable Product</a> (MVP) is a well understood concept in startups.  It is all about distilling your features down to the barest of essentials – those things which really make your product <em>your product</em> - in order to get something out rapidly and be able to quickly iterate guided by feedback.  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.</p> <p align="justify">To broadly generalise the circumstances I’ve seen:</p> <p align="justify">We’re pretty good at this MVP thing in early stage startups.  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).  We think lean.  We’re typically good at serving our customer’s most immediate and pressing needs.</p> <p align="justify">In the enterprise we have the luxury of working with the confidence that, even if the immediate next set of features don’t <em>quite</em> hit the sweet spot, we’ll be around for many more iterations yet before times start to get tough.  We think deep and wide.  We’re typically good at serving a big strategic master plan.</p> <p align="justify">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.  In fact some of the most value I’ve added has been in the amount of work I <em>haven’t</em> done...</p> <p align="justify">It can work in big business.</p> <p align="justify">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.  We started off modelling it and running the numbers; at first synthetically and later with real data.  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.  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.  Sometimes you know what the real benefits are going to be up front, sometimes you surprise yourself along the way.</p> <p align="justify">We’re also planning to introduce a pay-as-you-go commercial model for <a href="http://www.sportingsolutions.com/">our feed products</a>.  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.  Will customers like it?  Will it work like we hope (add top-up revenues to committed subscriptions) or like we fear (cannibalise commitment for shorter term hits)?  The best way forward in these circumstances is to ask <em>what is the absolute minimum amount of work I can do to see if this works?  </em>As it turns out we could do a some basic instrumentation (to get simplified metering), use some static pricing, and do the billing manually.  Net result?  A much smaller piece of work – useable in production with real customers – demonstrating how successful it’s going to be.  Now we can build on this with further iterations until we have the fully-featured and refined version we first dreamed up.</p> <p align="justify">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.  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 <em>did</em> turn out to be a winner.</p> <p align="justify">Just because we have the budget and the appetite to do the whole shooting match right away doesn’t always mean we ought to.</p> <p align="justify">The obvious risk here is becoming too short sighted with your plans.  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.  Stop and evaluate frequently, adjust big picture where necessary, rinse and repeat.</p> Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com2tag:blogger.com,1999:blog-4740937111045053616.post-31751348581046016272010-09-20T09:54:00.002+01:002010-09-20T09:54:00.887+01:00Mechanical Sympathy<p style="text-align: justify;">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.</p> <div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsl6dxXe52AgbKZGrwTddwJqEv3Kj5vj52dthGjC2eYYnHPOrxUgGSQ4k3ctW02i8N9Ss8Nr30K7u0fUL4C6TBmvVX1UXU5Cw-o0OnM4fXnPh8VFjZEleL98dgkDFn3GVS76nF_GqKTGA/s1600-h/f1-pit%5B16%5D.jpg"><img style="border: 0px none; display: inline;" title="f1-pit" alt="f1-pit" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxTy5OPI5WChL-VTKhHv3KOxPkaXSyzQ-c6hSd3pmW2MrhUYnlrS9m0uYbDnsNX_m3_yK7V7RvTItvNTwxohqPzA3hNGZWuyooNSAkt1zOodNTHTYQ24VnEzaw9ob72RdIDvdTC-G8f6c/?imgmax=800" border="0" height="268" width="398" /></a></div><p> </p> <p style="text-align: justify;">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.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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…</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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 <i>technical sympathy</i>.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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).</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">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 <i>profound</i> effect on the cost and quality of technology.</p>Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-46689865291221926862010-09-15T16:39:00.001+01:002010-09-15T16:39:05.764+01:00The Product Management Boundary<p>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 <i>what</i> to do, not just <i>how</i> to do it.</p> <p>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.</p> <p>That seems to be changing.</p> <p>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 <i>problems</i> not in <em>todo lists,</em> and - in a trend which is gaining popularity - product management is increasingly being based inside the technical delivery teams.</p> <p>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?</p> <p>I think this is pretty awesome and, in some cases, overdue – after all, don’t we <em>want</em> a bigger influence over what the future of the business looks like and how we get there?  Do it CxOs!</p> Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com0tag:blogger.com,1999:blog-4740937111045053616.post-57023133659420641382010-08-31T14:36:00.001+01:002010-09-03T17:26:08.907+01:00The Abstraction Trap<p>Abstractions exist so that we can take shortcuts when building stuff.  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.</p> <p>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.  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.  Until go live.</p> <p>It’s the difference between something that functions on the bench and something that will work reliably in real life’s volatile conditions.</p> <p>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.  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.</p> <p>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.</p> <p>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.  That’s different to simply knowing how to drive the tools.</p> Anonymoushttp://www.blogger.com/profile/11975739524615592926noreply@blogger.com1