tag:blogger.com,1999:blog-22606016710834431212024-02-18T21:42:52.303-08:00The Daily KibitzUn-called for advice and occasional musingsDaniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.comBlogger124125tag:blogger.com,1999:blog-2260601671083443121.post-29382416162308264922010-07-27T17:52:00.000-07:002010-11-05T13:01:10.569-07:00Some ideas for programmer metricsLines of code is a terrible metric of programmer productivity, prone to all sorts of gaming of the system, and here's a great story to illustrate: <a href="http://folklore.org/StoryView.py?project=Macintosh&story=Negative_2000_Lines_Of_Code.txt">-2000 lines of code</a> (+ <a href="http://news.ycombinator.com/item?id=1545452">some nice discussion</a>). Bill Atkinson ends up subverting the simplistic management by entering -2000 under the lines of code box, signifying the net number of lines he contributed during the week.<br />
<br />
Of course, what this didn't capture was the qualitative detail of his work: identifying bugs, deleting, adding, fixing, abstracting, simplifying. No single number can capture that.<br />
<br />
Indeed, the great <a href="http://en.wikipedia.org/wiki/W._Edwards_Deming">W Edwards Deming</a> warned -- but who takes notice? -- that taking any measure (simple or complex) and rewarding or punishing according to it is asking to be gamed. Doing so made #3 in his list of <a href="http://en.wikipedia.org/wiki/W._Edwards_Deming#Seven_Deadly_Diseases">seven deadly diseases</a>:<br />
<blockquote>1. Lack of constancy of purpose<br />
2. Emphasis on short-term profits<br />
3. <b>Evaluation by performance, merit rating, or annual review of performance</b><br />
4. Mobility of management<br />
5. Running a company on visible figures alone<br />
6. Excessive medical costs<br />
7. Excessive costs of warranty, fueled by lawyers who work for contingency fees</blockquote>That said, it's not to say that metrics can't be useful as a source of insight. I wonder whether a simple multi-dimensional metric on lines-of-code could be helpful.<br />
<br />
Suggestion:<br />
<blockquote>1. Lines of own code added<br />
2. Lines of own code deleted<br />
3. Lines of others' code added<br />
4. Lines of others' code deleted<br />
5. Lines of code deleted by others</blockquote>I envisage that collecting this kind of data on a weekly basis (say) could show interesting patterns for individuals over time, and corroborate gut feelings about who is refactoring vs adding functionality vs breaking stuff etc.<br />
<br />
Another aspect to consider is the scope of these metrics. Does one measure individuals, pairs, or whole teams? If the metrics were implemented for the whole team as a means of self-assessment changes over time could be due to external factors (changes in the kind of functionality requested, crunch times, etc.) or internal factors (learning, change of personnel, change of practices, etc.).Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com1tag:blogger.com,1999:blog-2260601671083443121.post-53537266185279116602010-07-04T17:03:00.000-07:002010-07-06T12:36:49.134-07:00Nerdy things I want to learn properly<a href="http://git-scm.com/">Git</a> (fast, distributed version control): <br />
<ul><li><a href="http://www.youtube.com/watch?v=4XpnKHJAok8">Linus's Google tech talk</a> </li>
<li><a href="http://eagain.net/articles/git-for-computer-scientists/">Git for Computer Scientists</a></li>
</ul><a href="http://orgmode.org/">Org-mode</a> (TODO + tagging + calendar + outliner on steroids) in <a href="http://www.gnu.org/software/emacs/">Emacs</a> :<br />
<ul><li><a href="http://orgmode.org/manual/index.html#Top">User manual</a></li>
<li><a href="http://orgmode.org/talks/index.html">Carsten Dominik's Google tech talk</a></li>
<li><a href="http://members.optusnet.com.au/~charles57/GTD/gtd_workflow.html">"Getting Things Done" with Org mode and Emacs</a></li>
<li><a href="http://mobileorg.ncogni.to/">MobileOrg</a>: Free org-mode on the iPhone</li>
</ul>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-72860346335102562052010-06-19T14:21:00.000-07:002010-06-19T14:21:29.499-07:00Resources for learning Javascript and jQuery<ul><li>Douglas Crockford's <a href="http://javascript.crockford.com/">JavaScript articles</a> and book (<a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742">JS: The Good Parts</a>)</li>
<li>John Resig's <a href="http://ejohn.org/blog/">blog</a> and <a href="http://jsninja.com/Overview">JS Secrets book</a></li>
<li>Rebecca Murphy, <a href="http://www.rebeccamurphey.com/jqfundamentals/">jQuery Fundamentals</a> (inludes JS primer)</li>
</ul>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-30338513500123182082010-06-15T19:12:00.000-07:002010-06-15T21:52:58.066-07:00Turning MS Office into a gameThere's now a plugin to Microsoft Office, <a href="http://www.officelabs.com/ribbonhero">Ribbon Hero</a>, that adds simple game dynamics to encourage users to better learn how to drive the darn thing, betwixt coffee breaks.<br />
<br />
Informative article, <a href="http://www.lostgarden.com/2010/01/ribbon-hero-turns-learning-office-into.html">here</a>. Excellent slides:<br />
<br />
<div id="__ss_4133947" style="width: 400px;"><object height="428" id="__sse4133947" width="477"><param name="movie" value="http://static.slidesharecdn.com/swf/doc_player.swf?doc=wordcamp2010-public-100517214725-phpapp02&stripped_title=wordcamp-2010-public" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4133947" src="http://static.slidesharecdn.com/swf/doc_player.swf?doc=wordcamp2010-public-100517214725-phpapp02&stripped_title=wordcamp-2010-public" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="428"></embed></object><br />
<div style="padding: 5px 0pt 12px;"><br />
Beats the hell out of reading the manual.</div></div>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-43207937022346677772010-05-04T17:31:00.000-07:002010-05-04T17:32:24.446-07:00Bad writing<blockquote>"The truth is, most US academic prose is appalling: pompous, abstruse, claustral, inflated, euphuistic, pleonastic, solecistic, sesquipedalian, Heliogabaline, occluded, obscure, jargon-ridden, empty: resplendently dead."<br />
<br />
-- David Foster Wallace, in <a href="http://www.amazon.com/Consider-Lobster-David-Foster-Wallace/dp/0316156116#reader_0316156116">Authority and American Usage</a></blockquote>Seen on <a href="http://news.ycombinator.com/item?id=1319835">Hacker news</a>. See also <a href="http://www.inc.com/magazine/20100501/why-is-business-writing-so-awful.html">this article</a> on business writing.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-87970232999078012092010-04-13T18:48:00.000-07:002010-04-13T18:48:49.771-07:00C# is *slowly* turning into EiffelWhen I <i>first</i> read Bertrand Meyer's fabulous tome, <a href="http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554">Object-oriented Software Development, (2nd edition)</a>. in 1997 I guessed that it was ten years ahead of its time. Seems like I wasn't too far off the mark, with .NET 4 introducing language independent support for <a href="http://en.wikipedia.org/wiki/Design_by_contract">Design by Contract</a>, as <a href="http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx">code contracts</a>, and patching up some of the covariance and contravariance issues of previous versions.<br />
<br />
How long it will take for most programmers to use the techniques well is anyone's guess, but having mainstream tools that support these approaches is a <i>good thing</i>.Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-32571029217725253022010-04-07T21:40:00.000-07:002010-04-07T21:40:22.642-07:00Non-functional requirementsThere's a lot of unglamorous stuff in software that is just "expected", and accounts for some of the project cost that you will miss when imagining two guys in a garage (or cafe) knocking out a quickie project. Here's a handy list: <a href="http://leadinganswers.typepad.com/leading_answers/2009/03/nonfunctional-requirements-minimal-checklist.html">Non-functional requirements: Minimal checklist</a>.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-49986519775982247172010-03-11T15:27:00.000-08:002010-03-11T15:28:37.731-08:00ToneMatrix: A fun, simple music synthesizer<a href="http://lab.andre-michelle.com/tonematrix?">ToneMatrix</a> (Flash-based): The pattern determines the sound. Example pattern:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTs75rjaKOaFT_qJvKNT8bpVEWF-Kl1PaHpwLByGWUoDiPRtsM74K6AupzHs-5kN7gQRcKkkEclDnBeJ0Zfe0O-8h1XpQa-FNj5-tcj4lW9QRvcPsqhCw41TYPomA-vwvtlkXgZnR1-ZY/s1600-h/Screen+shot+2010-03-12+at+10.23.15+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTs75rjaKOaFT_qJvKNT8bpVEWF-Kl1PaHpwLByGWUoDiPRtsM74K6AupzHs-5kN7gQRcKkkEclDnBeJ0Zfe0O-8h1XpQa-FNj5-tcj4lW9QRvcPsqhCw41TYPomA-vwvtlkXgZnR1-ZY/s320/Screen+shot+2010-03-12+at+10.23.15+AM.png" /></a></div><br />
Right-click copy and paste let's you save compositions as text.<br />
<br />
Examples abound in the <a href="http://www.reddit.com/r/programming/comments/bbx6p/i_think_i_just_wasted_a_good_hour_on_this_thing/">reddit discussion</a>.<br />
<br />
I must try my kids on this ...Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-90787736492241107232010-03-10T19:21:00.000-08:002010-03-10T19:21:36.907-08:00Harmony: A neat drawing tool in JavaScriptFlash-free graphics in the browser is getting easier to do, and snazzier:<br />
<br />
<object width="400" height="240"><param name="movie" value="http://www.youtube.com/v/To1A-EPz79w&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/To1A-EPz79w&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="240"></embed></object><br />
<br />
Try it <a href="http://mrdoob.com/lab/javascript/harmony/">here</a>. View the source to see the JavaScript.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-12502843611389962262010-03-08T19:31:00.000-08:002010-05-04T17:06:22.668-07:00mmmm ... CoffeeScriptThe most commonly used programming language in the world today, certainly within the browse, <a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a> superficially resembles the <a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29">Java</a> programming language in its syntax, but at deeper levels it owes far more to lesser-known languages, such as <a href="http://en.wikipedia.org/wiki/Scheme_%28programming_language%29">Scheme</a> and <a href="http://en.wikipedia.org/wiki/Self_programming_language">Self</a>.<br />
<br />
The Java part of the name and syntax apparently came about as a result of a decree from Marketing that Java was the next hot thing, and inventor Brendan Eich worked feverishly to swiftly put a Java-esque sheen over the top. This, plus the cutesy name, helped mislead a lot of people for a lot years into thinking that it was a toy scripting language, and only with the more recent success of <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">AJAX</a> has its underlying power come to the fore.<br />
<br />
And yet we are still burdened with the clunky syntax.<br />
<br />
However, <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> promises to change that, with a new, lightweight syntax for JavaScript that owes a fair bit to <a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29">Python</a> and <a href="http://en.wikipedia.org/wiki/Ruby_%28programming_language%29">Ruby</a> syntaxes, and a lot to experience with JavaScript. An example:<br />
<br />
<blockquote><pre><span style="color: #999999;"># Uses a binary search algorithm to locate a value in the specified array.</span><span style="color: #0b5394;"></span></pre></blockquote><blockquote><pre><span style="color: #0b5394;">binary_search</span>: (items, value) ->
<span style="color: #0b5394;">start</span>: 0
<span style="color: #0b5394;">stop</span>: items.length - 1
<span style="color: #0b5394;">pivot</span>: <span style="color: #0b5394;">Math</span>.floor((start + stop) / 2)
<b>while</b> items[pivot] <b>isnt</b> value <b>and</b> start < stop
<span style="color: #999999;"># Adjust the search area.</span>
<span style="color: #0b5394;">stop</span>: pivot - 1 <b>if</b> value < items[pivot]
<span style="color: #0b5394;">start</span>: pivot + 1 <b>if</b> value > items[pivot]
<span style="color: #999999;"># Recalculate the pivot.</span>
<span style="color: #0b5394;">pivot</span>: <span style="color: #0b5394;">Math</span>.floor((stop + start) / 2)
<span style="color: #999999;"># Make sure we've found the correct value.</span>
<b>if</b> items[pivot] <b>is</b> value <b>then</b> pivot <b>else</b> -1
<span style="color: #999999;"># Test the function.</span>
puts(2 <b>is</b> binary_search([10, 20, 30, 40, 50], 30))
puts(4 <b>is</b> binary_search([-97, 35, 67, 88, 1200], 1200))
puts(0 <b>is</b> binary_search([0, 45, 70], 0))
puts(-1 <b>is</b> binary_search([0, 45, 70], 10))</pre></blockquote><br />
At time of writing CoffeeScript is only up to version 0.5.5, and syntax is not guaranteed to stabilize until 1.0, but IMO it's well worth a look.<br />
<br />
P.S. A neat little <a href="http://awardwinningfjords.com/2010/03/01/a-learning-experience-iphone-style-checkboxes-in-coffee-script.html">blog post</a> about CoffeeScript (with short examples) from Thomas Reynolds.<br />
<br />
P.P.S. There are similar tools/nicer syntaxes for HTML (<a href="http://en.wikipedia.org/wiki/Haml">HAML</a>), and CSS (<a href="http://sass-lang.com/">Sass</a>).Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com2tag:blogger.com,1999:blog-2260601671083443121.post-37304787538094702092010-03-02T15:59:00.000-08:002010-03-02T16:20:13.348-08:00What makes a good entrepeneurial blogIn his good-bye to blogging <a href="http://www.inc.com/magazine/20100301/lets-take-this-offline.html">article</a> Joel Spolsky of <a href="http://www.google.com.au/url?sa=t&source=web&ct=res&cd=1&ved=0CAgQFjAA&url=http%3A%2F%2Fwww.joelonsoftware.com%2F&ei=KauNS5zUBdGLkAXRreSsCA&usg=AFQjCNEWL-MVExEX0B1yhtRworv2q0Plcw&sig2=Iy906xekulFxWRKM5TMujQ">Joel on Software</a> fame paraphrases <a href="http://headrush.typepad.com/">Kathy Sierra</a>:<br />
<blockquote>To really work, Sierra observed, an entrepreneur's blog has to be about something bigger than his or her company and his or her product. This sounds simple, but it isn't. It takes real discipline to not talk about yourself and your company. Blogging as a medium seems so personal, and often it is. But when you're using a blog to promote a business, that blog can't be about you, Sierra said. It has to be about your readers, who will, it's hoped, become your customers. It has to be about making them awesome.</blockquote>Now, that's not the aim of this blog, which started off as a combo. semi-regular frustrated rant / the traditional idea of a web log (keeping a log of cool things the author found on the web) / cute things about my kids, but nonetheless I reckon it's spot-on.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-53881896845113948882010-02-10T21:32:00.000-08:002010-02-10T21:44:21.391-08:00They should be remaking bad movies ... and fixing themWise talk from <a href="http://en.wikipedia.org/wiki/Edwin_Catmull">Ed Catmull</a>, president of Pixar and Disney Animation studios, on what he's learned:<br />
<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/k2h2lvhzMDc&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/k2h2lvhzMDc&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
<br />
Gems (paraphrased):<br />
<ol><li>Give a good idea to mediocre people and they'll muck it up; give a mediocre idea to good people and they'll fix the idea, or throw it out and get a good one.</li>
<li>A movie or product isn't just one idea, it's thousands, and most of them need to be done right for you to succeed, so you need a good team</li>
<li>People are always remaking good movies; they should be remaking bad ones that were based on good ideas, but poorly executed</li>
<li>People and how they function is more important than ideas</li>
<li>It's very possible to misunderstand the reasons for your success</li>
<li>What's important are the things that affect behavior</li>
</ol><div>Plus insights into why people don't like to do post-mortems, gaming "the system", communication structure vs company structure, and why successful companies fail.</div>Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com1tag:blogger.com,1999:blog-2260601671083443121.post-28938715275474694522010-01-31T14:50:00.000-08:002010-02-01T02:11:27.604-08:00Hygiene and MotivationIn <a href="http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/">Nine Things Developers Want</a>, Rob references Herzberg's Two Factor Theory:<br />
<blockquote>In the 1950s a researcher named <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FMotivation-Work-Frederick-Herzberg%2Fdp%2F156000634X%2Fsr%3D8-1%2Fqid%3D1162593849%3Fie%3DUTF8%26s%3Dbooks&tag=softwarbyrob-20&linkCode=ur2&camp=1789&creative=9325" target="_blank">Frederick Herzberg</a> studied 200 engineers and accountants in the US. He asked them a few simple questions and came up with what is one of the most widely-accepted theories on job satisfaction called <a href="http://www.12manage.com/methods_herzberg_two_factor_theory.html" target="blank_" title="Two Factor Theory">Two Factor Theory</a>. <br />
His theory breaks job satisfaction into two factors:<br />
<ul><li><span style="font-style: italic;">hygiene factors</span> such as working conditions, quality of supervision, salary, safety, and company policies</li>
<li><span style="font-style: italic;">motivation factors</span> such as achievement, recognition, responsibility, the work itself, personal growth, and advancement</li>
</ul>Hygiene factors are necessary to ensure employees don’t become dissatisfied, but they don’t contribute to higher levels of motivation. Motivation factors are what create motivation and job satisfaction by fulfilling a person’s need for meaning and personal growth.</blockquote>In his cracking TED Talk Dan Pink delves into some of the behavioral research that explores the consequences of using extrinsic factors such as monetary rewards as motivational tools:<br />
<br />
<object height="243" width="400"><param name="movie" value="http://www.youtube.com/v/rrkrvAUbU9Y&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rrkrvAUbU9Y&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="243"></embed></object><br />
<br />
Bottom line: <i>extrinsic</i> rewards tend to narrow focus and hamper creativity.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-66382174733751372002010-01-28T15:05:00.000-08:002010-06-30T20:06:35.042-07:00Some powerful Javascript toolsAs the web-browser turns into the client of choice, it's good to have powerful tools to hand. To whit:<b> <br />
</b><br />
<ul><li><b>HTML/CSS manipulation</b> (esp. for Ajax): <a href="http://jquery.com/">jQuery</a></li>
<li><b>Javascript Optimizer/Checker</b>: Google's <a href="http://code.google.com/closure/compiler/">Closure compiler</a></li>
<li><b>Information Visualization</b>: <a href="http://thejit.org/">JavaScript InfoVis Toolkit</a> and <a href="http://vis.stanford.edu/protovis/">Protovis</a></li>
<li><b>Javascript charts and graph</b>s: <a href="http://webdesignledger.com/resources/13-useful-javascript-solutions-for-charts-and-graphs">A selection of 13 tools</a></li>
<li><b>Vector graphics</b>: <a href="http://raphaeljs.com/">Raphael</a> (plus charting extension, <a href="http://g.raphaeljs.com/">gRaphael</a>): <a href="http://spitleaf.com/30days/day4.html">clock example</a></li>
<li><b>Client-side GraphViz: </b><a href="http://code.google.com/p/canviz/">CanViz</a><b> </b></li>
<li><b>Background processing</b>: <a href="http://www.whatwg.org/specs/web-workers/current-work/">Web-workers</a></li>
<li><b>Push</b>: <a href="http://armstrongonsoftware.blogspot.com/2009/12/comet-is-dead-long-live-websockets.html">Web-sockets</a></li>
</ul> No doubt more to come.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-20964058012138551112010-01-21T01:25:00.000-08:002010-01-21T01:51:55.008-08:00See no evil, hear no evil, speak no evil<div class="separator" style="clear: both; text-align: left;">The <a href="http://en.wikipedia.org/wiki/Three_wise_monkeys">three wise monkeys</a> together embody goodness of mind, speech, and action.<br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmHISeS4haji0k_fxsGky2FuSilaZvYmIKbA3UZxQhblBuVdquq7dODMR1uVyGvsRG7IJ-h8vkXzlG5H51r8iRt30g_Di66H0bPp7iVPkPdyvGdkS_7xdsW8ZsmYKU6z4Jf2_KVDBJtI/s1600-h/Screen+shot+2010-01-21+at+8.14.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmHISeS4haji0k_fxsGky2FuSilaZvYmIKbA3UZxQhblBuVdquq7dODMR1uVyGvsRG7IJ-h8vkXzlG5H51r8iRt30g_Di66H0bPp7iVPkPdyvGdkS_7xdsW8ZsmYKU6z4Jf2_KVDBJtI/s400/Screen+shot+2010-01-21+at+8.14.11+PM.png" width="400" /></a><br />
</div><br />
Daughter Ella, aged four, embodies cheekiness of mind, speech, and action.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-18937328087817705122009-11-20T22:23:00.000-08:002009-11-22T00:47:12.769-08:00My son just conducted the Melbourne Symphony Orchestra!This morning our family went to a Classic Kids concert given by the <a href="http://www.mso.com.au/cpa/htm/htm_home.asp">Melbourne Symphony Orchestra</a>. Lots of fun music and dancing and learning about the instruments and sections of the orchestra. The different sections were dressed in different colored tops to aid identification, <i>a la</i> <a href="http://en.wikipedia.org/wiki/The_Wiggles">the Wiggles</a>, and the conductor had a multi-colored top on.<div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzk0cFkfrT6uro7lYaifJyuNiNmVqYdT8-iWDbHIo4uiprwAErVOq2Y_8sr4tBIfOKAu7Fwk7Rdt6612lgv7Jv7kE3W_AHKqnDzM-W3PLhD5zBj-fHcrrDj5_t6czJu_le3AXKlfwgeCo/s1600/mso.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzk0cFkfrT6uro7lYaifJyuNiNmVqYdT8-iWDbHIo4uiprwAErVOq2Y_8sr4tBIfOKAu7Fwk7Rdt6612lgv7Jv7kE3W_AHKqnDzM-W3PLhD5zBj-fHcrrDj5_t6czJu_le3AXKlfwgeCo/s320/mso.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406444178166485010" /></a><div style="text-align: center;"><i>The MSO, in more formal attire</i></div></div><div><br /></div><div>A boy and girl were selected to conduct <a href="http://en.wikipedia.org/wiki/The_Liberty_Bell_(march)">The Liberty Bell</a>, and my kids, who were seated at the front were predictably disappointed not to be picked. But wait ...</div><div><br /></div><div>After kicking off the <i>finale</i>, <a href="http://www.youtube.com/watch?v=JkymTHSbWe0">The William Tell Overture</a> ("Hi ho Silver - <a href="http://www.youtube.com/watch?v=GTdt-Tyaa3M">away</a>!"), one of the most thrilling showpieces in the orchestral repertoire, the conductor, Ben -- <a href="http://www.benjaminnorthey.com/Benjamin_Northey_-_Conductor/Home.html">Benjamin Northey</a>, bless him, may he have a long life and outstanding career -- dashed into the audience, asked Jake's Mum if he'd like to conduct (swift affirmative response), and led Jake to the podium where he handed Jake the baton. Jake proceeded to perform with verve, enthusiasm and undisguised joy for about 3 minutes, all the way to the end of the <i>finale</i>, followed by wild applause from the audience.</div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF99Px4f0ZHutk-xPMHLQlUNPV3mHdDo0sS356Y-Dd6nI0NIbO7YeIB120DKEQ9GQUi31_emjkMl_7i6vPYEh6LTopeFuq-LVYbz16mJPPJGJM0R1-ES2TlQnwytnzAVHF5QfkI3wnaIE/s1600/BenNorthey.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 194px; height: 235px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF99Px4f0ZHutk-xPMHLQlUNPV3mHdDo0sS356Y-Dd6nI0NIbO7YeIB120DKEQ9GQUi31_emjkMl_7i6vPYEh6LTopeFuq-LVYbz16mJPPJGJM0R1-ES2TlQnwytnzAVHF5QfkI3wnaIE/s320/BenNorthey.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5406443534727430194" /></a><div style="text-align: center;"><i>Benjamin Northey, my favorite conductor</i></div><br /></div><div>It was awesome. I was in tears, Andi (Jake's mum was in tears), and Ella no doubt expects to get to conduct the orchestra next time round. It was awesome and inspiring. A child came up to Jake afterwards and said that he was better than the real conductor; that kid will not grow up to be a music critic, but bless him too!</div><div><br /></div><div>On questioning Jake said that the fast bits were more challenging to conduct than the slow bits, and that even though conducting was fun, he would prefer to be an inventor of new musical instruments when he grows up than an orchestra conductor.</div><div><br /></div><div>Jake <a href="http://dailykibitz.blogspot.com/2008/04/just-little-bit-proud.html">played Moses at kindergarten</a> (with stick), and conducted the MSO at age 5 in the William Tell Overture with baton. What a little legend!</div><div><br /></div><div>Andi's <a href="http://patchandi.blogspot.com/2009/11/my-son-conductor.html">post</a> on the same incident.</div><div><br /></div><div><b>Update</b>: Andi wrote to Benjamin Northey to thank him. Here's his reply:</div><div><blockquote><b>From</b>: Benjamin Northey<br /><b>Sent</b>: Sunday, 22 November 2009 11:32 AM<br /><b>To</b>: Andi Herman<br /><b>Subject</b>: Re: Thank you<br /><br />Hi Andi,<br /><br />So kind of you to share this with me. Jake was pretty much the highlight of the week for us! The orchestra loved him and as you say, to see such pure joy was very special indeed - very moving. Loved reading the blogs also.<br /><br />I hope that this is something Jake will remember for a long time. Please say hi to BOTH of your children from me!<br /><br />all best, Ben</blockquote></div><div>We hope so too. Thanks again, Ben.</div>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-39680951341737601612009-11-17T12:38:00.000-08:002009-11-17T12:45:15.052-08:00So he writes books about movies?From the "Overheard" section in <a href="http://www.mxnet.com.au/">mX</a>:<div><div><b></b></div><blockquote><div><b>Girl</b>: I'm going to see <i>Taming of the Shrew.</i></div><div><i></i><b>Friend</b>: Is that like the book that's based on the movie <i>Ten Things I Hate About You</i>?</div><div><b>Girl</b>: Not quite. It's by William Shakespeare.</div><div><b>Friend</b>: Didn't he do <i>Romeo and Juliet</i>?</div><div><b>Girl</b>: That's the one.</div><div><b>Friend</b>: So he writes books about movies?</div><div><b>Girl</b>: Have you ever been to English class?</div></blockquote><div></div></div>Classic.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-88576480999456005092009-11-13T03:09:00.000-08:002009-11-13T03:18:29.111-08:00Opposite rhymesMy daughter Ella, who is not yet four, has invented a new word game called "opposite rhymes".<div><br /></div><div>You know how the word game "opposite pairs" works: Name pairs of words that are opposites. For example:</div><div><ul><li>Big - little</li><li>Black - white</li><li>Hot - cold</li></ul><div>And "rhyming pairs":</div><div><ul><li>Fiddle - middle</li><li>Hot - cot</li><li>Head - said</li></ul><div>But in opposite rhymes (also known as rhyming opposites) you have to do both at once, making it considerably harder:</div><div><ol><li>Ella: Tall - small</li><li>Andi: Happy - crappy</li><li>Andi: Sad - glad</li><li>Dan: Familiar - unfamiliar (deemed unacceptable)</li></ol><div>So I'm pretty impressed with my little girl for inventing this new form of wordplay and finding the first one.</div><div><br /></div><div>Can you find of any others? It ain't easy.</div></div></div></div>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-61430500728855565082009-11-08T15:47:00.000-08:002009-11-08T16:13:02.558-08:00Which religion should I follow?<div style="text-align: center;"><div style="text-align: left;">Gone are the days when one simply followed the religion of one's forefathers and foremothers. For those who find themselves confused by all the different choices on the market, here's a handy visual guide:<br /><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0C84VupcWKJyh50qnJBEaufSdcfXxmL5SsswNH2LNGxwedO1-tc-IaPN4M7sdQ4TFzvfPsRImJUD8cTI2_wRvds9jfNMqSVZ7KpNruKnnJrS8zYnj5YK-lOMlc7a9mwnobuu4kiDADYw/s1600-h/Religion-Flowchart.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 615px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0C84VupcWKJyh50qnJBEaufSdcfXxmL5SsswNH2LNGxwedO1-tc-IaPN4M7sdQ4TFzvfPsRImJUD8cTI2_wRvds9jfNMqSVZ7KpNruKnnJrS8zYnj5YK-lOMlc7a9mwnobuu4kiDADYw/s400/Religion-Flowchart.jpg" alt="" id="BLOGGER_PHOTO_ID_5401883947322921458" border="0" /></a><span style="font-style: italic;">Click for a larger and clearer version</span><br /><br /></div>Hopefully people of all faiths and non-faiths are equally offended and amused.Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-15181075010869623692009-10-26T15:41:00.000-07:002009-10-26T15:58:22.411-07:00Promoted - again!It seems to be the season. Around this time last year I was <a href="http://dailykibitz.blogspot.com/2008/11/promoted-kibitzer-becomes-kibitzed.html">promoted to CTO</a>, and this time round, my boss has decided to move on, and I have stepped up to the hot seat of CEO-dom.<br /><br />All of this has been bad for my Kibitz blogging, although I have been contributing to a <a href="http://bcisiveonline.blogspot.com/">new blog</a> all about our emerging visual collaboration product: <a href="http://www.bcisiveonline.com/">bCisive Online</a>:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1wccQiWepd9h7enWEai0EN_3wAxFy0vMflsDxnNXwIfq_Q2Zbv9m5HcurJrhihHa8kVXperkn5uKLivBZvPNR92XUpy8CjxshI5AuY43Z44sHcHE_gCkUmasTbakqOZr4HxHyUTMXqbY/s1600-h/Screen+shot+2009-10-27+at+9.53.35+AM.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 285px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1wccQiWepd9h7enWEai0EN_3wAxFy0vMflsDxnNXwIfq_Q2Zbv9m5HcurJrhihHa8kVXperkn5uKLivBZvPNR92XUpy8CjxshI5AuY43Z44sHcHE_gCkUmasTbakqOZr4HxHyUTMXqbY/s320/Screen+shot+2009-10-27+at+9.53.35+AM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397045942260078530" /></a><div style="text-align: center;">A<i> diagram quickly knocked up in bCisive Online - click to enlarg</i>e</div><br /><div><i>Divide and conquer</i> meets <i>visual thinking</i> meets true <i>real-time collaboration</i>. Interested? Check it out, and get in touch.</div><div><br /></div><div>That said, I'll try and post the occasional kibitz or update here too.<br /><br /></div>Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com2tag:blogger.com,1999:blog-2260601671083443121.post-62727479818806561262009-05-14T16:49:00.000-07:002009-05-14T19:46:11.050-07:00bSelling from the Top Down (and bottom up)When we first developed <a href="http://sites.force.com/appexchange/apex/listingDetail?listingId=a0N300000016d1FEAQ">bSelling Opportunity Management Software</a> we had a choice: Focus on bottom-up or top-down issues.<div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">We chose bottom-up first</span>: Make the software easy and fun to use, and useful to the individual sales rep.</div><div><br /></div><div>Almost immediately, our early adopters made us very aware that as much as they loved what we already had, there were burning <span class="Apple-style-span" style="font-weight: bold;">top-down issues </span>that needed to be addressed asap:</div><div><ol><li>How can the sales manager get an effective overview of all open opportunities? And then drill down.<br /></li><li>Similarly, how can an individual salesperson get perspective of all his opportunities in order to better gauge where and how to focus effort?</li><li>How can a sales manager customize the qualification process to fit her team's needs?</li><li>How can a sales person or manager share insights with other team members, or present a pitch to clients?</li></ol><div>We listened and have carefully crafted some exciting new features, again blending visual flair with smart functionality:</div><div><br /></div><div><span class="Apple-style-span" style="font-size:large;">Better overviews: The bSelling Opportunity Explorer</span></div><div><span class="Apple-style-span" style="font-size:small;">The bSelling Opportunity Explorer is a new dashboard that shows every open Opportunity and positions it graphically based on its qualification percentage -- the likelihood of success as determined through the bSelling flip-card based Qualify tool -- and the expected Amount in $ from a successful close:</span></div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPnIPIeiu12bvDrkjSI-n6VyYTRiPTfbN6TyIuFp18V90bZSVZj4G5OzsQf1oEGrKIi1AwjNG0Xi2EJjNqBixad2gqwtL8MuwLihGUY88qMS4ewl3Fc6SHTXVqueSKW6RBCqbgYLl0pQ/s1600-h/Picture+4.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 287px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPnIPIeiu12bvDrkjSI-n6VyYTRiPTfbN6TyIuFp18V90bZSVZj4G5OzsQf1oEGrKIi1AwjNG0Xi2EJjNqBixad2gqwtL8MuwLihGUY88qMS4ewl3Fc6SHTXVqueSKW6RBCqbgYLl0pQ/s400/Picture+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335875828858778002" /></a></div></div><div style="text-align: center;"><span class="Apple-style-span" style="font-style: italic;">Click to view a larger image</span></div><div style="text-align: center;"><br /></div><div>The size of the bubble shows how much effort the rep. has been devoting to the opportunity. Hovering on an opportunity identifies it and gives precise numbers. Clicking opens up bSelling for that opportunity.</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">Overview</span></div><div>Looking at the overall distribution gives an at-a-glance overview of where all opportunities are at, and where the effort is going. The four quadrants are labelled to assist interpretation:</div><div><ol><li><span class="Apple-style-span" style="font-weight: bold;">Excellent</span>: The upper right contains the best-qualified, highest amount opportunities</li><li><span class="Apple-style-span" style="font-weight: bold;">Safe bets</span>: The lower right are well qualified, lower amount opps</li><li><span class="Apple-style-span" style="font-weight: bold;">Pie in the sky</span>: The upper left contain the high amount, not yet well qualified opps</li><li><span class="Apple-style-span" style="font-weight: bold;">Poor</span>: The lower left contains poorly qualified, low yield opps</li></ol><div><span class="Apple-style-span" style="font-weight: bold;">Reading the patterns</span></div><div>With very little practice, certain patterns should start to leap out as meaningful:</div><div><ul><li>In the image above the line of small circles on the vertical axis are unqualified opportunities. Why haven't they been qualified yet?<br /></li><li>Large circles in the left quadrants reflect opportunities where a lot of effort is going in without much progress. Some of the "pies in the sky" may be worth persisting with (for a while), but the "poor" opps need to be quickly qualified across or dropped.</li></ul><div>For the individual salesperson this overview can be a powerful tool to help manage his pipeline. For the manager, it allows her to see how the team as a whole is performing, and focus action where needed.</div><div><br /></div><div><span class="Apple-style-span" style="font-size:large;">Customization: Tailoring the process</span></div><div>The bSelling Qualify Tool adds rigor and guidance to qualification by asking the salesperson to flip through virtual card-decks that rate all the important factors associated with an opportunity.</div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-Vtc35xDigf6XZR0sNpGr2IyrzFoorjT3SvGI1o8lAsYfy3jDPLmLB-b-nQ6l6iv2R_ogZn5W58d0xfBx0UQ5jSlx0l93lGp_ffDoRbEripdu5wAA2oknU-S11KxKVHge2COPO9_TLBw/s1600-h/qualify.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-Vtc35xDigf6XZR0sNpGr2IyrzFoorjT3SvGI1o8lAsYfy3jDPLmLB-b-nQ6l6iv2R_ogZn5W58d0xfBx0UQ5jSlx0l93lGp_ffDoRbEripdu5wAA2oknU-S11KxKVHge2COPO9_TLBw/s320/qualify.PNG" alt="" id="BLOGGER_PHOTO_ID_5322125863736194914" border="0" /></a></div><div><br /></div><div>It is now possible with bSelling premium to customize this standardized tool across a team or organization to meet a preferred methodology or to cater to specialized needs:</div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggkVaRZ6PhO-ghBn_JM31PimTdlTmrWBrLz06MYRhdpJQ-TLQbRKOuCw0_Xy6czwx4FpeI4oC1xo5EbrrqSYxkzsTgeaueg6kWlG7HPfQ22W7PwRFZaygDu0-q503sgeVQeD9WhVGfupk/s1600-h/qualify+customization.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggkVaRZ6PhO-ghBn_JM31PimTdlTmrWBrLz06MYRhdpJQ-TLQbRKOuCw0_Xy6czwx4FpeI4oC1xo5EbrrqSYxkzsTgeaueg6kWlG7HPfQ22W7PwRFZaygDu0-q503sgeVQeD9WhVGfupk/s320/qualify+customization.PNG" alt="" id="BLOGGER_PHOTO_ID_5322131450742528210" border="0" /></a></div><div><br /></div><div>And here's an <a href="http://dailykibitz.blogspot.com/2009/04/to-customize-is-cool.html">in-depth overview</a>.</div><div><br /></div><div><span class="Apple-style-span" style="font-size:large;">Sharing: Exporting to PowerPoint</span></div><div><span class="Apple-style-span" style="font-size:small;">Sales and account managers often need to report on key opportunities to executives and other non-sales colleagues. To illustrate their understanding of an opportunity and to help their audience understand the client contacts' perspectives, bSelling premium now includes a convenient "export to PowerPoint" facility in the Diagnose Pain tool.</span></div><div><span class="Apple-style-span" style="font-size:small;"><br /></span></div><div><span class="Apple-style-span" style="font-size:small;">When pitching to a customer, diagrams prepared in Present & Sell can be turned into a sequence of PowerPoint slides in the same way.</span></div><div><br /></div><div><span class="Apple-style-span" style="font-size:large;">Conclusion</span></div><div>bSelling remains fun and friendly, but has grown more power-packed. </div><div><br /></div><div>It blends bottom-up advantages (usefulness, simplicity, fun) with top-down virtues (overview, customizability) and communication (visualization, PowerPoint export).</div><div><br /></div><div>We'll keep refining it, and can also further customize to meet more specialized needs.</div></div></div>Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-3983985132202847322009-04-16T16:18:00.000-07:002009-04-16T21:03:02.705-07:00Fartlek developmentThe amusingly named <a href="http://en.wikipedia.org/wiki/Fartlek">Fartlek training</a> is a form of athletic training in which high intensity work and low intensity work are alternated in the course of each training session. The two forms of work are complimentary in that they stress the you in different ways (anaerobic and aerobically) and allow you a chance to recover.<br /><br />I think that this is a good model for software development in software start-ups.<br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">Priority one</span>: Build something that people want, fast</span><br /><br />The main risk in a software start-up is making something that people don't want. So you want to find out whether your initial idea has merit, fast. So -- if at all possible -- you build a small prototype, and test it out in the marketplace, fast. <br /><br />In order to satisfy the need for speed, you cut a few corners, and because it's small (and your team is good) you can get away with this approach (for now).<br /><br />If no-one wants your prototype, you scrap it, and you haven't wasted time on lots of process that was supposed to pay off in the long-run (because there is no long-run).<br /><br />On the other hand, if it the prototype is promising, you will learn from the market feedback how to make it better, and it will start to grow. <span style="font-weight: bold;">This is where it is critical to switch gears and slow down</span> (at least for a while). Because if you do not, you will find yourself in the realm of cowboy development, the bugs will start to bite, and the pace of development will drop as your team gradually spends more and more time debugging, less time developing, resulting in a drop of confidence -- "I don't want to quickly make this change because it might break something" -- and loss of tempo.<br /><br /><span style="font-weight: bold;"></span><span style="font-size:130%;"><span style="font-weight: bold;">Priority two</span>: Restore quality (and sanity</span>)<br /><br />The alternative is to switch modes. <a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month">Fred Brooks</a> said "build one to throw away", but at a minimum you should review what has been done to date and investigate and prioritize the very real risks of continuing with a prototype. These might well include:<br /><ol><li>Customer or prospective customer loses data or has it corrupted</li><li>Customer or prospective customer experiences bugs, crashes, or loss of service</li><li>A crash or a bug during a demo</li><li>The software does not scale, so performance degrades over time</li><li>Development slows so that critical new features can not be delivered in a timely fashion</li></ol>Improving the quality of the software process is what is needed for most of these, and many of the kinds of measures that help have largely been formalized in the Agile development processes:<br /><ul><li><span style="font-weight: bold;">Pair programming</span>: Two heads are better than one, plus it offers real time code reviews, mentoring, camaraderie and friendly competition, less web-surfing</li><li><span style="font-weight: bold;">Test-driven development</span>: Writing automated tests clarifies the design and as they build up offer an early warning system when a change breaks something unexpectedly (Design by Contract gives similar benefits)<br /></li><li><span style="font-weight: bold;">Continuous integration</span>: Frequently "checking-in" and automatically running the automated test-suite identifies incompatible changes made by different programmers or pairs sooner rather than later; saves you from merge hell</li><li><span style="font-weight: bold;">Refactoring</span>: By reviewing code, eliminating duplication, reducing coupling, and improving the use of abstraction, your software base will become more concise, readable and maintainable<br /></li><li><span style="font-weight: bold;">Short iterations / planning game</span>: By maintaining a list of feature requests and bug-fixes that the developers estimate and the internal customer prioritizes (within a budget based on the amount of work accomplished in the previous iteration), a sustainable rhythm is established, and healthy prioritization is forced<br /></li><li><span style="font-weight: bold;">Sustainable pace</span>: Working more than an eight hour day / forty-hour week leads rapidly to damaging the code base, loss of morale, and bull sessions as people are present in body, but not in spirit -- avoid the "Death march" scenario<br /></li></ul>Additionally, a <span style="font-weight: bold;">design review</span> will be needed to knock the existing architecture and code into shape, and tests will needed to be added retrospectively if you didn't practice test-driven development in the initial prototype phase.<br /><br />For a web-based service additional infrastructural elements and diagnostics should be reviewed and added.<br /><br /><span style="font-weight: bold;">All of this is manageable as long as the prototype is small, but the longer these steps are delayed, the greater the costs that must be paid.</span> It's a lot like going into debt. You not only have to repay the loan, but also the accumulated interest. Some people call this <a href="http://c2.com/cgi/wiki?DesignDebt">design debt</a>. (And the interest rates on design debt tend to be high.)<br /><br /><span style="font-size:130%;">And then the cycle turns</span><br /><br />While making incremental changes continued agile iterations is probably the way to go, slow and steady (but not slowing down). When the time comes to make a leap forward, knocking up a quick prototype is a great way to vary the routine, and makes business sense.<br /><br /><span style="font-size:130%;">Conclusion</span><br />Almost everyone who learns to program first experiences the joys of "cowboy development" on small personal projects, but when they "turn pro" or start working on larger projects they soon learn that it doesn't scale beyond what you can easily hold in your head.<br /><br />Some people think that up-front design and analysis will save the day, but this leads to waterfall with its 1/3 design, 1/3 development, 1/3 testing rule-of-thumb when done well. But then you discover that the requirements were wrong (they always are), and another long iteration is required.<br /><br />Smart people rediscover short iterations, and lately these have been articulated as Agile Methods, and also include other ways to make the computer (e.g. automated tests) and human nature (e.g. pair programming) work effectively and more satisfactorily. The cost is a bit of deferred gratification by having to do some things up front (e.g. writing tests, refactoring) that pay off over time.<br /><br />However, it would be wrong to say that an Agile approach is the best for everything, at every scale. In particular, in knocking up a quick prototype one may well be justified in reverting to some of the cowboy practices for a short period. Note that it is not compulsory to drop all the agile practices when doing so -- do what suits the situation.<br /><br />The tricky bits are:<br /><ol><li>Not leaving it too long</li><li>Paying off the accumulated technical debt</li><li>Getting back into the discipline of following the practices</li><li>Combating the likely organizational pressure to continue at the previous pace!</li></ol>So good luck with the fartlek development*, and let me know what you think.<br /><br /><br />*My esteemed colleague -- and former Olympian -- Ben Loft points out that <a href="http://en.wikipedia.org/wiki/Interval_training">interval training</a> may offer a better analogy, but the name isn't as memorable.Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-15601151137877734352009-04-12T18:57:00.000-07:002009-04-12T21:57:51.337-07:00Provocation-based Selling (and Provocative Writing)Who doesn't love a controversy? Want to get noticed? Provoke! Capture attention!<div><br /></div><div>The trick is to follow up with something that hits the spot lest you alienate your suddenly alert audience.</div><div><br /></div><div>One way to provoke attention is to insult a big-name. In a recent article in the Harvard Business Review -- <a href="http://hbr.harvardbusiness.org/2009/03/in-a-downturn-provoke-your-customers/ar/1">In a Downturn, Provoke Your Customers</a> -- the authors (including Geoffrey "<a href="http://www.amazon.com/Crossing-Chasm-Marketing-High-Tech-Mainstream/dp/0066620023">Crossing the Chasm</a>" Moore) slam the generic notions of consultative selling and especially solution selling (as opposed to the more specific Consultative Selling and Solution Selling®) either through ignorance or in a straightforward grab for attention.</div><div><br /></div><div>The only problem -- as Keith Eades, CEO of SPI <a href="http://solutionselling.wordpress.com/2009/04/09/reponse-to-harvard-business-review-article-on-provocative-selling/">correctly points out</a> -- is that they have done so to a large extent by over-simplifying Solution Selling, and then comparing their "new" approach to a whittled down husk: </div><div><blockquote>Whereas solution-selling salespeople listen for “pain points” that the customer can clearly articulate, provocation works best when it outlines a problem that the customer is experiencing but has not yet put a name to. -- from the article</blockquote>But Solutions Selling has a powerful way to think about where your customer is at, before getting into "pain points": <span class="Apple-style-span" style="font-weight: bold;">Levels of Need*</span>: </div><div><ol><li><span class="Apple-style-span" style="font-weight: bold;">Latent need</span>: Unaware of a need that could be satisfied by purchase (perhaps they are unaware that there's a problem, or in denial, or resigned to coping with the status quo)</li><li><span class="Apple-style-span" style="font-weight: bold;">In pain</span>: Aware of the need ("in pain"), but unaware of how your offering can help</li><li><span class="Apple-style-span" style="font-weight: bold;">Vision creation</span>: The prospect has a vision or a "Solution", ideally including your offering. </li></ol></div><div>A key part of Solutions Selling is to move the customer upward through these Levels of Need. The article mis-characterizes Solution Selling as simply asking the prospect about their pain (i.e. jumping in at level 2 - In pain), while correctly pointing out that during a downturn many more people will tend to be at level 1 because they are doing their best to make-do with much-reduced budgets and discretionary funds.</div><div><br /></div><div>A key part of "provocation-based selling" seems to be to provoke a response by forcefully articulating a problem that the customer has, get them to acknowledge it, and then make a bee-line to the person who has the authority to do something about it (and who can release funds to purchase).</div><div><br /></div><div>This is all good Solution Selling, just in slightly different terms. In classic Solution Selling one would first try to stimulate the interest of a contact with a <span class="Apple-style-span" style="font-weight: bold;">Reference Story</span>, typically describing a person in a similar situation to their current one and how you were able to help that person. Hopefully the contact will respond by either confirming that (s)he has similar issues, or -- equally good -- say something like, "No, we don't have those problems. This is what's really bugging me ...". Either way, you are engaging and on your way to level 2. While exploring the prospect's pain, you should also be finding out who else is affected (i.e. who else you need to speak to get a fuller organizational picture of the pains, and also who can authorize a sale), etc. [I have a fuller summary of Solution Selling <a href="http://dailykibitz.blogspot.com/2009/01/distillation-of-solution-selling.html">here</a>.]</div><div><br /></div><div>The authors of the HBR article have a good point to make: That during a downturn a forceful -- or provocative -- approach may be a good way to jolt prospects into thinking about what can be done to improve their business, including alerting them to problems that they may be reluctant to address. They suggest a mixture of fear -- "if you don't do something you're doomed" -- and hope -- "but we can help you get through this". This seems like a good approach, provided you have accurate information, and can pull it off without alienating your prospect by coming across as arrogant: "I know your problems better than you"!</div><div><br /></div><div>So "props" to the authors of In a Downturn, ... for being provocative, and thereby garnering some attention for the important issue of jolting people out of latency during a downturn.</div><div><br /></div><div>My guess is that the authors feigned ignorance of Solution Selling etc. to whip up controversy, and that's probably a good thing!</div><div><br /></div><div><br /></div><div>* Austhink's add-on to SalesForce crm -- <a href="http://sites.force.com/appexchange/apex/listingDetail?listingId=a0N300000016d1FEAQ">bSelling Opportunity Management</a> -- augments SalesForce's contact information (which is a bit more Miller-Heiman-esque out-of-the-box) with a Level of Need field. Naturally, we also do pain points!</div><div><br /></div>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com1tag:blogger.com,1999:blog-2260601671083443121.post-25700148472228105712009-04-07T18:20:00.000-07:002009-04-07T19:06:37.640-07:00To Customize is CoolIt's cool to customize! It practically has the word "customer" in it, so what's not to love?<br /><br />Seriously: When prospective customers see the Qualify tool -- part of Austhink's <a href="http://sites.force.com/appexchange/apex/listingDetail?listingId=a0N300000016d1FEAQ">bSelling</a> add-on to Salesforce crm ...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-Vtc35xDigf6XZR0sNpGr2IyrzFoorjT3SvGI1o8lAsYfy3jDPLmLB-b-nQ6l6iv2R_ogZn5W58d0xfBx0UQ5jSlx0l93lGp_ffDoRbEripdu5wAA2oknU-S11KxKVHge2COPO9_TLBw/s1600-h/qualify.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-Vtc35xDigf6XZR0sNpGr2IyrzFoorjT3SvGI1o8lAsYfy3jDPLmLB-b-nQ6l6iv2R_ogZn5W58d0xfBx0UQ5jSlx0l93lGp_ffDoRbEripdu5wAA2oknU-S11KxKVHge2COPO9_TLBw/s320/qualify.PNG" alt="" id="BLOGGER_PHOTO_ID_5322125863736194914" border="0" /></a><br />they say two things:<br /><ol><li><span style="font-style: italic;">Wow</span>!</li><li><span style="font-style: italic;">Can I customize it</span>?</li></ol>The "Wow!" reaction is because here is a tool that <span style="font-weight: bold;">really helps the salesperson </span>with a vital but difficult task -- sales qualification -- in a <span style="font-weight: bold;">fun </span><span style="font-weight: bold;">way</span>. It provides useful <span style="font-weight: bold;">feedback</span> -- an overall percentage, and sensible concrete ways to boost the score. Ok: Most of the wow is because of the fun factor and groovy way it plays (like flipping through photos on a Mac).<br /><br />The second reaction -- the wish for customization -- is natural. Although at Austhink we believe that the <span style="font-style: italic;">out-of-the-box</span> system is quite generic, sales teams do of course vary in their terminology, types of customers, and overall slant sales.<br /><br />So, I recommend a suck it before you salt it approach:<br /><ol><li>Try out the generic version (that comes with the free version of bSelling) on a few opportunities to get the feel for the process. Just pick a neutral "card" if a factor doesn't seem to apply.<br /></li><li>Make notes about where the terminology needs revision, which "factors" don't apply, and which (if any) are missing.</li><li>Upgrade to the premium version of bSelling and make use of our soon-to-be-released customize feature.</li><li>If you need extra help, we can arrange consultation!<br /></li></ol>The customize feature allows your company to change the wording, options, factors, and weightings -- i.e. everything -- of the Qualify tool to tailor it to fit your unique situation. Just like the tool itself, it looks great, is fun-to-use and it has a game-like feel. Here's a sneak peak:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggkVaRZ6PhO-ghBn_JM31PimTdlTmrWBrLz06MYRhdpJQ-TLQbRKOuCw0_Xy6czwx4FpeI4oC1xo5EbrrqSYxkzsTgeaueg6kWlG7HPfQ22W7PwRFZaygDu0-q503sgeVQeD9WhVGfupk/s1600-h/qualify+customization.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggkVaRZ6PhO-ghBn_JM31PimTdlTmrWBrLz06MYRhdpJQ-TLQbRKOuCw0_Xy6czwx4FpeI4oC1xo5EbrrqSYxkzsTgeaueg6kWlG7HPfQ22W7PwRFZaygDu0-q503sgeVQeD9WhVGfupk/s320/qualify+customization.PNG" alt="" id="BLOGGER_PHOTO_ID_5322131450742528210" border="0" /></a><br />Each line represents a deck of cards in the tool, and each block represents a single card. The length of each line represents the weight of each factor. You just click on a box to edit some wording (shown), or click on an end box to stretch or squash a line (to make a factor more or less important compared to the others). Other operations are similarly simple.<br /><br />By the way: If you think of the Qualify tool as a level in a game, the customization tool is like the level-designer that allows an obsessed user to design new game levels for their friends to play. In this case, the customization tool allows the sales-manager to tweak (or totally revamp) the qualification process to fit local conditions, and better monitor (and mentor) the sales team.<br /><br />We are about to trial the customization tool with a select group of beta-testers -- email me at dan@austhink.com if you want to give it a whirl -- and the first version should be available in the next week or so.Daniel Pragerhttp://www.blogger.com/profile/05502083078481742896noreply@blogger.com0tag:blogger.com,1999:blog-2260601671083443121.post-15877469927760737112009-04-03T22:08:00.000-07:002009-04-03T22:39:09.623-07:00From Moses to Moses ..."From Moses to Moses there was none like Moses". The two Moses's of the quote are Moses the lawgiver -- he 0f the 10 commandments etc. -- and <a href="http://en.wikipedia.org/wiki/Maimonides">Moses Maimonedes</a> the greatest Jewish sage of the middle ages.<div><br /></div><div>Loyal readers of this blog will remember that <a href="http://dailykibitz.blogspot.com/2008/04/just-little-bit-proud.html">last year</a> my son Jake portrayed the earlier Moses in the kindergarten Pesach (Passover) play:</div><div> </div><div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6fVvsStjrE8dP5hn4osSf8vwyFGV-bBdQhvJ7NjIoOL1vrfMLpx4kVIO260K5y78a6rj3yhDriB02AGQuEwyLaac0dC6SVNz0w_AurnA1fDWcWAZje0K-8dfX7fTzpAzDHs56LwSVxGE/s1600-h/Jake+as+moses+cropped.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6fVvsStjrE8dP5hn4osSf8vwyFGV-bBdQhvJ7NjIoOL1vrfMLpx4kVIO260K5y78a6rj3yhDriB02AGQuEwyLaac0dC6SVNz0w_AurnA1fDWcWAZje0K-8dfX7fTzpAzDHs56LwSVxGE/s320/Jake+as+moses+cropped.jpg" alt="" id="BLOGGER_PHOTO_ID_5197539810194801490" border="0" /></a><span style="font-style: italic;">Jake as Moses</span></div><br /></div><div>Witnesses said that his manner and physical resemblance to the biblical Moses was uncanny, and it seemed it would be a long time before anyone would else would pull off such a convincing portrayal ...</div><div><br /></div><div>That was until Jake's little sister Ella put on the beard!</div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSwH4nKAY14bHRFuPtNppH1nGqR-HlvDpXRIfazOike4uApdyWSYSuhX_YFL-PojGnGVwTS_d9XjrQ8z8PgK7puuhCWe99YdYkHEu2cZsXyaPkhjZvIjDUlMXDJW4CyEpsIPfwKjeVLxA/s1600-h/Ella+as+Moses.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSwH4nKAY14bHRFuPtNppH1nGqR-HlvDpXRIfazOike4uApdyWSYSuhX_YFL-PojGnGVwTS_d9XjrQ8z8PgK7puuhCWe99YdYkHEu2cZsXyaPkhjZvIjDUlMXDJW4CyEpsIPfwKjeVLxA/s320/Ella+as+Moses.jpg" alt="" id="BLOGGER_PHOTO_ID_5320703135991530642" border="0" /></a><div style="text-align: center;"><span class="Apple-style-span" style="font-style: italic;">Ella as Moses</span><br /></div></div><div><br /></div><div>Apparently Ella was a little more tentative in her portrayal than Jake had been, but she is a year younger than he was when he took on the role.</div><div><br /></div><div>Nevertheless, I am again very proud indeed. (And amused.)</div><div><br /></div><div><br /></div>Dan Pragerhttp://www.blogger.com/profile/14234352019207324148noreply@blogger.com0