tag:blogger.com,1999:blog-91156446058333841382024-03-13T21:16:17.380+01:00X de XavierUnos y ceros. A veces, en el orden adecuado.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-9115644605833384138.post-12164995834641353562011-09-05T19:20:00.007+01:002011-09-05T23:23:16.656+01:00Preparativos para un Open SpaceVuelvo del <a href="http://storify.com/xavierverges/vmos2011">Visual Management Open Space 2011</a> más feliz que un anís. Aunque con un pero. El mismo pero con el que volví del Agile Open Space 2011: hay muchas conversaciones interesantes que no llego a mantener por no conocer a buena parte de los asistentes.<div>
<br /></div><div>¡Y eso que montamos una divertida red social <i>unplugged</i> (<a href="http://www.gogamestorm.com/?p=335">Gamestorming: Lo-Tech Social Network</a>)!</div><div>
<br /><a href="http://4.bp.blogspot.com/-ouIzTw64HpE/TmVKXoXWNmI/AAAAAAAAAVc/ZJ-AJ-8IBro/s1600/2011-09-02%2B20.06.55.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://4.bp.blogspot.com/-ouIzTw64HpE/TmVKXoXWNmI/AAAAAAAAAVc/ZJ-AJ-8IBro/s400/2011-09-02%2B20.06.55.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5649003077438944866" /></a>
<br />
<br /><div>Me gustaría que a la próxima reunión a la que asista llegue sabiendo algo de los asistentes a los que no he visto antes en mi vida. Me gustaría encontrarme buscando caras de algunas personas a las que no conozco pero a las que sé que quiero conocer. </div><div>
<br /></div><div>Una posibilidad son las listas de twitter con los asistentes, como las que amablemente confeccionó <a href="http://www.bonillaware.com/">David Bonilla</a> antes del AOS2010 y del AOS2011 (e.g. <a href="http://twitter.com/david_bonilla/aos2011">http://twitter.com/david_bonilla/aos2011</a>). Son útiles y facilitan los preparativos... pero están llenas de avatares irreconocibles, de nombres crípticos, de gente muda -sin twits, ni bio, ni ciudad-, de gente verborreica...</div><div>
<br /></div><div>Otra posibilidad que me gusta más es hacer que los asistentes tengan que rellenar un "positioning paper" para registrarse. Se trata de un cuestionario mínimo en el que los asistentes explican algo sobre ellos, sobre qué esperan aportar a la reunión y sobre qué esperan sacar de ella. Al parecer, se trata de algo bastante común. En el <a href="http://www.agilecoachcamp.no/st/positioning_papers">Agile Coach Camp Norway 2011, nos hicieron rellenar uno</a>, y a mi resultó muy útil. </div><div>
<br /></div><div>Como ventaja adicional, esto hace que el coste del registro sea mayor que un simple click, lo que hace más improbable que la gente se apunte demasiado a la ligera y deje a alguien más interesado sin plaza. </div><div>
<br /></div><div>
<br /></div></div>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-61951872900661391612008-12-10T23:21:00.003+01:002008-12-11T00:39:31.296+01:00Pushing agility from the business side?<div style="padding: 3px; text-align: left;"><a href="http://www.flickr.com/photos/xverges/3099036368/" title="Pushing agility from the business side?"><img src="http://farm4.static.flickr.com/3094/3099036368_8e1f12a965.jpg" style="border: 2px solid rgb(0, 0, 0); width: 400px;" alt="" /></a><br /><span style="margin-top: 0px;font-size:0;" ><a href="http://www.flickr.com/photos/xverges/3099036368/">Pushing agility from the business side?</a>, originally uploaded by <a href="http://www.flickr.com/people/xverges/">-Xv</a>.</span></div><p>A possible scenario:<br /><br /><b>1.</b> IT happy with status-quo: Big Design Up Front and Waterfall.<br /><b>2.</b> Stakeholders accept non-agility as a fact of life.<br /><b>3.</b>Tell stakeholders that they are entitled to learn, to defer<br />decisions until the have more info, to change their opinion. That some<br />of their competitors use those right to their advantage.<br /><b>4.</b> Stakeholders will push agility upon IT<br /><br />Just in case it helps Ferran Rodenas to get some idea to <a href="http://www.rodenas.org/blog/2008/12/09/thoughts-on-software-development-methodologies/">break the status-quo</a></p>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-52998532998684628032008-05-01T19:39:00.003+01:002008-05-01T23:58:31.161+01:00Back in the U.S.S.R.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/New_Soviet_man"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://upload.wikimedia.org/wikipedia/commons/b/b3/Kolkhoznitsa.jpg" alt="" border="0" /></a><br /><blockquote><span style="font-style: italic;">East Germany may no longer exist, but now we have companies featuring central planning by Troikas, mission statements crafted by apparatchiks, quinquennial planning, no right to choose leaders in companies, no democracy in the workplace, a clear distinction between intelligentsia and peasants (top CEOs make 512 times the median salary and enjoy company 'dachas', jets and limos), and 'state' monitoring (time clocks, dress codes, drug-screening, 'employee assistance' plans, e-mail monitoring, smoking and personal conduct rules, as family-life audits).</span> <span style="font-size:78%;">[1]</span></blockquote>This is not a quote from a labor union leader, an anti-globalization essay or a witty comedian. It's from a proponent of democracy and transparency in the workplace that happens to be <span style="font-style: italic;">a business owner putting his money where his unconventional mouth is</span> <span style="font-size:78%;">[2]</span>: Ricardo Semler, in <a href="http://books.google.co.uk/books?id=_N4CAAAACAAJ&dq=inauthor:Ricardo+inauthor:Semler&ei=5JaLR9XAJJrUswOrpKHQBQ">The Seven-Day Weekend</a> <span style="font-size:78%;">[3]</span>.<br /><br />I loved this book, even if its writing style is not that great. Its main point is showing how Semco, Semler's company is run. When Semler and Clovis Bojikian started changing the traditional command and control ways,<br /><span style="font-style: italic;"><blockquote>"We wanted to demonstrate that the workplace could be a place of satisfaction, not of suffering. Work should be a pleasure, not an obligation. But this wasn’t just some humanitarian thesis. We believed that people working with pleasure could be much more productive.”</blockquote></span>To Semler, <span style="font-style: italic;">it's not about values: it's about competitive advantage</span>.<br /><br />Hurry up and read his book, or take a peek into <a href="http://semco.locaweb.com.br/en/content.asp?content=3">The Semco Way</a> by reading a <a href="http://www.cantanchorus.com/doco/semler3.pdf">1989 article by Semler in the Harvard Business Review</a> or a <a href="http://semco.locaweb.com.br/en/artigos/docs/76.pdf">2006 article about him in Strategy+Business</a>. I'm sure that it will give you lots of food for thought.<br /><span style="font-size:85%;"><br />[1] Soviet/Corpororate parallels quote: It's a funny coincidence that I read this during <a href="http://en.wikipedia.org/wiki/International_Workers%27_Day">International Workers' Day</a><br />[2] <span style="font-style: italic;">Unconventional mouth</span> quote: by Geoffrey Colvin in a <a href="http://semco.locaweb.com.br/en/artigos/docs/77.pdf">Fortune article</a><br />[3] Even if Semler is a best selling author, I never heard about him until I recently read <a href="http://jaybyjayfresh.com/2008/01/14/governing-the-twitterfolk-shel-israel-disappears-up-own-asshole/">a post by Jon Lister</a>. Thanks so much, Jon!<br /></span>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-68501944382327851562007-11-30T00:17:00.000+01:002007-11-30T01:38:00.131+01:00Yay! Barcelona Python Meetups are here!Back from the first <a href="http://python.meetup.com/185/">Barcelona Python Meetup Group</a> event. The event was good, with two talks:<br /><ul><li><a href="http://www.linkedin.com/pub/0/a5/280">Maik Röder</a>, based on the <a href="http://tarekziade.wordpress.com/2007/09/24/eight-tips-to-start-with-python/">Eight tips to start with Python</a>. Maik added an additional tip (use <a href="http://divmod.org/trac/wiki/DivmodPyflakes">PyFlakes</a>, a faster PyChecker) and asked the attendants for our own tips: <a href="http://ipython.scipy.org/moin/">IPython</a> (a great shell that I should be using again) proved to have many fans! I mentioned my love for <a href="http://docs.python.org/lib/module-ctypes.html">ctypes</a>.</li><li><a href="http://jardigrec.eu/">Ramon Navarro Bosch</a>, on Design Patterns in Python. Ramon recommended us <a href="http://www.aleax.it/">Alex Martelli</a>'s <a href="http://video.google.com/videoplay?docid=-3035093035748181693">Google TechTalk video</a> on the topic.<br /></li></ul>If the event was good, the post-event (beers, croquetas and bravas) with Maik was great and I'm bringing home lots of food for thought. Most of the talk was about <a href="http://www.openplans.org/projects/funittest/project-home">Funittest (<span style="font-style: italic;">Making it easy to go from use case to functional test</span>)</a>. Maik uses daily a high level Test Driven Development flow:<br /><ul><li>write the functional test, to get aligned with the user's needs/customer value,<br /></li><li>write unit test, that can be driven faster and focus in the approapiate level of abstraction</li><li>write the code</li></ul>My impression is that his ideas have lots of commonalities with <a href="http://fit.c2.com/">Fit</a> and <a href="http://fitnesse.org/">Fitness</a>, and the story-based-testing that they advocate. Maik said that Funnitest's theoretical foundation can be grasped in <a href="http://blogs.msdn.com/micahel/archive/2005/05/04/FromAccountantToScientist.aspx">The Braidy Tester articles</a>; I'm adding them to my to-read list...<br /><br />Beyond functional testing, the programmer's flow, the business-technical gap, Barcelona, Sevilla, tele-working... an intriguing an promising idea: the I-told-you-that-this-was-a-wrong-decision year-end bonus.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-36712788404107253082007-09-11T18:32:00.000+01:002007-09-11T19:18:04.050+01:00Virtual gaming, leadership and agile software development<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://domino.research.ibm.com/comm/www_innovate.nsf/pages/world.gio.gaming.html"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://domino.research.ibm.com/comm/www_innovate.nsf/pages/world.gio.gaming.html/$FILE/gamingreport.jpg" alt="Report cover" border="0" /></a><br />As I was reading the excellent <a href="http://domino.research.ibm.com/comm/www_innovate.nsf/pages/world.gio.gaming.html">Virtual Worlds, Real Leaders</a> by <a href="http://www.seriosity.com/leadership.html">seriosity</a> and IBM's <a href="http://gio.typepad.com/about.html">Global Innovation Outlook (GIO) team</a>, I was struck with the similarities of the leadership attributes that they found in MMORPGs (Massively multiplayer online role-playing games) and those that are familiar to me from working in agile software development projects.<br /><br />I'm quoting two summaries that appear in the report:<br /><blockquote>Online gaming environments facilitate leadership through:<br />1. Project-oriented organization<br />2. Multiple real-time sources of information upon which to make decisions<br />3. Transparent skills and competencies among co-players<br />4. Transparent incentive systems<br />5. Multiple and purpose-specific communications mediums</blockquote><blockquote>In fast moving distributed environments, leadership can be:<br />1. A temporary phenomenon<br />2. Task-oriented<br />3. Dynamic and constantly changing</blockquote><br />Doesn't this make you think about how the daily scrum/stand up meeting and collective code ownership provides "<span style="font-style: italic;">transparent skills and competencies among co-players</span>"? About how the leading roles in an agile team changes constantly among team members depending on the task at hand? About the fluid communications in the noisy room where the team is sitting?-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-48657567271202332262007-05-16T23:22:00.000+01:002007-05-16T22:29:27.496+01:00Coding Contest in Second LifeJust good an email from <a href="http://www.linkedin.com/in/christophsteindl">Christoph Steindl</a>, a former IBM colleague, where he used to co-lead the Agile@IBM community and write an excellent blog.<br /><br />Are you familiar with the Coding Wars in <a href="http://www.amazon.co.uk/gp/product/0932633439?ie=UTF8&tag=xdexavie-21&linkCode=as2&camp=1634&creative=6738&creativeASIN=0932633439">Tom DeMarco and Tim Lister's Peopleware</a>?<img src="http://www.assoc-amazon.co.uk/e/ir?t=xdexavie-21&l=as2&o=2&a=0932633439" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> Christoph is into something similar: the cool <a href="http://catalysts.cc/index.php?id=contest">Catalysts' Coding Contest (CCC)</a> that his company is running:<br /><blockquote><ul><li>Who is faster? Who is more efficient? Who is more effective? Who is more productive?</li><li>Does "Pair Programming" really make you faster?</li><li>Does "Test-Driven Development" really lead to fewer bugs?</li><li>How many ways are there to solve a problem?</li><li>Is it right that good developers only write 30 lines of code for which mediocre developers need to write 300 lines?<br /></li></ul><a href="http://catalysts.cc/">Catalysts</a> organizes a coding contest to go further into some of these questions. </blockquote>They will be running the contest in Linz, Austria (with post food and beverages) and in Second Life (do avatars drink and eat?).<br /><br />Looks like a bright idea to me. I bet that having participants with different backgrounds, and letting anonymous participation will provide coders and organizers useful insight. I don't know if other companies do this sort of thing internally, but it looks like very interesting way to get information, a honest measurement <a href="http://www.transformingperformancemeasurement.com/">not linked to rewards and punishments</a> (note to self: bring this to IBM's internal <a href="http://services.alphaworks.ibm.com/thinkplace/">ThinkPlace</a>).<br /><br />I'm even considering ignoring my usual too-busy-with-real-life-to-get-me-a-second-life to be able to <a href="http://catalysts.cc/index.php?id=525&L=0">participate via Second Life</a>.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-41763351587962417962007-04-27T13:52:00.000+01:002007-04-27T14:11:55.926+01:00Evangelizing and toilets<span class="q"><blockquote>One of Google's little secrets that has helped us to inspire our developers to write well-tested code: <span style="font-weight: bold;">we write flyers </span>about (testing techniques) <span style="font-weight: bold;">and then regularly plaster the bathrooms all over Google with each</span> episode, almost 500 stalls worldwide.<br /><br />We've received a lot of feedback about it. Some favorable ("This is great because I'm always forgetting to bring my copy of Linux Nerd 2000 to the bathroom!") and some not ("I'm trying to use the bathroom, can you folks please just LEAVE ME ALONE?")</blockquote>Stumbled upon this evangelizing technique in </span><a href="http://googletesting.blogspot.com/2007/01/introducing-testing-on-toilet.html">Introducing "Testing on the Toilet"</a>, while googling trying to decide which JavaScript unit testing framework use (yeah, shame on me, I've been doing lots of JavaScript lately without doing Test Driven Development).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://googletesting.blogspot.com/" title="Debugging sucks. Testing rocks"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://photos1.blogger.com/x/blogger2/5468/1836/1600/z/275811/gse_multipart55189.gif" alt="" border="0" /></a>They not only use a surprising evangelizing technique, but also have a great banner and motto for their blog: "<span style="font-style: italic;">Debugging sucks. Testing Rocks.</span>"-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-32429324146914383392007-01-04T23:12:00.001+01:002007-01-08T06:26:09.184+01:00Planning PokerI'm reading <a href="http://www.mountaingoatsoftware.com/index">Mike Cohn</a>'s <span style="font-weight: bold;"><span style="font-style: italic;">Agile Estimating and Planning</span></span> <span style="font-size:78%;">(<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fdp%2F0131479415&amp;amp;amp;tag=xdexa-20&linkCode=ur2&camp=1789&creative=9325">amazon.com</a><img src="http://www.assoc-amazon.com/e/ir?t=xdexa-20&amp;amp;amp;amp;l=ur2&o=1" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.uk%2Fdp%2F0131479415&amp;amp;amp;tag=xdexavie-21&linkCode=ur2&camp=1634&creative=6738">amazon.co.uk</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=xdexavie-21&amp;amp;amp;amp;l=ur2&o=2" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" />)</span>; so far, a great book. <a href="http://www.cutter.com/meet-our-experts/jhbio.html">Jim Highsmith</a>'s <a href="http://www.phptr.com/content/images/0131479415/forward/0131479415_foreword_highsmith.pdf">foreword</a> is well worth reading.<br /><br />On the chapter of techniques for estimating, Cohn describes <span style="font-weight: bold;">Planning Poker</span>, something that feels so simple and effective that you almost have to run to join your team and give it a try. You can read the description at <a href="http://www.planningpoker.com/detail.html">http://www.planningpoker.com/detail.html</a>. The site hosts a tool to enable distributed teams to play Planning Poker. Disclaimer: I still haven't played poker nor checked the tool.<br /><br />One the nice things of Planning Poker is that it is not tied at all to software development: projects from other domains that have to be sized by guestimates (like writing a complex report) fit nicely in this approach.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-40448192226429035622006-12-28T02:02:00.000+01:002006-12-28T02:05:34.044+01:00Mary Poppendieck: Competing On The Basis Of SpeedI watched <a href="http://www.poppendieck.com/">Mary Poppendieck</a>'s talk at Google: <a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694">Competing On The Basis Of Speed</a>. It is a good talk, but it does not compare well to Mary and Tom's most excellent <span style="font-style: italic; font-weight: bold;">Lean Software Development: An Agile Toolkit</span> <span style="font-size:85%;">(<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fdp%2F0321150783&tag=xdexa-20&linkCode=ur2&camp=1789&creative=9325">amazon.com</a> <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.uk%2Fdp%2F0321150783&tag=xdexavie-21&linkCode=ur2&camp=1634&creative=6738">amazon.co.uk</a> <a href="http://safari.oreilly.com/0321150783">safari</a>)</span>.<br /><br /><embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-5105910452864283694&hl=en" flashvars=""></embed><br /><br />I took some messy notes, way too powerpointish :-(. My advice: go for the book<span style="font-weight: bold;"></span>.<br /><br /><span style="font-weight: bold;"><span style="font-size:130%;">Intro</span><br /></span><ul><li>Fast companies (e.g. Dell, Toyota, Google)</li><ul><li>competitive advantage<br /></li><li>lower costs<br /></li><li>large barrier to entry for competition<br /></li></ul><li>Speed's enemy: complexity</li><li>3 faces of complexity [1]:</li><ul><li><span style="font-weight: bold; color: rgb(255, 0, 0);"> waste</span>: anything that depletes resources without <strong style="font-weight: normal;">adding customer value<br /><span style="font-weight: bold; color: rgb(51, 204, 0);">keep it simple</span><br /></strong></li><li><span style="font-weight: bold; color: rgb(255, 0, 0);"> inconsistency</span>: anything uneven, unbalanced, irregular<br /><span style="font-weight: bold; color: rgb(51, 204, 0);">make it flawless</span><br /></li><li><span style="font-weight: bold; color: rgb(255, 0, 0);"> overload</span>: excessive burden<br /><span style="font-weight: bold; color: rgb(51, 204, 0);">let it flow</span><br /></li></ul></ul><span style="font-weight: bold;font-size:130%;" >Keep it simple</span> (<span style="font-size:85%;"><a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#5m45s">video 5m45s</a></span>)<br /><ul><li>Common infrastructure:</li><ul><li>Architecture</li><li>Conventions: naming, coding, security, logging, ui, configuration management...</li><li>Tools</li></ul><li>Refactoring to keep simplifying</li><li> Sustainable simplicity: <span style="font-weight: bold;">change tolerance</span> (<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#7m52s"><span style="font-size:85%;">video 7m52s</span></a>)</li><ul><li>60%-80% of code is written after the first release</li><li>the development process has to anticipate change</li><li><span style="font-weight: bold;">decide as late as possible</span>, when you have more info<br /></li><ul><li> make decissions reversible whenever possible</li></ul><ul><li>make irreversible decissions at the <span style="font-weight: bold;">last responsible moment</span></li><li><span style="font-weight: bold;">set-based development</span>: explore the whole solution space at once (Toyota worked on 10 motors at once for the Prius). Keep multiple options, and one has to work at the last responsible moment.</li><li>paradox: these redundant solutions are not waste</li></ul></ul></ul><span style="font-weight: bold;font-size:130%;" >Make it flawless</span><span style="font-size:130%;"> </span>(<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#18m28s"><span style="font-size:85%;">video 18m28s</span></a>)<br /><ul><li>2 kinds of inspection</li><ul><li>to find defects -> waste</li><li> to prevent defects -> essential</li></ul><li>Mistake-proof every step: detect defects the moment they ocurr</li><ul><li> don't track defects on a list: find them and fix them</li></ul><ul><li> test first, automated test suites</li></ul><li>Role of testing (<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#21m55s"><span style="font-size:85%;">video 21m55s</span></a>)</li><ul><li> manufacturing:<br /></li><ul><li>a quality process brings quality into the products (unlike in software development traditional view)<br /></li></ul><ul><li> finding process in verifcation -> you have a defective process</li></ul><li> focus on preventing defects. Cannot be at the end of development, adding waste in the form of test-fix churn. It has to be integrated into the development process.</li></ul><li>4 kinds of testing</li><ul><li>unit testing: developer intend. Automate them.<br /></li><li>acceptance/regression testing: business intend. Automate them.</li><li>exploratory + usability testing. Manual by definition.</li><li> property (response, security, scaling....) testing. Take advanteg of tools.</li></ul><li>Technical debt (<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#26m55s"><span style="font-size:85%;">video 26m55s</span></a>)</li><ul><li> anything that makes code difficult to change</li><li> the longer you acquire debt the worse it gets</li><ul><li>cost ofcomplexty is exponential</li><li> regression deficit: more features, longer testing, until it dominates the release cycle</li><li> unsync code branches: the longer apart, the longer it will take to merge</li></ul></ul><li>Build Quality in (<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#33m17s"><span style="font-size:85%;">video 33m17s</span></a>)</li><ul><li>configuration management, one click build, automated testing, continuous integration, frequent depoyment</li><li>nested synchronization: test as early and often as possible<br /></li><ul><li> every check in - unit tests</li><li> evrery day - regression test harness</li><li> every week - operations test harness</li><li> every iteration - deployment ready code</li></ul></ul></ul><span style="font-weight: bold;"><span style="font-size:130%;">Let it flow</span> </span>(<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#43m40s"><span style="font-size:85%;">video 43m40s</span></a>)<ul><li> cycle time : customer problem to customer solution.</li><ul><li> software development cycle time: requests to deployment</li></ul><li style="font-weight: bold;"> process capability: wether you have or not a reliable and repetible cycle time for a given set of problems<br /></li><li> delays: hint of opportunities for cost/waste reduction</li><li> queuing theory</li><ul><li> total cycle time = number of things in process / average completion rate </li><li> shorter cycle time: ability to add new features</li><li>small tasks and slack decrease the total cycle time<br /></li><ul><li> utilization paradox (<a href="http://video.google.com/videoplay?hl=en&docid=-5105910452864283694#48m23s">48m23s</a>) - not having slack increases the cycle time. This is one of the ideas behind 3M's 15% of free time rule (Google's 20% precedent). Organizations targeting 100% utilization are meassuring the wrong thing.<br /></li></ul></ul><li>Keep a <strong>honest queue</strong>/to-do list: short and in the realm of the things that can be reasonably expected to be done; no useful purpose for long queues</li><li>Stablish a regular cadence, limit work to capacity, minimize the size of things in the process.<br /></li></ul><span style="font-size:130%;"><span style="font-weight: bold;">System meassurements</span></span><br /><ul><li> cycle time (lean classic) - process capability</li><li> business case (are you making money) - business return</li><li> customer satisfaction <span>—</span> sustainability</li><ul><li> net promoter score [2]</li></ul></ul><br />[1] From Matthew May's <span style="font-style: italic;">The Elegant Solution: Toyota's Formula for Mastering Innovation</span> (<span style="font-size:85%;"><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fdp%2F0743290178&amp;amp;amp;amp;amp;amp;tag=xdexa-20&linkCode=ur2&camp=1789&creative=9325">amazon.com</a> <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.uk%2Fdp%2F0743290178&tag=xdexavie-21&linkCode=ur2&camp=1634&creative=6738">amazon.co.uk</a></span>)<br />[2] Frederick F. Reichheld's <span style="font-style: italic;">The Ultimate Question </span>(<span style="font-size:85%;"><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1591397839&tag=xdexa-20&linkCode=ur2&camp=1789&creative=9325">amazon.com</a> <a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.uk%2Fdp%2F1591397839&tag=xdexavie-21&linkCode=ur2&camp=1634&creative=6738">amazon.co.uk</a></span>)-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-85174116993178278482006-12-13T01:23:00.000+01:002006-12-13T07:05:21.426+01:00OpenUP: a short intro to the Open Unified ProcessI listened to <span style="font-weight: bold;">Introducing OpenUP</span>, a very interesting ibm internal presentation by <a href="https://www.cmpevents.com/SDe6/a.asp?option=G&V=3&id=453445">Per Kroll</a> and <a href="http://www.eclipsecon.org/2007/index.php?page=presenters/#Ricardo_Balduino">Ricardo Balduino</a>, and hosted by the Agile@IBM community. I'm highly impressed. The slide set used has quite in common with <a href="http://www.eclipse.org/epf/community/Open%20Unified%20Process%20Distilled%20by%20Kroll%20and%20Lyons.ppt">this powerpoint</a>, available in the <a href="http://www.eclipse.org/epf/">Eclipse Process Framework Project (EPF)</a> <a href="http://www.eclipse.org/epf/community/community_index.php">community news page</a>.<br /><br />Take the RUP principles, borrow freely from XP, Scrum, Agile Modelling and DSDM, shake, and you get a methodology that makes lots of sense despite having a mostly ungoogleable name...<br /><br />OpenUP/Basic is organiced around 4 subprocesses: Collaboration, Intent Management, Management, Solutions Development. It has 6 different roles.<br /><br /><a href="http://www.flickr.com/photos/70148893@N00/320824056/" title="OpenUP roles and subprocesses"><img src="http://static.flickr.com/144/320824056_1aec8ccaca_o.png" alt="OpenUP roles and subprocesses" style="background: white;" /></a><br /><br />Did you notice that the tester role works in the intent management?<br /><br />OpenUP/Basic is minimal, complete and extensible.<br /><ul><li>Minimal means that it is not the kind of methodology where you have a huge role and workproduct initial list that you have to cleanup for your project (and that usually makes you shop more than you really need...): 6 roles, 18 tasks, 20 work products, 200 printed pages.</li><li>Complete: can be manifested as an entire process to build a system (scrum does not deal with the solution construction subprocess)<br /></li><li>Extensible: can be used as a foundation on which process content can be added or tailored as needed. In fact OpenUP consists of</li><ul><li>A base process - OpenUP/Basic</li><li>Extensions to this base process, such as Model Driven Development content</li></ul></ul>The main worproducts and their realtion to roles/subprocesses can be viewed here:<br /><br /><a href="http://www.flickr.com/photos/70148893@N00/320824059/" title="OpenUP roles and workproducts"><img src="http://static.flickr.com/135/320824059_07a1295a6c_o.png" alt="OpenUP roles and workproducts" style="background: white;" /></a><br /><br />The Work Item List is very close to the scrum backlog (not only for the current iteration, but for all the project). Of course, it is iterative, a la RUP:<br /><br /><a href="http://www.flickr.com/photos/70148893@N00/320824054/" title="OpenUP Iterations"><img src="http://static.flickr.com/129/320824054_daa5bd05d3_o.png" width="450" alt="OpenUP Iterations" style="background: white;" /></a><br /><br />But adaptable! The project plan is a 2 pages doc, describing the goals for the different iterations. And, since each iteartion brings its learning, the plan changes:<br /><br /><a href="http://www.flickr.com/photos/70148893@N00/320824053/" title="OpenUP iteration assesment"><img src="http://static.flickr.com/138/320824053_5462d40428_o.png" width="400" alt="OpenUP iteration assesment" style="background: white;" /></a><br /><br />I really like the concept of "Stakeholder Satisfaction Space".<br /><br />Other things that I'd like to highlight:<br /><ul><li>daily meetings</li><li>test driven developemnt</li><li>use case based</li><li>promotes a readable representation of the architecture. <span style="font-style: italic;">Much of the architecture can be</span></li><ul><li><span style="font-style: italic;">Selected instead of designed</span> (patterns)</li><li><span style="font-style: italic;">Referenced instead of described</span> </li></ul></ul><br />OpenUP/Basic instantiates the core values of the <a href="http://agilemanifesto.org/">agile manifesto</a> in some slightly more concrete core principles:<table style="border-style: solid; border-color: black;"><tbody><tr><td style="font-weight: bold;">OpenUP/Basic Key principles</td><td style="font-weight: bold;">Agile manifesto</td></tr><tr><td>Collaborate to align interests and share understanding</td><td>Individuals and interactions overprocess and tools</td></tr><tr><td>Evolve to continuously obtain feedback and improve</td><td>Responding to change over following a plan</td></tr><tr><td>Balance competing priorities to maximize stakeholder value</td><td>Customer collaboration over contract negotiation</td></tr><tr><td>Focus on articulating the architecture</td><td>Working software over comprehensive documentation</td></tr></tbody></table><br />Does it work? I cannot tell, but at least looks like its building blocks have proven to work often.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com1tag:blogger.com,1999:blog-9115644605833384138.post-12373329414255798872006-11-15T00:25:00.000+01:002006-12-13T12:39:32.494+01:00No lo leeránNo sólo este blog, sino gran parte de la documentación que se escribe en los proyectos de desarrollo de software.<br /><br />Después del <a href="http://xp.c2.com/YouArentGonnaNeedIt.html">No Lo Necesitarás</a>, el <a href="http://www.agilemodeling.com/essays/tagri.htm">No Lo Leerán</a>. O YAGNI (You Aren't Gonna Need It) y TAGRI (They Aren't Gonna <del>Need</del> Read It). Dos grandes principios que es bueno recordar en el desarrollo de software, al escribir artículos y correo, al hacer la carta a los Reyes, al ir a la ferretería...-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com3