<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20337798</id><updated>2012-02-02T18:37:03.504+01:00</updated><category term='trust'/><category term='documentation'/><category term='web'/><category term='webservices'/><category term='development'/><category term='UX'/><category term='scm'/><category term='communication'/><category term='principles'/><category term='cloud'/><category term='presentation'/><category term='facilitation'/><category term='scrum'/><category term='agile'/><category term='build'/><category term='coaching'/><category term='negotiation'/><category term='software'/><category term='reference'/><category term='mac'/><category term='Links'/><category term='aspects'/><category term='notes-to-self'/><category term='operations'/><category term='methods'/><category term='management'/><category term='mbti'/><category term='humor'/><title type='text'>agile aspects</title><subtitle type='html'>Agile processes and aspect oriented programming used to be my main interest - but I'll blog about just anything that comes up :-)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20337798.post-5728884173050194430</id><published>2012-01-30T16:47:00.008+01:00</published><updated>2012-01-30T16:55:23.772+01:00</updated><title type='text'>The "Last Responsible Moment" may be sooner than you think</title><content type='html'>Now that was a nice one - as a practitioner of agile &amp;#39;stuff&amp;#39; I have been a big fan of postoponing decisions to the last responsible moment for quite a while.&lt;br /&gt;Suits my way of looking at things too.&lt;br /&gt;The question of course is: When exactly &lt;em&gt;is&lt;/em&gt; the last responsible moment? Usually when building software it is tempting to work with the assumption that the last responsible moment is right before I write the line of code related to the decision. Works well with the way &amp;#39;agilistas&amp;#39; despise &lt;a href="http://c2.com/xp/BigDesignUpFront.html"&gt;Big Design Up Front&lt;/a&gt; too.&lt;p&gt;Funny when you start to compare software development with the real life. (After all: That&amp;#39;s what object orientation is all about, right? Modelling the real word with software representations? But let&amp;#39;s take that at another time and come back to the subject at hand.&lt;br /&gt;While I literary roamed the world in 2011 the concept of planning with regard to the &amp;quot;Last Responsible Moment&amp;quot; made the rounds on some of the mailing lists concerned with agile software development practices. &lt;br /&gt;I on the other hand tried to live a &amp;#39;normal life&amp;#39;. writing software and preparing material during the daytime, while spending the evenings with everyday pasttimes - in my case Aikido. Never mind if you have never heard of Aikido - although you might want to look it up at Wikipedia.&lt;p class="mobile-photo" style="float:right;"&gt;&lt;a href="http://4.bp.blogspot.com/-qSQkqVbRLKc/Tya7koDt1NI/AAAAAAAAAGk/cCWW7FJa_Js/s1600/WaitingForTheBusInDubai1-750007.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/-qSQkqVbRLKc/Tya7koDt1NI/AAAAAAAAAGk/cCWW7FJa_Js/s320/WaitingForTheBusInDubai1-750007.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5703452216014001362" /&gt;&lt;/a&gt;&lt;/p&gt;The question in case is the one of the latest responsible moment - in this case the moment for the decision on  whether to hitch a ride with one of my fellow aikidoka, take a cab or take the bus. &lt;p&gt;To cut a long story short - in the real world the latest responsible moment is &lt;em&gt;not&lt;/em&gt; when you reach a bus stop a couple of miles of the central public transport axis of dubai, shortly after your last training buddy has left.&lt;br /&gt;Especially if the area temporarily has no cell phone reception and that particular bus stop is only serviced until half an hour earlier at this time of the year (mentioned in the small print)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-5728884173050194430?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/5728884173050194430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=5728884173050194430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5728884173050194430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5728884173050194430'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2012/01/last-responsible-moment-may-be-sooner.html' title='The &quot;Last Responsible Moment&quot; may be sooner than you think'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-qSQkqVbRLKc/Tya7koDt1NI/AAAAAAAAAGk/cCWW7FJa_Js/s72-c/WaitingForTheBusInDubai1-750007.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-7898113219676435028</id><published>2011-08-11T05:08:00.014+02:00</published><updated>2011-08-11T07:19:01.589+02:00</updated><title type='text'>16 elevator pitches for scrum as a contribution to @boeffi's compilation</title><content type='html'>As an &lt;a href="http://twitter.com/MMahlberg/status/101215596569559040" title="Audience? Goal of pitch? Sell or convince? Long- or short term? Acquire money of buy-in? Literally or figuratively elevator (&gt;30s)"&gt;answer&lt;/a&gt; to a &lt;a href="http://twitter.com/Boeffi/status/101209559305162752" title="I'm searching for a #Scrum elevator pitch statement: "Scrum is ..." - thx for (en|de) feedback"&gt;recent query for scrum elevator pitches on twitter&lt;/a&gt; from &lt;a href="https://twitter.com/#!/Boeffi/"&gt;@boeffi&lt;/a&gt; (Who also runs &lt;a href=""&gt;German blog&lt;/a&gt; on software development) I asked myself (and him subsequently) a couple of questions regarding the setting and desired result to target the 140 character accordingly...&lt;br /&gt;Unfortunately (for me) his answer was  &lt;a href="http://twitter.com/Boeffi/status/101223207859793920" title="I want to collect a toolset of statements for different kinds of situations, audience, goals ... maybe in future 4 a #scrum wiki"&gt;"All of them"&lt;/a&gt;.&lt;br /&gt;Please join the discussion &lt;a href="http://bit.ly/pcSTGW"&gt;at his site&lt;/a&gt;&lt;h3&gt;Challenge accepted!&lt;/h3&gt;Given that I asked about four dimensions I think 16 "pitches" of less-than-140 characters will do for starters...&lt;br /&gt;&lt;h3&gt;The collection of Scrum Elevator Pitches&lt;/h3&gt;&lt;span style="font-size:smaller;"&gt;Please read the disclaimer below - don't use them literally&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The physically realized earned value from delivering fully functional slices in scrum takes ROI from estimatable to measurable&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MSLM: Management, Sell, Long term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Proccesses like Scrum can help in the transformation of the whole organization towards lean by providing transparency throughout.&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MCLM: Management, Convince, Long term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;By concentrating on the most valuable parts in shippable slices Scrum reduces time to market considerably - often to a few weeks.&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PSLM: Users, Sell, Long term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Instead of investing the subject matter expert's time in the test at the end Scrum involves him early to build a fitting product&lt;br&gt;&lt;span style="font-size:smaller;"&gt;PCLM: User, Convince, Long term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;One scrum project, budgeted for 10 Mio $ was ended after spending only 2 Mio $ – because it had delivered all the important features&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MSSM: Management, Sell, Short term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Scrum's focus on a "potetially shippable" increments ensures that the produced product-parts provide real value to the users&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MCSM: Management, Convince, Short term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;The proven prioritization models of Scrum enable you to get high value from the development team early for your time investment  &lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PSSM: User, Sell, Short term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;The continuous effort you put into specifications can be turned into continuously valuable and tangible results by Scrum&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PCSM: User, Convince, Short term, Money&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Scrum can give organizations the information they need for a fundamental reorientation - or help to make them ready for it&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MSLB: Management, Sell, Long-Term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Having crunch times and lulls can be countered by adopting the basic Scrum rules - they create a self balancing, sustainable system&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MCLB: Management, Convince, Long-Term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Getting Scrum to both sides - developers and users - gives users a real strong lever over the scope of the final delivery&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PSLB: User, Sell, Long-Term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;If all the effort that goes into upfront specs went into a Scrum-like collaboration the results would be closer aligned to the needs&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PCLB: User, Convince, Long-Term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Scrum is a set of techniques that generates transparency and makes projects predictable and controllable again.&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MSSB: Management, Sell, Short term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;With scrum both parties of product development lay out rules that ensure - but also requires - mutual commitment and engagement&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;MCSB: Management, Convince, Short term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;With Scrum you get the opportunity to set the direction of the development at least once a month.&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;PSSB: User, Sell, Short term, Buy-in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;If you want to gain a real and direct influence over the priorities in the development team you might want to have a look at scrum.&lt;br&gt;&lt;span style="font-size:smaller;"&gt;PCSB: User, Convince, Short term, Buy-in&lt;/span&gt;&lt;/br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Explanation of the Dimensions: Audience, Goal, Timeframe, Required Action&lt;br /&gt;&lt;span style="font-size:smaller;"&gt;Audience: [Management=M, user representative or possible Product owner=P]&lt;br /&gt;Goal: [Sell=S, Convince=C] &lt;br /&gt;Timeframe: [Long term=L, Short term=S]&lt;br /&gt;Required Action: [allocate Money or resources=M, Buy in=B]&lt;/span&gt;&lt;br /&gt;&lt;h3&gt;Disclaimer&lt;/h3&gt;These are examples of pitches for generic situations - don't use them! Forge your own given your specific situation and requirements.&lt;br /&gt;&lt;strong&gt;In my opinion there is no such thing as one right elevator pitch for anything - it's all about the context.&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-7898113219676435028?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/7898113219676435028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=7898113219676435028' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7898113219676435028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7898113219676435028'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/08/16-elevator-pitches-for-scrum-as.html' title='16 elevator pitches for scrum as a contribution to @boeffi&apos;s compilation'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1775758498889510912</id><published>2011-07-06T05:28:00.006+02:00</published><updated>2011-07-06T10:53:06.460+02:00</updated><title type='text'>One Inbox or Inbox Zero?</title><content type='html'>&lt;h3&gt;Since when does "Inbox Zero" refer to email?&lt;/h3&gt;When I first heard of the idea of an empty inbox it did not refer to you email inbox - instead it referred to a very physical inbox and to the management of workflows. &lt;a href="http://www.43folders.com/"&gt;Merlin Mann&lt;/a&gt; did an excellent Job of tying the inbox metaphor in the context of inbox zero to the email mailbox with &lt;a href="http://www.43folders.com/izero"&gt;his article series&lt;/a&gt;.&lt;h3&gt;In GTD (getting things done) the inbox is something quite different&lt;/h3&gt;From what I understood from the &lt;a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280/ref=sr_1_1?ie=UTF8&amp;qid=1309939582&amp;sr=8-1"&gt;GTD book by David Allen&lt;/a&gt; the point of an GTD-Inbox is twofold. First to get things out of your mind quickly and secondly to have &lt;em&gt;one&lt;/em&gt; place of reference for your tasks/todos. Once you have that you can apply the two-minute-rule and other things from the GTD toolkit.&lt;br /&gt;So actually in this model the inbox is a logical container for all the stuff you have to do.&lt;h3&gt;Using the email inbox as a todo list harms your work organization&lt;/h3&gt;If my inbox is tied to the email system my work is tied to my computer. Assuming I wanted to set up a workflow system that is more pull oriented and does not necessarily contain only virtual to dos I would have to somehow bend your email workflow and it would be hard to use a different tool for your workflow management. Although I have to admit that there was a time when I had email folders called "Pending", "In Progress", "Waiting" and "Done" - but they didn't have WIP-Limits and it was at a time before David Anderson had even begun to write the Software Kanban Book.&lt;h3&gt;Goals of the Inbox&lt;/h3&gt;Having one place to collect all todos is far more important for me than having an empty "unsorted pile" - which basically is what the "inbox" really is. &lt;h3&gt;"Email Inbox Zero" is quite random IMO&lt;/h3&gt;Why the heck are so many people possessed with getting their (email) inbox to zero? What about their Twitter Inboxes, their Skype Inboxes their paper inboxes, their... you get the picture. So instead of trying to achieve inbox Zero I just scan my emails whenever they arrive or I have the time to do it. If I think I have to act upon one of them I create a ToDo in a secondary system. If I need to reply, i create an empty response, save that (so that don't have to search for the original) and create a ToDo in a secondary system.&lt;br /&gt;The todos in this secondary system are completely independent from my mail workflow, my inbox contains literally tens of thousands of emails and I don't have any problem with that.&lt;br /&gt;And I don't spend hours of thinking about ways to find an effective way to abuse my email system.&lt;h3&gt;Plain text is king? Pen and Paper?&lt;/h3&gt;So what magical secondary system do I use? &lt;br /&gt;None at all. &lt;br /&gt;Right now I work with a three tiered approach consisting of Pen and Paper for the first tier, and two documents in plain text that get synchronized between all my devices.&lt;br /&gt;I guess everybody has to find their own solutions. But that is not the point. The point is: It is not you E-Mail inbox and copying, deleting or moving hundreds of emails per day might even eat up time that you could spend getting things done.&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;  Michael&lt;br /&gt;&lt;br /&gt;(This post is v0.9 but the ship date has arrived...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1775758498889510912?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1775758498889510912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1775758498889510912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1775758498889510912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1775758498889510912'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/07/one-inbox-or-inbox-zero.html' title='One Inbox or Inbox Zero?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-2362150942716303856</id><published>2011-05-26T23:49:00.021+02:00</published><updated>2011-05-27T17:49:19.668+02:00</updated><title type='text'>Pre-flight checks are possible on planes but not on Enterprise Applications - why?</title><content type='html'>&lt;a href="http://www.flickr.com/photos/iagoarchangel/3304945757/" title="Pre-flight check by iagoarchangel, on Flickr"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 180px;" src="http://farm4.static.flickr.com/3456/3304945757_7bb73414b9_m.jpg" width="240" height="180" alt="Pre-flight check"&gt;&lt;/a&gt;&lt;br /&gt;Unit testing is all pretty well but what about delivering these tests into production? &lt;br /&gt;Is it a good idea? Or is it "nice for toy applications, but you can't do that with Enterprise Applications, because there is to much money/security/personal data at stake"?&lt;br /&gt;And what kind of tests are we talking about anyway?&lt;br /&gt;&lt;br /&gt;Basically this post is meant to debunk some believes that I encountered during a couple of Enterprise Application projects. Lets look at them:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;We write throw-away code for unit tests that that we wouldn't need if we didn't write unit tests&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[The] tests are only usefull during development - they /must/ be removed from production code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;We don't need to simulate the connected systems once we get the real systems connected&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Throw-away code is effort that's useless and could/should be avoided&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;While these claims seem very convincing at first sight and might be very appealing to managers who try to get a development team to be "more productive" their physical world counterparts tell that story quite differently. And my own - albeit to some extent seemingly counterintuitive - observation is that these believes seem to be quite wrong. &lt;br /&gt;&lt;br /&gt;Now - if you're still with me (or against me - as long as you care about the matter) - let's debunk them one at a time&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;(Unit-) Tests require otherwise useless code - I don't think so!&lt;/h3&gt;&lt;br /&gt;Of course you need to write some things to automate the tests that would not be necessary if you did something else instead. Like testing the application manually. But that doesn't mean that you win anything by not writing "those things" in the first place. You'd just replace a checkable, repeatable way to test your program by one that’s dependent on the alertness of the tester (in fact: your alertness!), her or his mood, interruptions etc.&lt;br /&gt;&lt;br /&gt;And let’s look at "those things" that you have to write.  For me, three things come to mind - the tests themselves, some kind of test harness and some special diagnostic extension point where it is possible for the tests to get access (read and write) to otherwise unexposed information.  I'll come back to the exposition of otherwise unaccessible information in the next section but the other two can be dealt with right away.&lt;br /&gt;&lt;br /&gt;The tests themselves? Well, of course I could just test the System manually.  But even if I was willing to re-test all possibly affected portions of my system each time I change my code - which I am not - it soon would become economically unsound. Apart from the sheer amount of time spent doing that, for any system that has reached a substantial size I would have to keep records of the test so that I can repeat them easily and know which parts have been retested since the last change and which still need some love. Just writing the tests is way less effort than the combined effort of writing specs, keeping track of the test I just did manually and the manual testing itself. &lt;br /&gt;&lt;br /&gt;The test harness? I think this is addressed by the same consideration that hold true for the tests themselves. Plus the fact, that there often is no way to test without a test harness since the system under development relies heavily on surrounding components. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Test should be run only outside live systems - I don't think so!&lt;/h3&gt;&lt;br /&gt;So let's come back to those extra accessors we wrote for our test that are "only there for the tests". Well sometime they /are/ only there for the tests.  Unfortunately. They could be so much more.  Let's look at the real - sorry, physical - world for some comparison:&lt;br /&gt;&lt;br /&gt;Airplanes and automobiles.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-EQMZ1-t0by8/Td7QG90icYI/AAAAAAAAAEc/f0J215mm0xA/s1600/dashboard1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/-EQMZ1-t0by8/Td7QG90icYI/AAAAAAAAAEc/f0J215mm0xA/s200/dashboard1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5611151003842933122" /&gt;&lt;/a&gt;Have you ever wondered what all those dials on a typical airplane dashboard of the last century indicate? Well a lot of them show things that /should not be necessary to measure/ for example the exhaust gas temperature (egt). This also is a function of the manifold pressure and the fuel intake - both of which are displayed by other gauges. But measuring each of the components separately - which really is redundant if everything works as designed - gives the pilot the option to manually lean or enrich the fuel for optimal performance. And it serves as an indicator of possible related problems.&lt;br /&gt;&lt;br /&gt;I still have to see an Enterprise Application where there is e.g. a counter for request, a counter for inserts and a counter for updates, that get monitored in production. Such counters usually are there - for the tests. And they are used - in the tests. &lt;br /&gt;So why not take them to the production system? &lt;br /&gt;&lt;br /&gt;Or take another element of pre flight checks (not applicable to jets), the mag-check. Usually airborne engines use a magneto based system for spark generation and two separate circuits with separate magnetos and two spark plugs per cylinder. The "normal operation" is to have both spark plugs running. But - and this is where Enterprise Applications differ hugely - the pilot can control this. Even in mid-flight.  And it's part of the pre-flight check to test those unwanted conditions. &lt;br /&gt;&lt;br /&gt;Like "Both" - Revs should be 1400, "Left" - Revs should drop (only one plug), "Both" - Revs should rise again, "Right" - … you get the picture.&lt;br /&gt;&lt;br /&gt;But I've never seen something like that done to an Enterprise Application:&lt;br /&gt;"Cache Available" =&gt; All pages should show in less than n milliseconds&lt;br /&gt;"Cache not Available" =&gt; Pages x,y and z should show much slower&lt;br /&gt;"Database available" =&gt; Data should be written to the database&lt;br /&gt;"Database not available" =&gt; Data should be written to files&lt;br /&gt;&lt;br /&gt;But wait - that's not possible.&lt;br /&gt;Because we removed all the rods and knobs that enable direct access to those internals from the production code.&lt;br /&gt;&lt;br /&gt;And more often than not it's not even possible to take the delivered application an debug it because the debug information - and even the symbol tables where applicable - have been removed. So it's necessary rebuild the production version including debug information from the source control and try to recreate the failing scenario. &lt;br /&gt;&lt;br /&gt;If automobile engines where build like that you would have neither the yellow "general engine failure" light on the dashboard nor the option to go to the garage and have them plug in the diagnostics computer and tell you exactly that there are air bubbles in the fuel pipe every time the engine revs over 5521. (that's an example of course…)&lt;br /&gt;&lt;br /&gt;Instead the garage would have to rebuild an engine exactly like the one you've got in your car and analyze the error from that one. Or at least completely disassemble your engine, insert probes, reassemble it and run it in an environment simulating your car.&lt;br /&gt;&lt;br /&gt;Although there are numerous implementations where you can probe a running system - especially on Apples OS X - they are mostly aimed at system level functions or the core frameworks. Actually I think it's very sad that it is so uncommon for programs and especiall Enterprise Applications to reveal relevant information about their internals.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;It's preferable to use The Real (connected) System for development - I don't think so!&lt;/h3&gt;&lt;br /&gt;Do you really think that, in the car supply industry, they fit each wiper motor in bodies of all targeted cars before they ship them? Last time I checked they used test rigs that have nothing in common with cars except for the interface to the wiper motor - but they might have some additional features like an instrument that measures the torque of the motor and another one that measures the current drain. And by mounting the wiper motor in that rig and measuring those values they can verify that it actually confirms to the contract to which both the car manufacturer and the supplier designed their part. (Which opens the road to Design by Contract - but that would be another story)&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;If you write code that get's deleted later than it's waste - I don't think so!&lt;/h3&gt;&lt;br /&gt;&lt;a style="float:right;" href="http://www.flickr.com/photos/31246066@N04/5253179784/" title="Gimme A Hand by Ian Sane, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5169/5253179784_7a8afd9ea4_m.jpg" width="240" height="164" alt="Gimme A Hand"&gt;&lt;/a&gt;There are lots of examples from the ream world that tell a different story.  The simple one of course is the paper cup you get with your coffee to go. It does get 'deleted' later on, when you throw it away, but I don't think it's feasible to do completely without it. At least I would either burn my fingers or at least ruin my shirt if I tried to take "only the coffee and nothing but the coffee" from my local takeaway. (Replacing the throw-away cup with a mug for multiple usage might be a good idea from an environmental point of view, but replacing it is not the same as "just don't do it”)&lt;br /&gt;&lt;br /&gt;&lt;div style="float: right" &gt;&lt;a href="http://www.flickr.com/photos/designandtechnologydepartment/4109423290/" title="The Casting Process * Craft &amp;amp; Design / Product Design by Jordanhill School D&amp;amp;T Dept, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2645/4109423290_e5d0f86119_t.jpg" width="100" height="67" alt="The Casting Process * Craft &amp;amp; Design / Product Design"&gt;&lt;/a&gt;&lt;a  href="http://www.flickr.com/photos/designandtechnologydepartment/4108787149/" title="The Casting Process * Craft &amp;amp; Design / Product Design by Jordanhill School D&amp;amp;T Dept, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2597/4108787149_6f2cae3c92_t.jpg" width="67" height="100" alt="The Casting Process * Craft &amp;amp; Design / Product Design"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/designandtechnologydepartment/4109661280/" title="The Casting Process * Craft &amp;amp; Design / Product Design by Jordanhill School D&amp;amp;T Dept, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2518/4109661280_f46054eb1f_t.jpg" width="100" height="67" alt="The Casting Process * Craft &amp;amp; Design / Product Design"&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/designandtechnologydepartment/4109701060/" title="The Final Casting * The Casting Process * Craft &amp;amp; Design / Product Design by Jordanhill School D&amp;amp;T Dept, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2583/4109701060_2df3425a68_t.jpg" width="100" height="67" alt="The Final Casting * The Casting Process * Craft &amp;amp; Design / Product Design"&gt;&lt;/a&gt;&lt;/div&gt;Another examples - that is perhaps more suitable from production point of view - is almost anything that has to do with casting metal. A wide range of casting techniques requires a cast that gets destroyed in the process. Those are made up of a multitude of materials and usually require serious work before the casting process can begin. And after the casting and cooling and hardening it often gets destroyed by brutal force - with hammers and pickaxes if needed. I really don't think you could build those metal things without the cast.  So if I write code that for example simulates a calculation that will be build much later and gets thrown away once the more complex "real" function is implemented that - for me - is the mold that allows me to form the rest of my code around it.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;Theres a ton of related material out there, but "PPP" by Uncle Bob and the original edition of "Extreme Programming explained" by Kent Beck do a pretty good job of conveying the fundamental concepts. And throwing in some TDD by Kent Beck, BDD by Dan North plus Refactoring by Martin Fowler et. al. for good measure wouldn't do much harm either - but that's on my 2¢ and of course YMMV.&lt;br /&gt;&lt;br /&gt;PPP = Agile Software Development, Principles, Patterns, and Practices by&lt;br /&gt;      Robert C. Martin&lt;br /&gt;TDD = Test Driven Development: By Example by kent Beck&lt;br /&gt;BDD = http://dannorth.net/introducing-bdd/&lt;br /&gt;Refactoring = Refactoring: Improving the Design of Existing Code by Martin&lt;br /&gt;              Fowler, Kent Beck, John Brant and William Opdyke&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-2362150942716303856?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/2362150942716303856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=2362150942716303856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2362150942716303856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2362150942716303856'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/05/pre-flight-checks-are-possible-on.html' title='Pre-flight checks are possible on planes but not on Enterprise Applications - why?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3456/3304945757_7bb73414b9_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3917600760840757737</id><published>2011-04-28T17:52:00.002+02:00</published><updated>2011-04-28T19:18:55.197+02:00</updated><title type='text'>Re: [Airbnb Community Support] Re: Airbnb.com iPhone Support Request</title><content type='html'>&lt;div&gt;&lt;div&gt;Dear Airbnb, (CC'd to the same Blog as before)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;please do me the courtesy of at least reading what I write.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which part of "I don't want you to help me track the information down" did I write in such a way that it was so easily misunderstood?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I am not only a customer who feels that he is not in Control of his data but also a customer who infers from your actions that his concerns are of no real importance to you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yours, Michael&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;On 28 Apr 2011, at 17:07, Cathy H &amp;lt;&lt;a href="mailto:notifications-support@airbnb.zendesk.com"&gt;&lt;/a&gt;&lt;a href="mailto:notifications-support@airbnb.zendesk.com"&gt;notifications-support@airbnb.zendesk.com&lt;/a&gt;&amp;gt; wrote:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote type="cite"&gt;&lt;div&gt; &lt;div style="margin:0px auto;text-align:center;font-size:12px;color:#A2A2A2;padding-bottom:6px"&gt;   -- Please respond above this line. -- &lt;/div&gt; &lt;table cellspacing="0" cellpadding="0" width="100%"&gt; &lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;        &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td style="text-align:center;padding-left:4px"&gt;   &lt;table width="100%"&gt;     &lt;tbody&gt;&lt;tr&gt;       &lt;td style="font-size: 12px; font-family: Arial;font-style:normal; font-variant:normal;padding:8px;text-align:left"&gt;      &lt;p&gt;&lt;/p&gt;&lt;hr style="border: none 0; border-top: 1px dashed #C2C2C2;height: 1px;margin:15px 0 0 0"&gt; &lt;br /&gt; &lt;strong&gt;Cathy H, Apr-28 08:07 (PDT):&lt;/strong&gt;&lt;p&gt;Michael,&lt;/p&gt;&lt;p&gt;Our records indicate that your reservation with Hannes in Vienna has been accepted.  As payment you supplied us with a Mastercard ending in nnnn and were charged:   $nnn / €nnn EU    This charge was pushed through manually a moment ago, because when you entered your payment information you forgot to select the country you live in.  We've done that for you and now you should see the charge on your credit card.&lt;/p&gt;&lt;p&gt;Your request with Eva in Vienna is no longer possible because she did not respond to your request within 24 hours.  You were not charged for that.&lt;/p&gt;&lt;p&gt;Please let us know if we can provide further assistance.&lt;/p&gt;&lt;p&gt;Kind regards,&lt;/p&gt;&lt;p&gt;Cathy H &lt;br /&gt;&lt;a href="http://www.airbnb.com"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com"&gt;www.airbnb.com&lt;/a&gt;&lt;br /&gt;855.4.AIRBNB (Toll Free) or 415.800.5959&lt;br /&gt;Help Airbnb win a Webby Award, vote now! &lt;a href="http://bit.ly/gpDDsW"&gt;&lt;/a&gt;&lt;a href="http://bit.ly/gpDDsW"&gt;&lt;/a&gt;&lt;a href="http://bit.ly/gpDDsW"&gt;http://bit.ly/gpDDsW&lt;/a&gt;&lt;/p&gt;&lt;hr style="border: none 0; border-top: 1px dashed #C2C2C2;height: 1px;margin:15px 0 0 0"&gt; &lt;br /&gt; &lt;strong&gt;Michael Mahlberg, Apr-28 07:14 (PDT):&lt;/strong&gt;&lt;p&gt;Dear Airbnb, (CC'd to one of my blogs)&lt;/p&gt;&lt;p&gt;In the meantime the registration has expired and /after that/ the payment information is visible on the website - for a brief moment until I confirm the information. Then it's inaccessible again!&lt;/p&gt;&lt;p&gt;So, in the name of open Business-2-Customer relationships, here is what I would expect:&lt;/p&gt;&lt;p&gt;I don't want you to help me track the Information down - I want control over my data!&lt;/p&gt;&lt;p&gt;I want to be able to see /exactly/ which data you have on file for me.&lt;br /&gt;I want to be able to see, which transactions are pending right now!&lt;/p&gt;&lt;p&gt;As much as I like the idea of your service, I don't feel comfortable if you play it so unreasonably close to the chest.&lt;/p&gt;&lt;p&gt;Cheers&lt;br /&gt; Michael&lt;br /&gt;( @MMahlberg on twitter )&lt;/p&gt;&lt;hr style="border: none 0; border-top: 1px dashed #C2C2C2;height: 1px;margin:15px 0 0 0"&gt; &lt;br /&gt; &lt;strong&gt;Cathy H, Apr-28 06:57 (PDT):&lt;/strong&gt;&lt;p&gt;Hi Michael,&lt;/p&gt;&lt;p&gt;We'd be happy to help you track this down.  Can you please provide your reservation code?&lt;/p&gt;&lt;p&gt;Best,&lt;/p&gt;&lt;p&gt;Cathy H &lt;br /&gt;&lt;a href="http://www.airbnb.com"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com"&gt;www.airbnb.com&lt;/a&gt;&lt;br /&gt;855.4.AIRBNB (Toll Free) or 415.800.5959&lt;br /&gt;Help Airbnb win a Webby Award, vote now! &lt;a href="http://bit.ly/gpDDsW"&gt;&lt;/a&gt;&lt;a href="http://bit.ly/gpDDsW"&gt;&lt;/a&gt;&lt;a href="http://bit.ly/gpDDsW"&gt;http://bit.ly/gpDDsW&lt;/a&gt;&lt;/p&gt;&lt;hr style="border: none 0; border-top: 1px dashed #C2C2C2;height: 1px;margin:15px 0 0 0"&gt; &lt;br /&gt; &lt;strong&gt;Michael Mahlberg, Apr-26 09:18 (PDT):&lt;/strong&gt;&lt;p&gt;Please enter the details of your support inquiry below:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;User Information&lt;br /&gt;Name: Michael M.&lt;br /&gt;ID: 533213&lt;/p&gt;&lt;p&gt;How can I find out, which of my credit cards I used to make a reservation?&lt;/p&gt;&lt;p&gt;Situation in case: 6 credit cards, one booking with airbnb - no movements on any account. Host has not yet (21 hours) responded.&lt;br /&gt;Which c-card is on your files? which one can I max out?&lt;/p&gt;&lt;p&gt;Cheers Michael&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;User Information&lt;br /&gt;Name: Michael M.&lt;br /&gt;ID: 533213&lt;/p&gt;&lt;p&gt;&lt;br /&gt;(von unterwegs gesendet)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Airbnb Community Support &lt;br /&gt;Phone: 1-855-4-AIRBNB | 415-800-5959 &lt;br /&gt;FAQ: &lt;a href="http://www.airbnb.com/help"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com/help"&gt;&lt;/a&gt;&lt;a href="http://www.airbnb.com/help"&gt;www.airbnb.com/help&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;        &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3917600760840757737?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3917600760840757737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3917600760840757737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3917600760840757737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3917600760840757737'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/04/re-airbnb-community-support-re_28.html' title='Re: [Airbnb Community Support] Re: Airbnb.com iPhone Support Request'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4821418708664717802</id><published>2011-04-18T10:16:00.009+02:00</published><updated>2011-04-18T11:18:06.445+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Why Google-Checkout sucks - at least for me</title><content type='html'>I just tried to buy the electronic version of &lt;a href="http://twitter.com/agilemanager"&gt;David J. Anderson&lt;/a&gt;'s &lt;a href="http://www.limitedwipsociety.org/2009/05/29/what-is-kanban-2/"&gt;Kanban&lt;/a&gt; book, because &lt;a href="http://307.mmahlberg.net/2011/04/01/rules-of-travel/"&gt;I'm traveling the world quite a bit right now&lt;/a&gt;, left the paper book at home and wanted to look up a few specifics for the design my own personal kanban system.&lt;br /&gt;&lt;br /&gt;Two things delayed my decision to buy it - and actually will delay it for a couple of days to come. Which is unbelievable for a process that takes a mere minute on amazon and &lt;a href="http://pragprog.com/"&gt;the pragmatic bookshelf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;1) I have to buy the eBook twice to read it in iBooks and on the Kindle [see below]&lt;br /&gt;2) I have to become a Google-Checkout Customer (&lt;strong&gt;which is the dealbreaker&lt;/strong&gt;)&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Problems with Google-Checkout&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;They (Google Checkout)  added my credit card info &lt;strong&gt;to the currently logged in google account&lt;/strong&gt;&lt;br /&gt;Really? The currently logged in account? That's just silly.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;They (Google Checkout) stored the credit card information&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;Actually Amazon also stores the credit card data. But amazon is a store - Google is a search engine and an information broker. So I'm supposed to give my credit card information to an information broker, who adds new services to it's portfolio every day? &lt;br /&gt;So, what I'll have to do now - to get the electronic version of a book I already own - is to get a prepaid credit card, put some money on it, connect that to google checkout, buy the book, disconnect the card from google-checkout.&lt;br /&gt;[Aka: No, I don't want others to be able to control my credit card and identity management. That's where I really want a push system] &lt;br /&gt;What a waste of time!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Problem with buying the book twice&lt;/h3&gt;&lt;br /&gt;I use the Kindle for reading and the iPad for Browsing, and since the Kindle UI is only mediocre compared to iBooks I would love two have both formats available as it is possible with &lt;a href="http://pragprog.com/"&gt;the pragmatic bookshelf&lt;/a&gt;. I admit that the Kindle UI is not as bad on the iPad as it is on the Kindle itself, but still it's a drawback compared to the iBook experience. So the current option for buying the book online isn't "quite" as pleasant as it would be to buy it from the  pragmatic bookshelf - or perhaps I'm just spoiled by the latter's focus on customer value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4821418708664717802?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4821418708664717802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4821418708664717802' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4821418708664717802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4821418708664717802'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/04/why-google-checkout-sucks-at-least-for.html' title='Why Google-Checkout sucks - at least for me'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1905476204324489523</id><published>2011-03-17T19:50:00.004+01:00</published><updated>2011-03-17T20:11:40.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><title type='text'>Note to self 15 - If a project has no risk - don't do it.</title><content type='html'>Dear Michael,&lt;br /&gt;&lt;a href="http://lunivore.com/"&gt;Liz Keogh&lt;/a&gt; in her &lt;a href="http://qconlondon.com/"&gt;QCon London&lt;/a&gt; &lt;a href="http://qconlondon.com/london-2011/presentation/Learning+and+perverse+incentives%3A+%22The+Evil+Hat%22"&gt;session on different kinds of incentives&lt;/a&gt; last week reminded me of this quote from Tom DeMarco and Timothy Lister's "Waltzing with bears".&lt;br /&gt;As DeMarco and Lister put it in the book each and every project that is worth it's while &lt;em&gt;has&lt;/em&gt; to have risk.&lt;br /&gt;For me the implication of a project with "no risk" is not only, that it could be done by anyone in any environment but also that &lt;em&gt;it doesn't matter if this project fails&lt;/em&gt; - essentially that is what "no risk" means in the end, right? - and who would want to work on such a project?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1905476204324489523?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1905476204324489523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1905476204324489523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1905476204324489523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1905476204324489523'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/03/note-to-self-15-if-project-has-no-no.html' title='Note to self 15 - If a project has no risk - don&apos;t do it.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1560634257263043826</id><published>2011-03-11T11:02:00.003+01:00</published><updated>2011-03-17T19:50:33.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Digital Taskboards I'm aware of as of 2011-03-11</title><content type='html'>At the Agile London usergroup meetup last night the topic of digital taskboards came up and I promised one of the participants to send a link to /one/ of them… since I couldn't remember which one I was referring to (it was kanbanery, I found my note eventually) I went through the list in my head and realised that the list isn't so short any more…&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://217.151.197.79/?p=206"&gt;Qanban&lt;/a&gt;…a very promising (and free as in speech) project from @xlson which unfortunately doesn't undergo much development right now. But… it's open source, &lt;a href="https://github.com/qbranchcode/Qanban"&gt;the source is on github&lt;/a&gt; - you know what to do!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://kanbanery.com/"&gt;Kanbanery&lt;/a&gt;…got a lot of mentions lately on twitter, but I only did a testdrive&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pivotaltracker.com/"&gt;Pivotal tracker&lt;/a&gt;…A friend of mine uses that a lot (Cheers @jcfischer) and is quite pleased with it&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://seenowdo.com/index.xhtml"&gt;See Now Do&lt;/a&gt;… haven't tried it, but I know the product owner and from that I infer that it ought to be good&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Atlassian / Jira / Greenhopper &lt;/li&gt;… that was the one we where searching alternatives for...&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;@Lynne: Sorry - to many to tweet directly&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1560634257263043826?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1560634257263043826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1560634257263043826' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1560634257263043826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1560634257263043826'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/03/digital-taskboards-im-aware-of-as-of.html' title='Digital Taskboards I&apos;m aware of as of 2011-03-11'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-9048539807376626401</id><published>2011-02-03T00:41:00.003+01:00</published><updated>2011-02-03T17:04:34.612+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='operations'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><title type='text'>Note to self 14 - Backups don't matter, what you want is recovery</title><content type='html'>It really doesn't matter how good or how fast your backup process is - it's fastest if you just copy to /dev/null - if the &lt;i&gt;recovery&lt;/i&gt; doesn't work.&amp;nbsp;&lt;div&gt;This is one of the times when the practices of ITIL and the like are very applicable even to the smallest IT department - like your own personal laptop computer.&lt;/div&gt;&lt;div&gt;&lt;i&gt;Do a trial run of the recovery every now and then!&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;(At least I was &lt;i&gt;told&lt;/i&gt;&amp;nbsp;that ITIL emphasizes these trial runs. If it doesn't – well, to do them still seems like a good idea to me)&lt;/div&gt;&lt;br /&gt;Edit: As &lt;a href="https://twitter.com/rtraschke"&gt;Robby Raschke&lt;/a&gt; said on Twitter:&lt;a href="https://twitter.com/rtraschke/status/33164281017012224"&gt; IT Service Continuity Management (ITSCM) in ITIL is where testing your business recovery is a critical component&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-9048539807376626401?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/9048539807376626401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=9048539807376626401' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9048539807376626401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9048539807376626401'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/02/note-to-self-14-backups-dont-matter.html' title='Note to self 14 - Backups don&apos;t matter, what you want is recovery'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-338714322668581248</id><published>2011-02-01T12:08:00.001+01:00</published><updated>2011-02-02T15:33:00.304+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Note to self 13 - you can't assign responsibility, it has to be assumed</title><content type='html'>Michael, you might be able to&lt;i&gt; say&lt;/i&gt; - or even &lt;i&gt;order&lt;/i&gt; - that somebody is responsible for something but that doesn't really make them &lt;i&gt;feel&lt;/i&gt; responsible for it. If he is &lt;i&gt;assigned &lt;/i&gt;that responsibility without &lt;i&gt;assuming &lt;/i&gt;&amp;nbsp;the responsibility he will most likely find ways to delegate this responsibility and to redefine the borders of the responsibility.&amp;nbsp;&lt;div&gt;An example for assumed responsibility would be this&amp;nbsp;guy I know who develops &lt;i&gt;his own&lt;/i&gt;&amp;nbsp;software for a living - they lengths he goes to circumvent the glitches of the operating systems are impressive. For example even if the java installations on the client machine are completely effed his software will still try to figure out the best match for his needs and will 'just work' - Although he could just lay back and take a position of "Well, if the user can't correctly install java it's his problem" he doesn't. He feels not only responsible for &lt;i&gt;implementing&lt;/i&gt;&amp;nbsp;his software. He feels responsible for the users experience with his software. (And given the fact that he is able to make a living from a $30 software package his commitment seems to pay off)&lt;/div&gt;&lt;div&gt;It's unrealistic to expect this kind of behavior from people who are &lt;i&gt;assigned&lt;/i&gt; responsibilities - especially if they don't believe in the goals or the underlying beliefs of the people who try to assign the responsibilities.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-338714322668581248?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/338714322668581248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=338714322668581248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/338714322668581248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/338714322668581248'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/02/note-to-self-13-you-cant-assign.html' title='Note to self 13 - you can&apos;t assign responsibility, it has to be assumed'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-7946672510754977412</id><published>2011-01-29T14:57:00.004+01:00</published><updated>2011-01-29T15:32:03.689+01:00</updated><title type='text'>Big scale 'Agile', enterprise 'Agile' - what went wrong?</title><content type='html'>I'm just trying to understand the idea of large scale 'Agile' &lt;br /&gt;"Apply the principles that we found out to work so well in small groups - which is what makes small groups so successful, because only in small groups these principles can work - to large projects?"&lt;br /&gt;Seriously?&lt;br /&gt;Whom are you trying to be kidding?&lt;br /&gt;&lt;br /&gt;Let me put it another way:&lt;br /&gt;1995 to 2008: 7 plus/minus 2 is the ideal team size because of [the usual arguments]&lt;br /&gt;2008 ff. : 'Agile' works so well, lets just apply it to the enterprise level&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;====8&lt;--------------&lt;br /&gt;Yes I know: the 7±2 team size thing is way older than 1995 - I was referring to usage in the 'Agile' (capital A) community&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-7946672510754977412?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/7946672510754977412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=7946672510754977412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7946672510754977412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7946672510754977412'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/big-scale-agile-enterprise-agile-what.html' title='Big scale &apos;Agile&apos;, enterprise &apos;Agile&apos; - what went wrong?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-910114628283902355</id><published>2011-01-25T09:24:00.001+01:00</published><updated>2011-01-25T09:34:03.301+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><title type='text'>Note to self 012 - Write it down immediately - with a pen!</title><content type='html'>Dear Michael,&lt;p&gt;your short term memory is mediocre at best - deal with it.&lt;br&gt;If you&amp;#39;ve got a bright idea while you&amp;#39;re on the phone, write it down. Immediately.&lt;br&gt;If you&amp;#39;ve got an important thought while browsing the web, write it down. Immediately.&lt;br&gt;If you&amp;#39;ve got a sudden intuition while you&amp;#39;re at the beach, write it down. Immediately. &lt;p&gt;There is a clever toolset designed for this task - it&amp;#39;s called PenAndPaper. No, really using pen and paper has some huge advantages over iPhones, Blackberries, iPads and the like.&lt;br&gt;- You don&amp;#39;t have to leave the application you&amp;#39;re working with right now.&lt;br&gt;- You don&amp;#39;t have to search for the application&lt;br&gt;- You can use it while you hold the phone to your ear.&lt;p&gt;Oh, and it doesn&amp;#39;t run out of batteries and even survives coffee spills (albeit at the loss of some legibility if you keep on insisting on using these antique fountain pens)&lt;p&gt;Therefore, dear Michael: Get back in the habit of almost always carrying a minimum amount of paper and a pen. &lt;p&gt;P.S.: But of course putting it down on paper doesn&amp;#39;t eliminate the need to consolidate the notes at some place - in your case I wuld recommend something electronic, virtual and distributable. Like a plain textfile. A text based mind map might also be in order as long as it really helps and doesn&amp;#39;t come in the way.&lt;p&gt;P.P.S: Oh, and since you&amp;#39;re such a keyboard fan - as long as you&amp;#39;re on a &amp;#39;real&amp;#39; computer and can acces your notes faster via a the keyboard that by reaching for pen and paper (e.g. &amp;lt;Cmd&amp;gt;-&amp;lt;Space&amp;gt;, &amp;quot;Scribbles&amp;quot;, &amp;lt;Enter&amp;gt; or &amp;lt;Windows&amp;gt;-&amp;lt;R&amp;gt;, &amp;quot;Scribbles.txt&amp;quot;, &amp;lt;Enter&amp;gt;) I guess it&amp;#39;s OK to use that instead of paper...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-910114628283902355?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/910114628283902355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=910114628283902355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/910114628283902355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/910114628283902355'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-012-write-it-down.html' title='Note to self 012 - Write it down immediately - with a pen!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-598251454515739979</id><published>2011-01-22T10:02:00.015+01:00</published><updated>2011-01-22T22:39:50.627+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='UX'/><title type='text'>Context does matter in UX und UI design</title><content type='html'>In a &lt;a href="https://twitter.com/sdelesie/status/28646422089826304"&gt;recent tweet&lt;/a&gt; a friend of mine (&lt;a href="http://selenadelesie.com/"&gt;Selena Delesie&lt;/a&gt;) stated that she is "Surprised to discover there are programmers who still don't put limits, data type restrictions, and error handling on form fields."&lt;br /&gt;&lt;br /&gt;As much as I like twitter I soon came to realize that I couldn't put my answer in 140 characters - not even with unicode tricks.&lt;br /&gt;But I'm not surprised at all - and I don't even think it's a bad thing that there are unchecked fields on forms. &lt;br /&gt;&lt;br /&gt;As I said in my reply:&lt;br /&gt;"depends on context &amp; is a tradeoff between effort &amp; possible harm.&lt;br /&gt;user ∈ inhouse dev ⇢ lax checks"&lt;br /&gt;user ∈ public ⇢ strict checks  [didn't fit in the 140characters limit]&lt;h4&gt;The scenario for &lt;em&gt;user ∈ &amp;nbsp; inhouse dev ⇢ lax checks&lt;/em&gt;&lt;/h4&gt;This would probably also be a 'C' or a very small 'D' on the &lt;a href="http://en.wikipedia.org/wiki/Cockburn_Scale"&gt;cockburn scale&lt;/a&gt;, wich is explained in more detail at &lt;a href="http://alistair.cockburn.us/Cockburn+Scale"&gt;Alistair's own site&lt;/a&gt;.&lt;br /&gt;If I build a 3-hour effort tool for me and my fellow developers to manipulate database metadata and that is intended to run only on our development machines I probably &lt;br /&gt;&lt;ul&gt;&lt;li&gt;won't put too much effort into checks against SQL-Injection - we can do all the harm we want anyway [and it doesn't matter much if we accidentally write "drop database;" in the database's command window or in an unchecked entry field]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;won't put to much effort into checks against the wrong type - I'm pretty sure all of the intended users (e.g. me and three co-workers) can handle an error message like  "invalid type at line 8745 in &amp;lt;name_of__3rd_party_sql_library&amp;gt;"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;won't care if it's possible to enter 4gb of data through one of the entry field - the possible harm is well within acceptable limits for the stakeholders (me and my colleagues)  and the harm could be achieved in much simpler ways&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;The scenario for &lt;em&gt;user ∈ &amp;nbsp; public ⇢ strict checks&lt;/em&gt;&lt;/h4&gt;On the other end of the spectrum would be a piece of software used by a large number of people who might or might not have have malicious intentions and where incorrect values might cause harm to serious money or even life (that would be a bigger 'D' an 'E' or an 'L' on the &lt;a href="http://en.wikipedia.org/wiki/Cockburn_Scale"&gt;cockburn scale&lt;/a&gt; IMO.&lt;br /&gt;The classic 'E' example for me is the ATM where I probably &lt;br /&gt;&lt;ul&gt;&lt;li&gt;would make sure that only numbers are entered by using a hardware keyboard that only consists of numbers [and check the input values to be a little bit safer with respect to physical attacks]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;would replace drop-down boxes by large hardware buttons at the edge of the screen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;and so forth&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The 'L' examples that come to my mind are mostly related to heavy machinery or medical equipment - in both cases the aforementioned principle - limit the choices and represent data entry through manipulation of physical objects - are heavily applied. &lt;br /&gt;Most application fall somewhere in between and nowadays more and more applications that deal with essential money (e.g. online banking) are realized without the hardware representation. In these cases, especially for applications running on the internet, I would&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Put limits on the length of input data - on the client if possible and on the server just to make sure&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Make sure the data that get's typed in represents the correct &lt;a href="#typesref"&gt;types *&lt;/a&gt; as early as sensible [that might be on the client - I'd add a server side check for good measure in all cases and might drop the client side check if it becomes to intrusive for the user.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Implement an error handling scheme that gives helpful information to the use with as much detail as he requests and informs the developers and maintainers of the system of the possible quirks in the system at the same time so that the UX can be optimized to have less occurrences of that specific error in future releases.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;The problem with the two scenarios &lt;em&gt;"user ∈ &amp;nbsp; inhouse dev ⇢ lax checks"&lt;/em&gt; and &lt;em&gt;"user ∈ public ⇢ strict checks"&lt;/em&gt;&lt;/h4&gt;is that most applications are somewhere between them. And sometimes application evolve from a little developer-on-the-team-only helper application to something that is used by more and more people so the &lt;a href="#lastrespmoment"&gt;last responsible moment **&lt;/a&gt; to rework my three our project to a product becomes hard to determine. But if I as a developer kept my options open (e.g. because &lt;a href="http://www.informit.com/articles/article.aspx?p=1235624"&gt;clean coding&lt;/a&gt; has become a second nature) it should be possible to productize the tool. &lt;br /&gt;But - it has to be a conscious decision!&lt;br /&gt;In my opinion it neither makes sense to make a cheap tool cat-proof nor is it responsible craftsmanship to offer a product to the public that doesn't employ proper checks. &lt;br /&gt;&lt;br /&gt;&lt;a name="typesref"&gt;&lt;/a&gt;* but that is a topic for another article - the only type that a user with a keyboard can key in is "array of characters" - what it represents is 100% context: e.g. "feed" might be a word in one case - it's the hexadecimal representation of 65261 in others.&lt;br /&gt;&lt;br /&gt;&lt;a name="lastrespmoment"&gt;&lt;/a&gt;** See e.g. &lt;a href="http://www.poppendieck.com/"&gt;Mary and Tom Popendiek&lt;/a&gt; on the topic of the last responsible moment and the keeping of options. Due to a fancy website design on their side I can't provide a link though - but as of 2011-01-22 the statements can be found after clicking on "focus on learning" in the principles box on the left hand side of their website.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;BTW: I really wonder how this page with the "is element of" and the arrows will display on other browsers and systems...&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-598251454515739979?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/598251454515739979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=598251454515739979' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/598251454515739979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/598251454515739979'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/context-does-matter-in-ux-und-ui-design.html' title='Context does matter in UX und UI design'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-8126335154639670849</id><published>2011-01-20T01:29:00.001+01:00</published><updated>2011-01-25T09:34:36.812+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Note to self 011 - Trust takes a lifetime to build - but can be lost at the blink of an eye</title><content type='html'>And - as Jerry Weinberg said - no one tells you when they have lost the trust in you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-8126335154639670849?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/8126335154639670849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=8126335154639670849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8126335154639670849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8126335154639670849'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-011-trust-takes-lifetime.html' title='Note to self 011 - Trust takes a lifetime to build - but can be lost at the blink of an eye'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-5974845528650009038</id><published>2011-01-13T21:51:00.002+01:00</published><updated>2011-01-25T09:36:26.601+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reference'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Note to self 010 - Parkinson's law strikes - again!</title><content type='html'>&lt;div&gt;&lt;/div&gt;&lt;div&gt;It may not sound very nice, but the sad fact is that people tend to use up the available time for a task in a lot of situations. Therefore: If you want to be over with the meeting in 30 minutes send out an invitation for only 30 minutes - if you make it 45 minutes in the invitation it will take 45 minutes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Parkinson's original quote from 1955 is:&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 13px; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); line-height: 19px; "&gt;&lt;dl style="margin-top: 0.2em; margin-bottom: 0.5em; "&gt;&lt;dd style="line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; "&gt;&lt;i&gt;Work expands so as to fill the time available for its completion.&lt;/i&gt;&lt;/dd&gt;&lt;div&gt;&lt;i&gt;see:&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Parkinson%27s_Law"&gt;&lt;a href="http://en.wikipedia.org/wiki/Parkinson%27s_Law"&gt;http://en.wikipedia.org/wiki/Parkinson%27s_Law&lt;/a&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;/dl&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-5974845528650009038?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/5974845528650009038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=5974845528650009038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5974845528650009038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5974845528650009038'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-010-parkinsons-law-strikes.html' title='Note to self 010 - Parkinson&apos;s law strikes - again!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-8871117576972708522</id><published>2011-01-13T21:42:00.000+01:00</published><updated>2011-01-25T09:37:57.415+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reference'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Note to self 009 - it's called Hanlon's razor</title><content type='html'>And it goes: Never attribute to malice that which is adequately explained by stupidity.&lt;p&gt;Although sometimes Heinlein&amp;#39;s Razor or Napoleon&amp;#39;s unnamed version of it seem more appropriate...&lt;p&gt;Heinlein&amp;#39;s razor:&lt;br&gt;    Never ascribe to malice that which is adequately explained by incompetence, but don&amp;#39;t rule out malice&lt;p&gt;Napoleon&amp;#39;s unnamed epigram:&lt;br&gt;     Never ascribe to malice that which is adequately explained by incompetence.&lt;p&gt;See &lt;a href="http://en.wikipedia.org/wiki/Hanlon&amp;#39;s_razor"&gt;http://en.wikipedia.org/wiki/Hanlon&amp;#39;s_razor&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-8871117576972708522?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/8871117576972708522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=8871117576972708522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8871117576972708522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8871117576972708522'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-009-its-called-hanlons.html' title='Note to self 009 - it&apos;s called Hanlon&apos;s razor'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-9136171740182129054</id><published>2011-01-13T21:30:00.000+01:00</published><updated>2011-01-25T09:34:36.812+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Note to self 008 - It's not "You are " it is "I observe "</title><content type='html'>Dear Michael, [talking to myself as usual] I noticed that you complain about incompetent people. When I hear that I tend to put you in the category &amp;quot;egomaniac&amp;quot;. What can we do about that?&lt;p&gt;Sounds much nicer than: &amp;quot;Michael, you are an egomaniac. I know that because you complain about incompetent people&amp;quot; doesn&amp;#39;t it?&lt;p&gt;Even if you&amp;#39;re convinced that the other Person (or team for that matter) is malicious, unhelpfull or in any other way &amp;quot;bad&amp;quot; remember that that&amp;#39;s just the way you perceive it. Talk about yourself - that is something you can be sure about and that can&amp;#39;t be argued away. [It is very hard to tell somebody &amp;quot;no, you do not feel that way&amp;quot; - although sometimes there are people who try.]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-9136171740182129054?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/9136171740182129054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=9136171740182129054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9136171740182129054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9136171740182129054'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-008-its-not-you-are-it-is.html' title='Note to self 008 - It&apos;s not &quot;You are &lt;whatever&gt;&quot; it is &quot;I observe &lt;whatever&gt;&quot;'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-6489683479351224582</id><published>2011-01-11T23:16:00.002+01:00</published><updated>2011-01-11T23:17:34.785+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Note to self 007 - I still can't handle incompetent people</title><content type='html'>&lt;div&gt;More a point I still have to work on than an actionable note to myself:&lt;/div&gt;&lt;div&gt;&lt;i&gt;Don't get overconfident.&lt;/i&gt; It's not enough that somebody is incompetent - you've got to be able to convince people of this seemingly obvious fact. If you can't pinpoint it - just let it go for the moment. Especially if you can't put a number to the incompetence.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a matter of fact this is something that I've never really gotten around to.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Explanation of the note for reader who are &lt;i&gt;not&lt;/i&gt;&amp;nbsp;myself]&amp;nbsp;&lt;/div&gt;&lt;div&gt;There is a certain kind of incompetent people&amp;nbsp;(e.g. they just have no expertise in the very thing they are doing, they are literally incompetent in such a way that they lack the competences that they need to perform their job)&amp;nbsp;that I still don't know how to handle - those that don't know the details of the job their doing but are yet well versed in easily graspable abstractions of the work they &lt;i&gt;should be doing&lt;/i&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;The only way to handle these people - who sometimes have a real bad effect on the morale of whole teams - seems to be a very detailed breakdown of their shortcoming. But that on the other hand leaves me in the position of a nitpicker [erbsenzähler] who wastes everybodys time - including my own - by going through seemingly unimportant details.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course - applying the rule of three - that can't be the &lt;i&gt;only&lt;/i&gt;&amp;nbsp;solution - but although I've been trying for years I haven't &amp;nbsp;been able to find any other angles. At leas not&amp;nbsp;up until now - still trying!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-6489683479351224582?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/6489683479351224582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=6489683479351224582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6489683479351224582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6489683479351224582'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/note-to-self-007-i-still-cant-handle.html' title='Note to self 007 - I still can&apos;t handle incompetent people'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4812640238521644955</id><published>2011-01-11T22:38:00.002+01:00</published><updated>2011-01-11T22:46:17.263+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='mbti'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Notes to self 006 - Be aware of the focus of the reciepient</title><content type='html'>In an oversimplified view there are generalists (often sporting an NT of NF in MBTI speak) and there are &amp;quot;detailists&amp;quot; (often sporting an SP or SJ in MBTI speak). &lt;br /&gt;You (I&amp;#39;m talking to myself here) are a NF generalist. If you want to convince an detailist you need to use arguments with lots of actionable detail - not the abstract mumbo jumbo you&amp;#39;re used to. &lt;p&gt;(Wish I had thought about that two weeks ago)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4812640238521644955?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4812640238521644955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4812640238521644955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4812640238521644955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4812640238521644955'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-006-be-aware-of-focus-of.html' title='Notes to self 006 - Be aware of the focus of the reciepient'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-6448786793201787929</id><published>2011-01-10T01:13:00.002+01:00</published><updated>2011-01-25T09:37:57.416+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='reference'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='negotiation'/><title type='text'>Notes to self - 005, Get it in writing - even if you have to put it there yourself</title><content type='html'>As I wrote a while back &lt;a href="http://agile-aspects.blogspot.com/2009/04/get-it-in-writing.html"&gt;it is always a good idea to get important agreements in writing&lt;/a&gt; - Today I just had to remind myself that - especially in these days of electronic communication - there is always the option to put it writing yourself. &lt;br /&gt;As a last resort - e.g. if an official protocol would be taken as an offense - I take the tangential approach as in "When we agreed on &lt;X&gt; we also mentioned &lt;Y&gt; - would it be OK for you to treat these separately?" thus getting a written - and circulated - record of &lt;X&gt; without offending my negotiation partner.&lt;br /&gt;I most cases though it should be quite OK just to communicate openly and agree on putting the agreements in writing just to make sure that there are no misunderstandings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-6448786793201787929?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/6448786793201787929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=6448786793201787929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6448786793201787929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6448786793201787929'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-005-get-it-in-writing.html' title='Notes to self - 005, Get it in writing - even if you have to put it there yourself'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-2738494121251994130</id><published>2011-01-05T18:00:00.005+01:00</published><updated>2011-01-05T19:33:37.111+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Notes to self - 004, Keep local backups - The Cloud might dissolve</title><content type='html'>Keep local backups - The Cloud (aka the web) might dissolve locally&lt;br /&gt;&lt;br /&gt;Just now a wiki that was on my list of important resources (the former wiki of the AYE conference) vanished with no clue about it's future.&lt;br /&gt;&lt;br /&gt;It not only sadden's me because &lt;a href="http://www.w3.org/Provider/Style/URI"&gt;Cool URIs don't change&lt;/a&gt; but also because there was a lot of content even at the simple members pages, that I didn't bother to make a copy of.  &lt;br /&gt;&lt;br /&gt;The saddest thing is that it would have been easy for me to make a local copy of the wiki - after all, that is what tools like &lt;a href="http://www.sitesucker.us/home.html"&gt;SiteSucker&lt;/a&gt; are for, right?&lt;br /&gt;&lt;br /&gt;I just have to use them more often...&lt;br /&gt;Therefore this very serious note to self: Keep local backups!&lt;br /&gt;&lt;br /&gt;====8&lt;------  End of Note to self &lt;br /&gt;&lt;br /&gt;Comment to self:&lt;br /&gt;Now the last resort for this case is &lt;a href="http://waybackmachine.org/"&gt;the Way Back Machine&lt;/a&gt;, but that of course doesn't always have snapshots that include all I want to retrieve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-2738494121251994130?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/2738494121251994130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=2738494121251994130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2738494121251994130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2738494121251994130'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-004-keep-local-backups.html' title='Notes to self - 004, Keep local backups - The Cloud might dissolve'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-8960028443762938736</id><published>2011-01-05T17:33:00.003+01:00</published><updated>2011-01-05T17:59:50.663+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Notes to self - 003, Write each email as if it will reach your worst enemy</title><content type='html'>=====8&lt;---------- Start of note-to-self 003, Write each email as if it will reach your worst enemy ----&lt;br /&gt;&lt;br /&gt;Write each email as if it will reach your worst enemy because the chances are - it will!&lt;br /&gt;&lt;br /&gt;Email might look like instant messaging or conventional mail - depending upon your background - but it isn't.&lt;br /&gt;&lt;br /&gt;While it's not very common for IMs to get copied and pasted (although it happens) and conventional mails are only forwarded for a fee it is common practice to just press "forward" on an email. Considering that you might want to re-consider the idea to vent in an e-mail like "Hey Adam, I can't get Bob to do [whatever] - he's just to stupid and ignorant. Please do something about it".&lt;br /&gt;Chances are that Adam just presses forward, adds "Bob, please do [whatever]!" and sends it directly to Bob.&lt;br /&gt;&lt;br /&gt;If Bob wasn't your worst enemy before he probably won't be after - but I think the chances are high that your relationship with Bob won't exactly get better after this exchange. &lt;br /&gt;&lt;br /&gt;As usual YMMV. I just had to remind myself about that yesterday. Again. (But at least I caught myself in time.)&lt;br /&gt;&lt;br /&gt;=====8&lt;---------- Start of note-to-self 003, Write each email as if it will reach your worst enemy ----&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-8960028443762938736?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/8960028443762938736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=8960028443762938736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8960028443762938736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8960028443762938736'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-003-write-each-email-as.html' title='Notes to self - 003, Write each email as if it will reach your worst enemy'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-9103039489159911146</id><published>2011-01-04T00:19:00.007+01:00</published><updated>2011-01-25T09:37:57.417+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facilitation'/><category scheme='http://www.blogger.com/atom/ns#' term='reference'/><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Notes to self - 002, Keep Records! Measurement &amp; Calculation beats guesswork</title><content type='html'>=====8&lt;---------- Start of note-to-self 002, Keep Records! Measurement &amp; calculation beats guesswork ----&lt;br /&gt;Sometimes I have to reminded myself to "eat my own dogfood" (or "take my own prescriptions")&lt;br /&gt;&lt;br /&gt;Why should I not apply the same principles to facilitation that I recommend for software development?&lt;br /&gt;&lt;strong&gt;Yesterday's Weather is perfectly applicable to meeting facilitation&lt;/strong&gt; - if you know your tasks.&lt;br /&gt;It's rather a high probability that the same task with the same amount of people in a retrospective (e.g. gathering data via a &lt;a href="http://www.futureworksconsulting.com/blog/2008/05/05/frim-redux/"&gt;FrIm Chart&lt;/a&gt;) will take more or less the same amount of time. &lt;br /&gt;So - to develop a plausible agenda - it's helpful to record the time each task took and the relevant circumstances (Time of day, number of participants etc.)&lt;br /&gt;Therefore: &lt;strong&gt;&lt;em&gt;Keep Records!&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;In the case of retrospectives you get a very sound foundation base your planning on data instead of guesswork very quickly. I'd say 3 Iterations should gauge your instruments [for that team] pretty precisely.   &lt;br /&gt;&lt;br /&gt;=====8&lt;---------- Start of note-to-self 002, Keep Records! Measurement &amp; Calculation beats guesswork ----&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-9103039489159911146?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/9103039489159911146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=9103039489159911146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9103039489159911146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/9103039489159911146'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-002-keep-records.html' title='Notes to self - 002, Keep Records! Measurement &amp; Calculation beats guesswork'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1004613902897335458</id><published>2011-01-02T21:30:00.009+01:00</published><updated>2011-01-02T22:44:57.279+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes-to-self'/><title type='text'>Notes to self - 001, Always put up a visible agenda</title><content type='html'>Each working day I learn something new - or relearn something old. &lt;br /&gt;&lt;br /&gt;=====8&lt;----------  Start of note-to-self 001, Always put up a visible agenda ----&lt;br /&gt;&lt;br /&gt;Today I recalled a lesson from AYE - When facilitating a meeting with different personality types it helps everybody to set up a visible agenda and adhere to it - as log as it leaves enough room for deviation.&lt;br /&gt;&lt;br /&gt;Some people need a clear picture of where the discussion is going while others are comfortable by "going with the flow". While it doesn't do harm for the latter if you put up an agenda - as long as the topics are liberal enough - it enables those who are in favor of the clear picture to focus on the topic at hand without worrying to much about what might come next.&lt;br /&gt;&lt;br /&gt;The fact that the agenda might be helpful for the facilitator as well might be noteworthy as well - for example as a tool to direct the focus or as a tool to postpone the discussion to a later topic. Mixes well with a 'parking lot' to keep track of topics/issues to cover. But of course &lt;a href="http://en.wiktionary.org/wiki/YMMV"&gt;YMMV&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[And of course "Always" should always be used with caution - in this case it is&lt;br /&gt;meant to be read as "Whenever it is applicable, use common sense"]&lt;br /&gt;&lt;br /&gt;=====8&lt;----------  End of note-to-self 001, Always put up a visible agenda ----&lt;br /&gt;&lt;br /&gt;What are these notes-to-self?&lt;br /&gt;&lt;br /&gt;As Alan Weiß' calculation "if one improves 1 percent a day, one will be twice as 'good' in 70 days" shows the possibilities for self improvement are enourmous. (according to Kn = K0 * (1 + (p/100))^n =&gt; 1 * ( 1 + (1/100))^70 =&gt; 1.01 ^ 70 =&gt; 2.00&lt;span style="font-weight:bold;"&gt;67633...&lt;/span&gt; it is even a little bit more...)&lt;br /&gt;&lt;br /&gt;But in my experience that math doesn't compute - or at least not for me.&lt;br /&gt;Although I &lt;span style="font-style:italic;"&gt;do&lt;/span&gt; work on getting better every day there also is a constant loss going on with me. I forget things, I don't apply learnings to new situations, I fail in the application some piece of knowledge that I posses and so on.&lt;br /&gt;&lt;br /&gt;When (and if) I realize these events I have a chance to get my 1 percent for that day. (Nah - not really - make it 0.1%)&lt;br /&gt;&lt;br /&gt;Up until now I tried to make a "mental note" of these learnings - both old and new. But after only one year it's hard for me to go over 365 &lt;span style="font-style:italic;"&gt;purely &lt;/span&gt;mental notes, so I thought I should explicitly put them somewhere.&lt;br /&gt;&lt;br /&gt;Starting today I'll try to pick the most important one of these aha-effects for each working day (no correlation to business days - I work freelancing) and put it down here. Each note-to-self will consist of the note itself plus a short explanation of it's meaning and context, as can be seen above in the first one. &lt;br /&gt; &lt;br /&gt;Topics might be from a very wide range - don't expect notes on CxO level if I spent the day knee deep in code. I guess I'll cover: &lt;ul&gt;&lt;br /&gt;&lt;li&gt;very low level (like: Note to self: ci&lt;paren&gt; in vim is important or Note to self: make sure you're laptop is in powersave if you give a presentation in an hour)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;development related (like: rvm helps with the descendants of the dll hell)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;coaching related (Note to self: What looks like resistance is often lack of safety)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Facilitation related (see above)&lt;/li&gt;&lt;br /&gt;Or something that I haven't yet thought of.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1004613902897335458?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1004613902897335458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1004613902897335458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1004613902897335458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1004613902897335458'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2011/01/notes-to-self-001-always-put-up-visible.html' title='Notes to self - 001, Always put up a visible agenda'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4314540141087087645</id><published>2010-06-24T23:29:00.002+02:00</published><updated>2010-06-24T23:33:21.220+02:00</updated><title type='text'>Estimate - 'an' or 'to'?</title><content type='html'>A couple of days ago I got into quite an interesting discussion [cited below] with David J. Anderson (http://www.agilemanagement.net) on Twitter about the need (or not) of estimates in Kanban. &lt;br /&gt;From what I learned 'estimate' has quite a different notion in my book than in his. Considering the fact that with me 'in my book' is only a &lt;a href="http://www.usingenglish.com/reference/idioms/in+my+book.html"&gt;manner of speaking&lt;/a&gt; while David actually 'wrote the book' (&lt;a href="http://agilemanagement.net/index.php/kanbanbook/"&gt;on Kanban in software development that is&lt;/a&gt;) I thought it would be a good idea to question our differences a little more thoroughly.&lt;br /&gt;The initial difference is the statement, that in Kanban there are no estimates (missing source, perhaps misquoted) while on the other hand (as Olaf Lewitz noted [see below]) in the definition of service classes (on pg. 131 to be exact) David states "No estimation is performed..." but "Standard class items may be analyzed for size. Large items may be broken down into smaller items.".&lt;br /&gt;&lt;br /&gt;Two things are notable here for me - the first one is, that I filtered out the second half of the first sentence. What he really says is "No estimation is performed &lt;span style="font-weight:bold;"&gt;to determine a level of effort or flow time&lt;/span&gt;." &lt;br /&gt;The second one is my reaction to the idea of "No estimation but analysis".&lt;br /&gt;For me it is very important to tell people, that you don't have to know the exact size/effort/duration of a task but that it's OK to estimate. So the point for me is 'to estimate' is important to get over the negotiation phase and to avoid getting stuck in analysis paralysis. From what I read from one of Davids tweets I gather that for him it's important that the analysis of a class item should not contain any assumptions about how long it will take and when the item could/should be delivered. (On the other hand I could off course also have a complete misunderstanding of his intentions...)&lt;br /&gt;So now it seems:&lt;br /&gt;'to estimate' =&gt; good from my point of view because it frees from BDUF risk&lt;br /&gt;'an estimate' =&gt; not so good from Davids point of view because it implies known effort and delivery date&lt;br /&gt;&lt;br /&gt;But on a related note David wrote:&lt;br /&gt;"so in general i believe in analysis to break things down to identifiable size/complexity but not in estimation"&lt;br /&gt;&lt;br /&gt;As much as I can relate to that point of view I still have a great problem with the wording because ever so often when some (not all) developers hear/read that they don't have to estimate any longer if method/process &lt;x&gt; is applied they interpret that as 'now I can just code and don't have to make any commitments beforehand'.&lt;br /&gt;&lt;br /&gt;So, even when applying Kanban I would still like my teams to have the freedom to give estimates on item sizes - especially on big ones. And even on small item I would alway want a way to include a "give or take" to any number that's being passed around. And for me this leeway is what differentiates an analysis based on exact calculations from a plan that is based on estimations.&lt;br /&gt;&lt;br /&gt;So David, should you read this (as I hope you will) - is our difference just a question of wording (English is still a foreign language to me) or is there really a fundamental difference in our position?&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Just for the record: the original Twitter threads:&lt;br /&gt;Thread 1:&lt;br /&gt; (ended at msg. id:16427657813)&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@MMahlberg "'too large' is an estimate" only in the most degenerate of senses. It is not something you can plan or commit from&lt;br /&gt;&lt;br /&gt;MMahlberg says:&lt;br /&gt;@agilemanager analysis!=estimation: ok, estimation!=decomposition: ok, but decomposition involves estimation (e.g. 'too large' is estimate)&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@MMahlberg for me estimation involves a time and a delivery date. it's not decomposition. analysis is not estimation&lt;br /&gt;&lt;br /&gt;MMahlberg says:&lt;br /&gt;@agilemanager @OlafLewitz I'm puzzled: p131…items may be analzd 4 size/lrg items may be broken down. Like estimation fwik. Pointers 2 diff?&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@OlafLewitz no! I do not consider analysis or work type identification as estimation but can see how you could argue that is is&lt;br /&gt;&lt;br /&gt;OlafLewitz says:&lt;br /&gt;#Kanban detail question (@agilemanager), p.131, Standard class policies: No estimation, but analyse by size. Isn't that the same thing?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thread 2:&lt;br /&gt;(ended at msg. id: 16426940354)&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@MMahlberg so in general i believe in analysis to break things down to identifiable size/complexity but not in estimation. is this clearer?&lt;br /&gt;&lt;br /&gt;MMahlberg says:&lt;br /&gt;@agilemanager agreed: UML != estimation (notation/language vs. activity)&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@MMahlberg for example you would never describe UML as an estimation technique&lt;br /&gt;&lt;br /&gt;MMahlberg says:&lt;br /&gt;@agilemanager @OlafLewitz I'm puzzled: p131…items may be analzd 4 size/lrg items may be broken down. Like estimation fwik. Pointers 2 diff?&lt;br /&gt;&lt;br /&gt;agilemanager says:&lt;br /&gt;@OlafLewitz no! I do not consider analysis or work type identification as estimation but can see how you could argue that is is&lt;br /&gt;&lt;br /&gt;OlafLewitz says:&lt;br /&gt;#Kanban detail question (@agilemanager), p.131, Standard class policies: No estimation, but analyse by size. Isn't that the same thing?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4314540141087087645?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4314540141087087645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4314540141087087645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4314540141087087645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4314540141087087645'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2010/06/estimate-or-to.html' title='Estimate - &apos;an&apos; or &apos;to&apos;?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-5809684138475640940</id><published>2009-09-30T09:15:00.002+02:00</published><updated>2009-09-30T09:30:37.603+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>Is emergent design possible? (I think it is!)</title><content type='html'>Just the other day I had a discussion with a really experienced lead developer about the feasibility of the no-big-design-up-front-approach and the necessary circumstances to make emergent design work.&lt;div&gt;Along comes these series of articles from Abby Fichtner that I stumbled upon last night.&lt;/div&gt;&lt;div&gt;And although there's more to emergent design than Bob Martins SOLID principles I think these articles make an excellent starting point for a deeper discussion of the subject.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/05/solid-code-with-emergent-design-part-1.html"&gt;SOLID Code with Emergent Design - Part 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/05/solid-code-with-emergent-design-part-1.html"&gt;&lt;/a&gt;&lt;a href="http://www.thehackerchickblog.com/2008/05/solid-code-with-emergent-design-gimme-s.html"&gt;SOLID Code with Emergent Design - Gimme an S&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/05/solid-code-with-emergent-design-ohhhh.html"&gt;SOLID Code with Emergent Design - O, I get it&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/05/solid-code-with-emergent-design-l.html"&gt;SOLID Code with Emergent Design - The L&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/06/solid-code-with-emergent-design-other.html"&gt;SOLID Code with Emergent Design - The Other ISP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thehackerchickblog.com/2008/06/solid-code-with-emergent-design-final.html"&gt;SOLID Code with Emergent Design - The Final Chapter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Cheerio&lt;/div&gt;&lt;div&gt;  &lt;i&gt;MM&lt;/i&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-5809684138475640940?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/5809684138475640940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=5809684138475640940' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5809684138475640940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5809684138475640940'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2009/09/is-emergent-design-possible-i-think-it.html' title='Is emergent design possible? (I think it is!)'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3114167188871080187</id><published>2009-09-20T15:03:00.003+02:00</published><updated>2009-09-20T15:23:15.444+02:00</updated><title type='text'>Something completely different - Software I'd really love to buy...</title><content type='html'>...if it only existed...&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Mac mandatory of course)&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;A word processor that &lt;i&gt;really&lt;/i&gt; separates style and content - and still has a wysiwyg interface.&lt;/li&gt;&lt;li&gt;A content managements system that does the same - minus the wysiwyg and plus a clear separation between content management (code) and delivery (from a pure static server, as they are available as commodity nowadays)&lt;/li&gt;&lt;li&gt;Access done right -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;For the Mac&lt;/li&gt;&lt;li&gt;For different backends (mySQL, posgreSQL, SQLite, ...)&lt;/li&gt;&lt;li&gt;Less Wizards - more ER-Modelling&lt;/li&gt;&lt;li&gt;Keep the grid view, the forms and (especially) the reports &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;A stand-alone, sql-based, cross report generator with pdf (and perhaps rtf) as target format&lt;/li&gt;&lt;li&gt;A format translator for Text-Files for all the different formats people want out there. Just feed in the Markdown, MultiMarkdown or Asciidoc Styles on one side, match them up with the respective publishers Word, LaTex or openOffice styles and ... presto - your final draft comes out&lt;/li&gt;&lt;/ul&gt; ... wanted to do all of these myself ... never found the time (of course) ... so, if anybody out there is just looking for a cool idea for her next project - feel free to implement any or all of the above...&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Cheerio&lt;/div&gt;&lt;div&gt;  Michael&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh, and BTW: I'd volunteer as beta tester...&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3114167188871080187?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3114167188871080187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3114167188871080187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3114167188871080187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3114167188871080187'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2009/09/something-completely-different-software.html' title='Something completely different - Software I&apos;d really love to buy...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3125134200207134523</id><published>2009-08-23T14:27:00.006+02:00</published><updated>2009-08-23T18:13:58.329+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>How many Backlogs do you need?</title><content type='html'>&lt;p&gt;Hmm... there used to be two backlogs in scrum IIRC:&lt;br /&gt; the &lt;em&gt;product backlog&lt;/em&gt;, owned by the Product Owner and the &lt;em&gt;sprint backlog&lt;/em&gt; owned by the team.&lt;/p&gt;&lt;p&gt;Nowadays, scanning through contemporary tweets and blog entries, there are at least (in various amounts) &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Product Backlog&lt;/li&gt;&lt;li&gt;Sprint Backlog&lt;/li&gt;&lt;li&gt;Impediment Backlog&lt;/li&gt;&lt;li&gt;Technical Debt Backlog&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So I wondered: Do we really need them? &lt;br /&gt;Right now my answer would be "Yes" and actually I think most of us use them already - albeit more or less secluded. &lt;/p&gt;&lt;p&gt;Of course the Product Backlog and the Sprint Backlog are completely visible all the time. &lt;/p&gt;&lt;p&gt;The Impediment Backlog and the Technical Debt Backlog OTOH are not quite as popular - mostly because we "should not have them" in the first place. If all "impediments are resolved within 24 hours" and "technical debt is paid back before a task is completed (aka Done)" and we "leave everything cleaner than we found it" both "Backlogs" are more like personal lists with a lifespan of less than a day.&lt;/p&gt;&lt;p&gt;Unfortunately reality is slightly different in lots of places and so we should recognize this fact and install corresponding backlogs with a fitting set of attributes.&lt;/p&gt;&lt;p&gt;So, what could these attributes be? &lt;/p&gt;&lt;h4&gt;For the Impediment Backlog I'll try:&lt;/h4&gt;&lt;p&gt;The usual stuff:   &lt;/p&gt;&lt;ul&gt;&lt;li&gt;ID (Yes, I need an ID - but YMMV )&lt;/li&gt;&lt;li&gt;Synopsis (An understandable but &lt;em&gt;very&lt;/em&gt; short description of the impediment that can be scribbled during the standup meeting ) &lt;/li&gt;&lt;li&gt;Description (A longer description, that explains the impediment to the non-initiated) &lt;/li&gt;&lt;li&gt;Date created (well...)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The specific stuff for the impediment backlog: &lt;br /&gt;(All of these should be considered optional and used as growing lists - just to make sure the impediment gets the attention it deserves)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Number of Mentions (A counter - implemented e.g. as a tally chart on index cards - to determine if the impediment is really such an impediment as it first seemed)&lt;/li&gt;&lt;li&gt;People affected&lt;/li&gt;&lt;li&gt;Tasks affected&lt;/li&gt;&lt;li&gt;Stories affected&lt;/li&gt;&lt;li&gt;area(s) affected (e.g. Specs, Tests, Coding, Deployment, Design etc.)&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;For the Technical Debt Backlog I'll go with…&lt;/h4&gt;&lt;p&gt;The usual stuff (what did you expect?):   &lt;/p&gt;&lt;ul&gt;&lt;li&gt;ID (Yes, I still need an ID - but YMMV still )&lt;/li&gt;&lt;li&gt;Synopsis (An understandable but &lt;em&gt;very&lt;/em&gt; short description of the dept imposed than can be scribbled during coding or the standup meeting without much of an interruption) &lt;/li&gt;&lt;li&gt;Description (A longer description, that explains the debt and its effects to the non-initiated, probably written later) &lt;/li&gt;&lt;li&gt;Date created (well...)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The specific stuff for the technical debt backlog: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Area affected (e.g. Architecture, Design, Delivery, Deployment, Stability etc.)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Hmm.. that's not so much - I wonder if the list will grow over time. &lt;br /&gt;I'd expect some of the TDB (technical debt backlog) to turn into tasks eventually, but they might also vanish simply because of DoD (definition of done), "no broken windows", "leave everything cleaner than we found it" and other related practices. &lt;br /&gt;I wonder if it would be possible to derive the interest rate of technical debt... but that's quite another story.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3125134200207134523?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3125134200207134523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3125134200207134523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3125134200207134523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3125134200207134523'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2009/08/how-many-backlogs-do-you-need.html' title='How many Backlogs do you need?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3678928056557299426</id><published>2009-08-05T22:16:00.004+02:00</published><updated>2009-08-05T22:22:36.505+02:00</updated><title type='text'>Continuous integration in the German blog</title><content type='html'>Did I mention my new article on continuous integration in the german blog?&lt;br /&gt;&lt;br /&gt;You can find it at &lt;a href="http://shu-ha-ri.blogspot.com/2009/07/contious-integration-permanente.html"&gt;shu-ha-ri&lt;/a&gt; (never mind the typo in the url - I somehow lost a n and an u when entering the title and since &lt;a href="http://www.w3.org/Provider/Style/URI"&gt;cool uris don't change - according to w3c -&lt;/a&gt; I decided to keep it like that for now)&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;  Michael&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3678928056557299426?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://shu-ha-ri.blogspot.com/2009/07/contious-integration-permanente.html' title='Continuous integration in the German blog'/><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3678928056557299426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3678928056557299426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3678928056557299426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3678928056557299426'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2009/08/continuous-integration-in-german-blog.html' title='Continuous integration in the German blog'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4544415852230109691</id><published>2009-04-02T17:30:00.004+02:00</published><updated>2009-04-02T18:02:55.686+02:00</updated><title type='text'>Get it in writing</title><content type='html'>&lt;p&gt;I repeat this lecture ever so often.&lt;br /&gt;Whenever possible &lt;span style="font-weight:bold;"&gt;"Get It in Writing"&lt;/span&gt; - not only to have proof of agreements but even more to make sure that both parties have the same understanding of them.&lt;br /&gt; And sometimes it also provedes the means to make sure that you and the person you're talking with have the same understanding of implicit assumptions.&lt;br /&gt;The most compelling story to back this was told to by a tour guide in New York when we drove along 42nd street.&lt;/p&gt;&lt;p&gt;When William Van Alen was hired to construct New York's Chrysler Building he was so sure of himself - the tour guide told us - and so well versed in the trades of the craft that he didn't bother to get a written contract. After all 5% of the buildings overall building cost was a well established fee in the market&lt;br /&gt;After the building was completed - beating the Bank of Manhattan in the race for tallest building of the world - Chrysler refused to pay Van Alen with words like: "We don't have a contract. You should take more care to always &lt;span style="font-weight:bold;"&gt;get it in writing&lt;/span&gt;". Of course I don't know if this is a true story or not, but at least it serves well to remind me of my own advice. &lt;/p&gt;&lt;p&gt;OTOH it's hard to capture everything beforehand and some thing are so engrained into our perception of the world that I also tend to put more trust in the co-operation than I should.&lt;/p&gt; &lt;br /&gt;Cheers&lt;br /&gt;  _MM_&lt;br /&gt;(BTW: The story itself is of course backed - at least somehow, although with slightly different numbers - by wikipedia in the last paragraph about &lt;a href="http://en.wikipedia.org/wiki/William_Van_Alen#Life"&gt;William Van Alen's Life&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4544415852230109691?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4544415852230109691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4544415852230109691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4544415852230109691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4544415852230109691'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2009/04/get-it-in-writing.html' title='Get it in writing'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4007544037480082364</id><published>2008-09-29T23:58:00.011+02:00</published><updated>2010-01-12T19:30:25.095+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scm'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>scm &amp; build: Levels of configuration</title><content type='html'>Here's the first little part of the (to be - or not -) series on configuration management and build management.&lt;br /&gt;&lt;br /&gt;Although I wanted to start with some clarification on "Task level commits" I actually concentrated on different levels of configuration in a build environment. Here we go...&lt;br /&gt;&lt;h2&gt;The levels of configuration&lt;/h2&gt;One of the biggest differentiators between a one-man-show and a team-effort-project are the different levels of configuration that have to be managed – and this is also a point where the quality of the whole build process can be heavily influenced.&lt;br /&gt;&lt;br /&gt;Basically – unless the application-to-be is monolithic – there are four levels of abstraction: Machine dependent, user dependent, purpose dependent and (last but not least) project specific configurations. Each of this has to be managed separately and consciously to avoid (to much) manual intervention. Talking about indirection let me cite (once again) David Wheeler to whom the phrase “Any problem in computer science can be solved with another layer of indirection. ” is attributed. As he stated in the second part – which is often omitted – “[But] this usually leads to another problem” so let's have a look at the relative pros and cons of this fine distinction. To start of lets examine each level a bit closer.&lt;br /&gt;&lt;h2&gt;Remarks:&lt;/h2&gt;By the way: Of course there are at least two Dimensions involved in this topic as well: run-time configuration and build time configuration. For the sake of this argument I'll postpone this discussion towards the [[build]] topic.&lt;br /&gt;&lt;h2&gt;Purpose dependent configuration&lt;/h2&gt;Let's start with the purpose dependent configuration since this is a concern covered in most modern environments. The purpose I'm talking about is also known as build type or target environment or something similar to that. Typical purposes are “Test”, “Debug”, “Release” or – a bit less frequent – “Integration”. Depending on the purpose of the build there usually are a number of things that differ. For “Test” there might be some hard-wired shortcut to circumvent server-roundtrips or a “don't really send to printer”-entry or some other special behaviour that is meant to make testing easier (or even possible) without imposing side-effects on already installed systems. If you're building for “Debug” – one of the most commonly differentiated purposes – you'll certainly want to include debug information into your code, something you probably don't want to ship (although that could be disputed, but that is another story). “Release” of course is the purpose with which you build the shippable product once all test and QA-work has been done. The necessity of an “Integration” purpose arises only in projects where you need to integrate several sub-products and usually has rather project-specific configuration needs.&lt;br /&gt;&lt;br /&gt;And of course there are some things (e.g. logging) that need to be configured differently for &lt;em&gt;each&lt;/em&gt; of these levels. But speaking of logging we encounter another type of configuration that should not be mixed with the purpose specific configuration: the project specific configuration of components. While I'll go deeper into those in the next paragraph, the important part with respect to things like logging is to be aware of the fact that some thing have both – a project specific configuration &lt;em&gt;and&lt;/em&gt; a purpose specific one. Trying to manage both in the same way can create real nightmares (I guess, everybody who has tried to keep Log4J configuration files useful for an extended period of time without that conceptual distinction knows what I'm talking about)&lt;br /&gt;&lt;h2&gt;Project specific configuration&lt;/h2&gt;This usually is the first configuration option you come across. Almost any project nowadays uses some reusable libraries. Those of course have to be adapted to the specific needs of the project and thus the first level of configuration indirection comes into existence.&lt;br /&gt;&lt;br /&gt;Although these configurations are applicable on many levels – from configuration information specifying a windows' layout to the much mentioned log-file configurations – at least they have a clear association. They are “just another kind of source code” and thus relatively easy to handle.&lt;br /&gt;&lt;h2&gt;Machine dependent configuration&lt;/h2&gt;This one strikes as soon as there is even one more developer! The path which used to point at /usr/bin has to point to /usr/local/bin, the drive for intermediates that used to be C: has to be E: and the monitor resolution goes from 1024x768 to 1600x1050. Consequently some things have to be configured somehow – and here we definitely need a distinction between build-time and run-time.&lt;br /&gt;&lt;h2&gt;User dependent configuration&lt;/h2&gt;The distinction between user dependent configuration and machine dependent configuration is a bit hard to make in a time where the correlation of people:machine moved from n:1 to 1:n. But even now – where lot's of people have more than one computer the real relationship is more like n:m since some computers are still shared. Especially build and integration machines are prone to sharing.  Now, even on the same machine, the configuration might differ in paths, desired screen resolutions and mounted network shares, so there is basically the same set of configuration information as there is in the machine dependent part, but it needs to be managed in a separate space.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;To summarize: We have the purpose specific configuration which is a central [[build]] topic, the project dependent configuration that correlates to source code, the machine dependent configuration that correlates to hardware configuration management, and the user specific configuration that somehow correlates to profile information. All of these should have traceable connections to identify possible configuration errors.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;After I have raised all these questions of course I should also answer them – I'll do so some time in the future and will provide a follow-up link in this post...&lt;br /&gt;&lt;br /&gt;I think that even the concept to have different levels of configuration enables people to create more stable build environments.&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;em&gt;_MM_&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4007544037480082364?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4007544037480082364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4007544037480082364' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4007544037480082364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4007544037480082364'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2008/09/scm-build-levels-of-configuration.html' title='scm &amp; build: Levels of configuration'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3235486135139644641</id><published>2008-09-18T10:28:00.002+02:00</published><updated>2008-09-18T10:37:44.997+02:00</updated><title type='text'>Best Practices - like everybody does it?</title><content type='html'>In a recent &lt;a href="http://dilbert.com/strips/comic/2008-09-03/"&gt;Dilbert comic strip&lt;/a&gt; the much cited protagonist replies to his boss: &lt;em&gt;&lt;bold&gt;"If everybody is doing it, Best Practices is the same thing as mediocre"&lt;/bold&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Made me think...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;_MM_&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3235486135139644641?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dilbert.com/strips/comic/2008-09-03/' title='Best Practices - like everybody does it?'/><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3235486135139644641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3235486135139644641' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3235486135139644641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3235486135139644641'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2008/09/best-practices-like-everybody-does-it.html' title='Best Practices - like everybody does it?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-2815546746033519162</id><published>2008-09-15T12:03:00.006+02:00</published><updated>2008-09-15T13:08:32.833+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Build-, Version-, Configuration- and Sourcecodemanagement,</title><content type='html'>Lately I found myself talking about buildmanagement and configuration management a lot. And since this blog lies deserted in the wild anyway I think this is the perfect place to ramble about that stuff so I can point other at some more ressources than I can right now. (And of course other can point me to my own ramblings if I get lost in the discussion)&lt;br /&gt;&lt;br /&gt;Topics I’d like to discuss (although this probably wont ever come to an end) include simple, practical, down to earth things like&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The simplest way to set up svn to work with xcode for a small workgroup&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to set up (any) DVCS for XCode&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How does SCM-integration work in XCode&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;but also things that seem to be intuitive to some but controversial to others&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Command line builds&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To branch or not to branch&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;and more conceptual topics (the most important to me) as&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Releases, Versions, Variants and other “Numbers”&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What is Multi-Dimensional SCM&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Staging and promoting &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Stay tuned for the first episode in about a week (and nudge me if I havent published it in two weeks!)&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;_MM_&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-2815546746033519162?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/2815546746033519162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=2815546746033519162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2815546746033519162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2815546746033519162'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2008/09/build-version-configuration-and.html' title='Build-, Version-, Configuration- and Sourcecodemanagement,'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-5958659240251256739</id><published>2008-06-08T00:42:00.003+02:00</published><updated>2008-06-08T01:06:25.144+02:00</updated><title type='text'>Strange ordering...</title><content type='html'>Strange - a few days ago I finally edited and released an entry from about a year ago - it still shows up in the old position. &lt;div&gt;So - just to make it evident that I'm writing a little more again - I wrote this entry. The post in question was about the simple but disputable question "&lt;span class="Apple-style-span"  style="color: rgb(27, 27, 27);"&gt;&lt;a href="http://agile-aspects.blogspot.com/2007/06/are-technical-topics-no-business-topics.html"&gt;Are technical topics no business topics?&lt;/a&gt;"&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-5958659240251256739?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/5958659240251256739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=5958659240251256739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5958659240251256739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/5958659240251256739'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2008/06/strage-ordering.html' title='Strange ordering...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-6250751160620049387</id><published>2007-09-06T13:19:00.000+02:00</published><updated>2007-09-06T13:31:04.751+02:00</updated><title type='text'>Agile discussed by Jerry Weinberg</title><content type='html'>In an &lt;a href="http://www.pmboulevard.com/Default.aspx?page=View%20Content&amp;cid=2369&amp;amp;parent=5970"&gt;interview&lt;/a&gt; with PMBoulevard &lt;a href="http://www.geraldmweinberg.com/"&gt;Gerald M. Weinberg&lt;/a&gt; states his opinion on agile Methods.&lt;br /&gt;&lt;br /&gt;From that interview:&lt;br /&gt;&lt;blockquote&gt;Q4: What is the future of Agile?&lt;br /&gt;First we will drop the capital A. Then we will drop the term "agile" altogether. Agile methods will be successful if and when we stop seeing them as anything other than normal, sensible, professional methods of developing software.&lt;/blockquote&gt;&lt;br /&gt;That even someone as renowned in the field of "conventional" software development as Jerry Weinberg points to the common sense embodied in these methods makes me hope that someday the waterfall-style methods might vanish alltogether.&lt;br /&gt;(via &lt;a href="http://secretsofconsulting.blogspot.com/2007/09/introducing-new-technology-agile.html"&gt;Jerry&lt;/a&gt; – of course)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-6250751160620049387?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.pmboulevard.com/Default.aspx?page=View%20Content&amp;cid=2369&amp;parent=5970' title='Agile discussed by Jerry Weinberg'/><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/6250751160620049387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=6250751160620049387' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6250751160620049387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6250751160620049387'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/09/agile-discussed-by-jerry-weinberg.html' title='Agile discussed by Jerry Weinberg'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-4082685330117163342</id><published>2007-08-25T15:10:00.000+02:00</published><updated>2007-08-27T19:12:47.231+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='webservices'/><title type='text'>Divas and Geniuses</title><content type='html'>&lt;p&gt;In a &lt;a href="http://www.jroller.com/MasterMark/entry/software_is_not_made_of"&gt;blog entry&lt;/a&gt; from the start of the week &lt;a href="http://www.jroller.com/MasterMark"&gt;Mark Masterson&lt;/a&gt; cited from the lessons learned document of a past project:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;"Change the design / architecture to reduce reliance on the divas"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That reminds me of a former client of mine who used to say &lt;blockquote&gt;"If you've got a genius in the team - get rid of him"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;At first that's rather sad, but after a while - and with changing responsibilities - I came to realise that there can be situations (actually lots of them) where the advise is absolutely sensible.&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It can be sensible &lt;strong&gt;because most developers are of average capabilities!&lt;/strong&gt;&lt;br /&gt;After all - &lt;em&gt;that is exactly what average means.&lt;/em&gt;&lt;br /&gt;Therefore the probability to have "above average" developers declines with the size of the project (and the organisation) simply because of the definition of average.&lt;br /&gt;Even if all (or at least almost all) the developers in a certain team are "above average" (e.g. compared to some outside group of reference developers) most of them will - by definition - be of average skill &lt;em&gt;within the team&lt;/em&gt;. That's where the "get rid of the genius" sets in.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If one of the persons on the team is way ahead of all the others - lets say she is a specialist in compiler construction - their advantage can become a disadvantage for the team as a whole. For those "geniuses" &lt;a href="http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html"&gt;TSTTMPW&lt;/a&gt; (The Simplest Thing That Might Possibly Work) probably is quite different from the things the rest of the team perceives as "simple".&lt;br /&gt;&lt;br /&gt;Configuration files are a good example - while plain text with very little syntax is the "simple" thing for most of us a specialist in compiler construction wouldn't mind using a sytax that is "syntactically a little richer" to gain simpler implementation. He might end up with a configuration language like sudoers' - where guides to the grammar (defined in EBNF) and the grammar's grammar are provided in the manual pages just to give the average user a chance to understand sodoers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Actually I worked on a compiler project myself way back in the 80ies and used to be kind of fluent in BNF, but figuring out sudoers still took me a while. And judging by the amount of&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;username&amp;gt; ALL=(ALL) ALL &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;small&gt;(basically: allow &amp;lt;username&amp;gt; to do everything he wants as root)&lt;/small&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;that I've seen on other peoples Macs not many of them go to great depth deciphering the format...&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Back to projects: Of course the idea to get rid of every smart person in the team would &lt;strong&gt;not&lt;/strong&gt; be the best option - unless you want the project to fail.&lt;br /&gt;&lt;br /&gt;But the "geniuses" - or, to be fair: those who have advanced knowledge and/or experience &lt;em&gt;compared to the rest of the team&lt;/em&gt; - have to be handled carefully. Only for very isolated tasks they should be left to work it out all alone.&lt;br /&gt;&lt;br /&gt;For the rest of their work they ought to work closely together with other team members as long as their personality allows them to adopt their ideas to a level thats appropriate for the whole team. Should the latter not be an option then option one is valid again of course - the team should get rid of 'em.&lt;br /&gt;&lt;br /&gt;But in my experience that is seldom necessary  Most geniuses are quite willing to agree on a sensible level of "simple" as long as their is a sensible discussion.&lt;br /&gt;&lt;br /&gt;So after all it no so sad anymore. The bottom line of my job is not to get the "best" possible solution but to make the team &lt;strong&gt;as a whole&lt;/strong&gt; as effective as possible&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;_MM_&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-4082685330117163342?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/4082685330117163342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=4082685330117163342' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4082685330117163342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/4082685330117163342'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/08/divas-and-geniuses.html' title='Divas and Geniuses'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-2163644820454276959</id><published>2007-08-19T12:17:00.000+02:00</published><updated>2007-08-19T12:27:10.408+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>Contracting Principles by Gerald Weinberg</title><content type='html'>I may not agree with &lt;em&gt;everything&lt;/em&gt; he said, but the principles lined out by Jerry in his post on &lt;a href="http://secretsofconsulting.blogspot.com/2007/07/working-conditions-that-prevent.html"&gt;how to prevent consulting misery&lt;/a&gt; are a good starting point for everybody who is trying to figure out how to shape their relationships with their clients in a healthy way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-2163644820454276959?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://secretsofconsulting.blogspot.com/2007/07/working-conditions-that-prevent.html' title='Contracting Principles by Gerald Weinberg'/><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/2163644820454276959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=2163644820454276959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2163644820454276959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/2163644820454276959'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/08/contracting-principles-by-gerald.html' title='Contracting Principles by Gerald Weinberg'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-6465093880505058061</id><published>2007-07-16T23:11:00.000+02:00</published><updated>2007-07-16T23:20:08.731+02:00</updated><title type='text'>New Blog in Town</title><content type='html'>Since not all the things I want to talk about are really that relevant to an international audienc I just started &lt;a href="http://shu-ha-ri.blogspot.com/"&gt;another blog&lt;/a&gt; for the local topics.&lt;br /&gt;&lt;br /&gt;...ups wrong link at first - sorry ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-6465093880505058061?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/6465093880505058061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=6465093880505058061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6465093880505058061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/6465093880505058061'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/07/new-blog-in-town.html' title='New Blog in Town'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-8136490545296093351</id><published>2007-07-06T20:40:00.000+02:00</published><updated>2007-07-07T23:56:26.955+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>From Cavedrawings to Hyroglyphs to Times New Roman - and back to Cavedrawings.</title><content type='html'>Sometimes I don't understand our business...&lt;br /&gt;Just recently I listened to an interview with Grady Booch where he (once again) emphasized that he never intended the UML to be used for programming (i.e. as a programming language).&lt;br /&gt;I‘m a proponent of visual modeling myself and after experiencing the method wars of the nineties I'm glad that such a thing as the UML unifies the meaning of arrowheads, boxes and dashed lines.&lt;br /&gt;But I just can't understand why people think that they will be able to describe &lt;span style="font-style: italic;"&gt;complete&lt;/span&gt; software systems of &lt;span style="font-style: italic;"&gt;all kinds&lt;/span&gt; in pictures (although it's quite possible for some domains and to a certain level).&lt;br /&gt;When thinking of the written word and picture I just can't avoid to think about cave drawings and "real" writing.&lt;br /&gt;It‘s very common to judge the development of a civilization by it‘s capabilities to write. Or as Wikipedia puts it:&lt;br /&gt;&lt;blockquote&gt;„&lt;a href="http://en.wikipedia.org/wiki/Writing"&gt;Historians draw a distinction between prehistory and history, with history defined by the advent of writing. The cave paintings and petroglyphs of prehistoric peoples can be considered precursors of writing, but are not considered writing because they did not represent language directly.&lt;/a&gt;“&lt;/blockquote&gt;So where does it put our so called "industry" when some of us attemp to describe complex systems in pictures alone?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-8136490545296093351?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/8136490545296093351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=8136490545296093351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8136490545296093351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8136490545296093351'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/07/from-cavedrawings-to-hyroglyphs-to.html' title='From Cavedrawings to Hyroglyphs to Times New Roman - and back to Cavedrawings.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1117511882857512243</id><published>2007-06-13T01:18:00.000+02:00</published><updated>2007-06-13T02:03:09.983+02:00</updated><title type='text'>Talk: "methodological software development"</title><content type='html'>As I said - I'll try to keep this more current...&lt;br /&gt;&lt;br /&gt;As mentioned in my previous post I just returned from my talk at the GI in cologne and besides the issues with the colour of my slides I think it went quite well.&lt;br /&gt;I surely would attend the GI meetings more often if only they where not on tuesdays - the athmosphere was rather open and the discussions gave some rather interesting pointers.&lt;br /&gt;&lt;br /&gt;For those who would like to see the slides again: You can download them from &lt;a href="http://www.michaelmahlberg.de/GI-MethodenMichaelMahlberg.pdf"&gt;www.michaelmahlberg.de/GI-MethodenMichaelMahlberg.pdf&lt;/a&gt;. But you should be prepared for a somewhat lenghty download - apart from the "slightly" dark appearance on screen a textured backdrop tends to create large pdf outputs... in this case about 10 Megabyte...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1117511882857512243?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1117511882857512243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1117511882857512243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1117511882857512243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1117511882857512243'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/06/talk-methodological-software.html' title='Talk: &quot;methodological software development&quot;'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-3051737454796790861</id><published>2007-06-13T00:06:00.000+02:00</published><updated>2007-06-13T01:04:39.016+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>Lessons from my last talk</title><content type='html'>As some of you may know im a big fan of &lt;a href="http://www.presentationzen.com/"&gt;Presentation Zen&lt;/a&gt; and try to follow some of the ideas in my talks. Today I was reminded of a few lessons I should have thought about beforehand:&lt;br /&gt;&lt;br /&gt;No matter how cool your slides may look with that subtle gray-in-black backdrop and the translucent, intersecting areas - don't rely on it. Always keep a second set of slides handy that is optimized for bright ambient lights if you can't check the location beforehand! It's not important how it looks on your screen or in your controlled environment - it's import how it transports your message during the presentation. Therefore: bright coulours and high contrast for all unknown environments (at least as a backup).&lt;br /&gt;&lt;br /&gt;Although I believe that a presentation is &lt;b&gt;not&lt;/b&gt; the set of slide (i.e. you can never mail a presentation to someone - you can only mail the slides) I tend to put some effort in slide-design and so they ought to look good.&lt;br /&gt;&lt;br /&gt;The other point is file size - since I converted to the Mac I tend to adopt a somewhat disrespectful attitude regarding the size of elements I use in a presentation - that's allright as long as the main point of the slides is to support the talk. As soon as I want to distribute them I could be running into trouble - for example when a simple 37-slide slideshow results in an almost 10MB pdf...&lt;br /&gt;&lt;br /&gt;regarding the talk itself ... see next post&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-3051737454796790861?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/3051737454796790861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=3051737454796790861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3051737454796790861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/3051737454796790861'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/06/lessons-from-my-last-talk.html' title='Lessons from my last talk'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1968633090515709037</id><published>2007-06-06T19:16:00.000+02:00</published><updated>2007-06-08T17:26:29.442+02:00</updated><title type='text'>Upcoming Talk(s)</title><content type='html'>Following some examples from colleagues I'll try to post a little more information on my  upcoming activities. Right now the list contains only one talk, but I'll try to keep the information on this blog more current in the future.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I'll hold a talk on the state of the practice of  "&lt;span style="font-weight: bold;"&gt;methodological  software development&lt;/span&gt;" for the Cologne chapter of the GI (Gesellschaft für Informatik / German Chapter of the ACM ) on June 12.&lt;br /&gt;The talk will give a quick (20 minute) overview over  practical experiences with applied development methodologies from SADT and IEM to XP and Scrum over the last two decades.&lt;br /&gt;Unfortunately the &lt;a href="http://www.gi-ev.de/regionalgruppen/koeln/"&gt;website&lt;/a&gt; is not quite up to date yet, but at least the location plan ought to be correct.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strike&gt;BTW:&lt;br /&gt;Is "praxis-talk" really a legal english term?&lt;/strike&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1968633090515709037?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1968633090515709037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1968633090515709037' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1968633090515709037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1968633090515709037'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/06/upcoming-talks.html' title='Upcoming Talk(s)'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-1820573606420435958</id><published>2007-06-02T00:49:00.002+02:00</published><updated>2008-05-26T17:46:19.008+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Are technical topics no business topics?</title><content type='html'>I started to write this about a year ago - I think it's time to finish my earlier posts to get at least the basic ideas behind them in writing before I try to start new topics.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Every now and then I come across the silly notion, that technical decisions - like "Java Yes, Ruby No" - are considered to be "not of business relevance" and are to be left to the "IT department" since "the business folks wouldn't know anyway".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Apart from the inherent hubris from "IT" people with that attitude I think this point of view is rather short-sighted. If there are implications the business is not aware of it is the solution providers responsibility to inform the business people.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But - getting back to Java vs. Ruby style questions - to build a certain application with an estimated life-span of 6 month (e.g. because there is a legal requirement for exactly that time-span) might be a sensible thing to do in language 'Y' while it may be more sensible to assign two interns to do manual data corrections than to build an application using language 'X'.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may substitute X and Y in the above paragraph with Ruby and Java respectivly according to your personal bias (or - for that matter - with any pair of programming languages) but the business people really should have &lt;strike&gt;a&lt;/strike&gt; the last word in the decision.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ceterum censeo: We (including me) &lt;/span&gt;&lt;a href="http://agile-aspects.blogspot.com/2006/12/t-in-it-is-worst-thing.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;should really stop using the term "IT"&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; ... if only I knew a suitable substitute ...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-1820573606420435958?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/1820573606420435958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=1820573606420435958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1820573606420435958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/1820573606420435958'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/06/are-technical-topics-no-business-topics.html' title='Are technical topics no business topics?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-8666949869344356384</id><published>2007-06-01T08:56:00.001+02:00</published><updated>2007-06-02T00:13:42.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='aspects'/><title type='text'>Dictatorship of the Dominant Decomposition</title><content type='html'>Well I thought this was well known, but obviously it isn't - a least outside the aspect-oriented crowd. So here are a few pointers for starters.&lt;br /&gt;&lt;br /&gt;As a matter of fact I was wrong about the phrase though - it is called:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://aosd.net/wiki/index.php?title=Glossary"&gt;The tyranny of the dominant decomposition&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(scroll down a little in the Glossary)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The original Papers can be found at ibm's reasearch site. Opposed to the AOSD glossary my preferred  paper is the one about &lt;a href="http://www.research.ibm.com/hyperspace/"&gt;Multi-Dimensional Separation of Concerns&lt;/a&gt;.  The one about &lt;a href="http://researchweb.watson.ibm.com/morphogenic/"&gt;Morphogenic Software&lt;/a&gt; is still worth a read though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-8666949869344356384?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/8666949869344356384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=8666949869344356384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8666949869344356384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/8666949869344356384'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/06/dictatorship-of-dominant-decomposition.html' title='Dictatorship of the Dominant Decomposition'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-7447794700695782815</id><published>2007-05-31T13:23:00.000+02:00</published><updated>2007-06-01T13:26:55.940+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>MacBooks on the Rise: Tools revisited</title><content type='html'>More and More of my friends, colleagues and acquaintances turn to Mac OS X so I think its time to revisit my list of essential tools.&lt;br /&gt;The List is based on personal experiences and my starting point were:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.innoq.com/blog/st/2004/12/19/mac_os_x_software_list.html"&gt;An old post by Stefan Tilkov &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.applegeeks.com/sm/index.php/topic,1781.0.html"&gt;A discussion on Applegeeks&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;My "Applications" folder ;-)&lt;/li&gt; &lt;/ul&gt;Lets start with some picks from &lt;a href="http://www.innoq.com/blog/st/"&gt;Stefan&lt;/a&gt;'s list (for a detailed discusson of the applications he used to like at the time see &lt;a href="http://www.innoq.com/blog/st/2004/12/19/mac_os_x_software_list.html"&gt;his list&lt;/a&gt;):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stefan's &lt;a href="http://www.gnu.org/software/emacs/emacs.html"&gt;Emacs&lt;/a&gt; is &lt;span style="font-style: italic;"&gt;(of course)&lt;/span&gt; replaced by &lt;a href="http://macvim.org/OSX/index.php"&gt;vim/gvim&lt;/a&gt; on my list - unfortunately not as nicely ported as on Linux and Windows - but it still does the job for me.&lt;/li&gt;&lt;li&gt;&lt;a href="http://quicksilver.blacktree.com/"&gt;Quicksilver&lt;/a&gt; definitely is a must - when working on windows one the the shortcuts I use the most is Windows-R (Run a single "Command"). Quicksilver goes far beyond that and is indispensible on a Mac when you're a keyboard addict.&lt;/li&gt;&lt;li&gt;Terminal (&lt;a href="http://iterm.sourceforge.net/"&gt;iTerm&lt;/a&gt;) omitted - no advantage for me. I'm happy with the built-in Terminal.app&lt;/li&gt;&lt;li&gt;The Omni Group's productivity suite was also very basic (not as in "simple", but as in "need to have") stuff - at least if you have to organize thought and discussions (&lt;a href="http://www.omnigroup.com/applications/omnioutliner/"&gt;OmniOutliner&lt;/a&gt;) and draw expressive diagramms and pictures effectively (&lt;a href="http://www.omnigroup.com/applications/omnigraffle/"&gt;OmniGraffle&lt;/a&gt;). The browser (OmniWeb) was a nice add-on but tends to interfere with my powersaving options so I switched back to Safari (the built-in browser). Unfortunately the productivity suite seems to be no longer available - wich makes it easier to focus on the important products.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Talking about browsers: Of course different browsers like &lt;a href="http://www.caminobrowser.org/"&gt;Camino&lt;/a&gt; and &lt;a href="http://www.mozilla.com/en-US/"&gt;Firefox&lt;/a&gt; come in handy if I use any Web2.0ish sites (and how could I avoid them nowadays)&lt;/li&gt;&lt;li&gt;Instead of &lt;a href="http://ecto.kung-foo.tv/"&gt;ecto&lt;/a&gt; I went for &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt; for blogging - and ended up using a &lt;a href="http://macvim.org/OSX/index.php"&gt;texteditor&lt;/a&gt;, and OmniOutliner for the job ;-)&lt;/li&gt;&lt;li&gt;I always preferred &lt;a href="http://www.adiumx.com/"&gt;Addium&lt;/a&gt; over &lt;a href="http://www.proteusx.com/"&gt;Proteus&lt;/a&gt;, but since AIM- and ICQ-user can also be reached via the built-in iChat I don't use any of them any more. For more compatibility with windows users &lt;a href="http://www.skype.com/"&gt;Skype&lt;/a&gt; (&gt; 2.0) comes to the rescue.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sshkeychain.org/"&gt;Ssh-keychain&lt;/a&gt;: well - yes i use it too.&lt;/li&gt;&lt;li&gt;And allthough I do very little development on my Mac &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; really does a great job for those little chunks of java that come along.&lt;/li&gt;&lt;/ul&gt;Now lets look at my ~/"Application" and the main "Application" folder.&lt;br /&gt;Here we've got (noteworthy only):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Productivity&lt;/li&gt;&lt;ul&gt;&lt;li&gt;I can't work without a mindmapping tool. My Choice is &lt;a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page"&gt;Freemind&lt;/a&gt; - a java based application that runs nicely on Windows and OS X. And with a little finetuning it even shows the brushed metal look and feel of OS X.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Another "promiscuous" application as Larry Ellison might have said in the early eigthies is &lt;a href="http://ganttproject.biz/"&gt;GanttProject&lt;/a&gt; which also runs on windows allmost as well as it does on a Mac. A simple but effective tool - for those situations where you just &lt;span style="font-style: italic;"&gt;have&lt;/span&gt; to visualize your plans in such a way - that is written in java..&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Every once in a while I have to make a little note. Using quicksilver I usally just start up a texteditor, make the note and save the file to the desktop. But I'm trying to change to &lt;a href="http://www.chatelp.org/?page_id=5"&gt;sidenote&lt;/a&gt; - it would be so much easier...&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ditchnet.org/aquapath/"&gt;AquaPath&lt;/a&gt; (again a recommendation from Stefan) to play with XPath expressions.&lt;/li&gt;&lt;li&gt;I'm quite happy with &lt;a href="http://macvim.org/OSX/index.php"&gt;vim/gvim&lt;/a&gt; (I think I mentioned that already ;-) ) but sometimes a more GUI-ish editor is helpfull. That's where &lt;a href="http://smultron.sourceforge.net/"&gt;Smultron&lt;/a&gt; enters the scene - I'm not yet in the need to get Textmate.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Not necessary but nice&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The MBPs are known for there "offensive" thermal behaviour. And even though I know that there is little to worry about I still like to check with &lt;a href="http://www.bresink.com/osx/TemperatureMonitor-de.html"&gt;Temperaturmonitor&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wordpod.berlios.de/"&gt;WordPod&lt;/a&gt; is a nice little tool to transfer textfiles to an iPod for reading - not heavy in use but usefull.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.versiontracker.com/dyn/moreinfo/macosx/17392"&gt;AudioRecorder&lt;/a&gt; as a lightwight alternative to firing up GarageBand just to record a few minutes. Saves directly to an AIFF, Apple Lossless (M4A and MOV), MP3, MP4 (M4A and MOV), or WAV file.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;The office stuff&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.apple.com/de/iwork/pages/"&gt;Pages&lt;/a&gt; and especially &lt;a href="http://www.apple.com/de/iwork/keynote/"&gt;Keynote&lt;/a&gt; are some great alternatives to the standard MS-Office apps. So &lt;a href="http://www.apple.com/de/iwork/"&gt;iWork&lt;/a&gt; was one of my first aquisitions (actually I ordered them together with my Mac)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;But still - since most of my clients are hooked on Microsoft &lt;a href="http://www.microsoft.com/germany/mac/default.mspx"&gt;MS-Office&lt;/a&gt; is a must.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;And for those who try to avoid the MS-Office trap and turn to OpenOffice &lt;a href="http://www.neooffice.org/neojava/de/index.php"&gt;NeoOffice&lt;/a&gt; is my choice of interaction.&lt;/li&gt;&lt;li&gt;Whenever I have to fiddle with graphics that I can't handle with OmniGraffle or the built-in apps (iPhoto does it for 99% of my photo editing whishes) &lt;a href="http://www.robbieduncan.net/cgi-bin/get_file.cgi?file=projects/mac/posterpaint/index"&gt;Posterpaint&lt;/a&gt; and &lt;a href="http://seashore.sourceforge.net/"&gt;Seashore&lt;/a&gt; come to the rescue.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The essential tool for web development of course is a texteditor! ;-) But the way &lt;a href="http://www.macrabbit.com/cssedit/"&gt;CSSEdit&lt;/a&gt; lets me fiddle with css styles is unmatched by anything I've seen before. &lt;a href="http://www.panic.com/coda/"&gt;Coda&lt;/a&gt; might turn out to be a great addition, but im not yet sure.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Being the lazy person I am I try to avoid typing as much as I can. &lt;a href="http://www.app4mac.com/action_freewares.lasso"&gt;RapidoWrite&lt;/a&gt; helps me by replacing abbreviation with any text I like (as long as I've defined the abbreviation of course)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;One of the nice things about OS X is the fact that pdf is a native format. Still some tools come quite handy for some Tasks.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.malcom-mac.com/blog/pdfmergex/"&gt;PdfMergeX&lt;/a&gt;  gives a little more flexibility to the  handling of pdfs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://pdfview.sourceforge.net/index.html"&gt;PDFView&lt;/a&gt; is an alternative to the built-in Preview application and is in some ways more "natural" to the eye.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Although many printer drivers allready support "brochure" layout &lt;a href="http://www.cheapimpostor.com/"&gt;CheapImposter&lt;/a&gt; is my tool of choice if I want to be able to create brochures on not-so-smart printer without duplex capability.&lt;/li&gt;&lt;li&gt;With &lt;a href="http://www.yepthat.com/"&gt;Yep!&lt;/a&gt; there's a great alternative to searching pdf all over my harddrive - and I really should use it more ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;System tools&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://perso.orange.fr/tcfj/site/Prg_AutresRB.html"&gt;SyncTwoFolders&lt;/a&gt; does exactly as the name implies - great for keeping USB-sticks up to date.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Going back in broser's cache is not always easy - but &lt;a href="http://jokke.dk/software/retrospective/"&gt;Retrospective&lt;/a&gt; makes it easier.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Even a nnn-GB drive gets stuffed after a while. With &lt;a href="http://developer.berlios.de/projects/macfilelight/"&gt;Filelight&lt;/a&gt; and &lt;a href="http://grandperspectiv.sourceforge.net/"&gt;GrandPerspective&lt;/a&gt; it's easy to identify the hotspots - actually I use almost exclusively GrandPerspective - Filelight is just an alternative for "special cases".&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Connectivity&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;As always the Mac (at least mine) just works when it comes to wireless networks. But sometimes I want to now why and how. &lt;a href="http://istumbler.net/"&gt;iStumbler&lt;/a&gt; doesn't tell me to much about my system - but it tells me all (almost) I want to know about the WiFi networks in my vicinity.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And once I'm connected to a network &lt;a href="http://husk.org/apps/flame/"&gt;Flame&lt;/a&gt; tells me wich bonjour services are available. (Run in an airport lounge just for fun - it's amazing how many people intend to share their music and printers whith everybody. Especially considering the fact that you deliberately have to turn &lt;span style="font-style: italic;"&gt;on&lt;/span&gt; sharing in OS X)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The built-in Mail.app does almost exactly what I want - but sometimes I just want to check my mailbox just to see if it's expedient to burn bandwith (think of UMTS/GPRS in aforeign country) by really accessing my Mailbox. Thats where &lt;a href="http://macbiff.sourceforge.net/"&gt;MacBiff&lt;/a&gt; - an IMAP-savy menu extension is exactly what I need.&lt;/li&gt;&lt;li&gt;Even Apple doesn't always get it right - to really get the best compatibility with my Palm I needed to install the &lt;a href="http://www.markspace.com/products.html"&gt;MissingSync&lt;/a&gt;. Now everything works fine.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Multimedia&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.videolan.org/"&gt;VLC&lt;/a&gt; - any questions? Handles all the video formats out of the box.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;But when I use Quicktime I sometimes would like to run it fullscreen. Thats very easily possible by sendig AppleScript command to the player - even without the "Pro" version. &lt;a href="http://www.macupdate.com/info.php/id/23093"&gt;Fullsceen4Free&lt;/a&gt; does exactly that and includes a (nice?) GUI.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Before &lt;a href="http://www.steelskies.com/coverflow/"&gt;CoverFlow&lt;/a&gt; was integrated into iTunes i definitely liked it better. May or may not be available in the future. Last download possibility I knew was at &lt;a href="http://www.macupdate.com/info.php/id/19081/coverflow"&gt;MacUpdate&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;One of the esential tools for iTunes is of course &lt;a href="http://www.beatunes.com/"&gt;beaTunes&lt;/a&gt;. This tool analyses Songs not only by BPM but also by "colour" - kind of representing the overall mood of the song - and really helps building better playlists.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;And - last but not least - the system extensions I use&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Although not really necessary, &lt;a href="http://growl.info/"&gt;Growl&lt;/a&gt; is very helpfull when many application are running in the background and their user notification shall appear at least somewhat co-ordinated.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;As you might have guessed by my use of Temperaturmonitor I really like to know whats  going on inside my machine. &lt;a href="http://www.ragingmenace.com/software/menumeters/"&gt;MenuMeters&lt;/a&gt; provides exactly the information I want.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Even though the MDI-Interface is the standard for OS X applications there is no standard way to acces all the windows vie the keyboard. &lt;a href="http://www.petermaurer.de/witch/"&gt;Witch&lt;/a&gt; gave me back the capability to "tab" through all open windows. (Arguably thats not really necessary once one gets used to exposé)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Oh - did I mention dashboard widgets?&lt;br /&gt;But it's getting late, my battery is almost empty and I still got a lot of other work to do - so here's just a taste...&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Upcoming Birthdays&lt;br /&gt;&lt;/li&gt;&lt;li&gt; AviationWeather&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.apple.com/downloads/dashboard/reference/colorjacksphere.html"&gt;ColorJack: Sphere&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.apple.com/downloads/dashboard/business/secretnotepad.html"&gt;SecretNotePad&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; iStatPro&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.metabang.com/widgets/stop-it/index.html"&gt; Stop It!&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;and many, many more&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-7447794700695782815?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/7447794700695782815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=7447794700695782815' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7447794700695782815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/7447794700695782815'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/05/macbooks-on-rise-tools-revisited.html' title='MacBooks on the Rise: Tools revisited'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-117383008696490259</id><published>2007-03-14T01:54:00.000+01:00</published><updated>2007-06-01T11:31:08.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>You want better estimates? Give us more dice.</title><content type='html'>&lt;p&gt;I'm not sure whether the title works in English, but regarding the way projects are installed in some companies I started to attain the aforementioned attitude.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This is especially helpfull in situations when you're asked "We're not yet exactly sure what we want - but how much will it cost?"&lt;br /&gt;&lt;br /&gt;&lt;small&gt;In German: "Ihr wollt bessere Schätzungen? Gebt uns mehr Würfel!"&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color: rgb(0, 0, 136); text-align: right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-117383008696490259?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/117383008696490259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=117383008696490259' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/117383008696490259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/117383008696490259'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2007/03/you-want-better-estimates-give-us-more.html' title='You want better estimates? Give us more dice.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-116647489674801164</id><published>2006-12-18T21:48:00.000+01:00</published><updated>2007-06-01T11:29:39.342+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>The 'T' in 'IT' is the worst thing ... </title><content type='html'>&lt;p&gt;...that happened to 'IT' in the last decade.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once upon a time...&lt;br /&gt;the craft of software development was performed under the umbrella of data processing and those performing the tasks had titles like programmer, designer, analyst or something along that line. Some of them even came from &amp;quot;computer sciences&amp;quot; or &amp;quot;informatics&amp;quot; but: all of them acted on data or information.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Nowadays - I'd say since the late nineties of the last century - there seems to be a clear line between &amp;quot;business&amp;quot; on one side and &amp;quot;IT&amp;quot; on the other. That wouldn't need to be too bad, but since the &amp;quot;T&amp;quot; in &amp;quot;IT&amp;quot; stand for &amp;quot;Technology&amp;quot; it is.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="#technologyref"&gt;&amp;quot;Technology*&amp;quot;&lt;/a&gt; metaphor affects both sides. Developers, projects managers and even (software) analysts and designers just take the input - be it concepts or orders or functional descriptions - and try to implement it (or design the system) as good as they can. Business analysts - or who ever describes the content of the project - concentrate on their part of the story and ignore any technical implications.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Sounds fine - doesn't it?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Unfortunately it does! But this seemingly sound separation of concerns is in fact one of the main reasons for time-and-budget overruns, immense time to market durations and similar problems (aka &amp;quot;the new software crisis&amp;quot;).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Lets have a slightly closer look at the problems arising from that separation.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Technology &amp;amp; method savvy people get confined to the &amp;quot;techno-space&amp;quot;&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Putting all those people with systems design education and experience on the technological side of the imaginary &amp;quot;IT fence&amp;quot; leaves no-one with up-to-date knowledge on the business side of that &amp;quot;IT fence&amp;quot;. Of course some business analyst are happily nudging away on the business side of the fence, but they are clearly in the minority.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Most businesses are un-precise by definition - so that is what the business people need to be&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;To be successful in business a certain degree of leeway is absolutely necessary - people (and most customers are people, even if some of them - namely some of those from the centralised purchasing departments - try to hide the fact) are extremely informal in their perception of the world and in order to generate business you'd better be flexible too.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Business problems don't have to be hard to be expensive - it's sufficient if they are based on &amp;quot;common knowledge&amp;quot;&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;In the early time of software development software simply was the only way to solve very complex but well defined problems. Finding the correct trajectory to shoot three people from florida to the moon would be one of those well defined but complex problems. Later on there came other types of problem: seemingly simple problems with ambiguos definitions - lets say tax collection. Although theses are 'not exactly rocket science' and you easily get along with the four basic calculation types there are volumes and volumes of law textbooks and interpretations even for one type of tax.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The problem gets worse when people try to describe - or even define - a process 'unambiguously' without proper knowledge. Just try to describe the behaviour of a lift without diagrams. Now add time-awareness and route optimization. And add a second lift, coupled with the first one.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Formal methods should be applied much earlier&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Now if you thought of all those fancy diagrams from one of your favourite methods to describe the problem above your probably living rather close to the &amp;quot;T-fence&amp;quot;. I personally cross the border very often - either from one assignment to the other or during one single assignment - and every time I introduce some little formal method to business people I am overwhelmed how fast and efficient these methods are applied. It's not that these business people are dumb or ignorant - the problem is just that they don't have a focus on formal methods and are often actively separated from them by the IT-departments.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Agile processes try to circumvent this problem but fail to consider typical german mindsets&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;It's not only that business and IT use different (formal) languages but also the distance a piece of information has to cover to get from people thinking &amp;quot;business&amp;quot; to people thinking &amp;quot;systems&amp;quot; and back. So the poor guy trying to implement something has not only got to figure out how to implement it but also &amp;quot;what did he/she think that he/she thought what he/she was thinking - and what the heck could be the business reason behind all of these interpretations?&amp;quot;. These assumptions - made by the last poor guy in the line - are what eventually make the systems work.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In my opinion the agile processes are a very good way to bridge the distance from business thinkers to systems thinkers (e.g. by placing them very close together) but they unfortunately fail to take local (in this case German) mindsets and organisational patterns into account.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To effectively overcome this situation the &amp;quot;fixed price addiction&amp;quot; (as one of the more direct agile protagonists once put it) has to be overcome - but I'm afraid that will still take a while. In the meantime it could help offer more support to business people earlier.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;&amp;quot;bring together, what belongs together&amp;quot;&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;On the other hand it might be a good idea to allow for more business awareness in the IT-Departments to become more of &amp;quot;systems thinking departments&amp;quot;. Although most of the systems work in the end they could get there much faster if the implementing departments would be willing to think more business oriented.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Although this will probably not happen any time soon (at least in Germany) this is one of the occasions where a small step backwards might turn out to be a giant leap forward. So perhaps it's not only about insourcing ousourced IT-departments but about integration of IS knowledge.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Stop using the term IT, make it IS (Information Systems) or something even more appropriate.&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Any suggestions?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a name="technologyref"&gt;&lt;/a&gt;* BTW: It is even worse with the german word &amp;quot;Technik&amp;quot; because that is often interpreted as &amp;quot;mechanics&amp;quot;.&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-116647489674801164?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/116647489674801164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=116647489674801164' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/116647489674801164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/116647489674801164'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/12/t-in-it-is-worst-thing.html' title='The &apos;T&apos; in &apos;IT&apos; is the worst thing ... '/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-116126498710536553</id><published>2006-10-19T15:36:00.000+02:00</published><updated>2007-06-01T11:29:39.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>Reuse considered harmfull?</title><content type='html'>&lt;p&gt;Although sometimes treated like the &amp;quot;holy grail of the software industry&amp;quot; reuse has never appealed to me as a primary goal.&lt;br /&gt;After I discussed this topic with Olli (sorry: no blog, no personal homepage =&amp;gt; no link) last week he dug up the &lt;a href="http://deposit.ddb.de/cgi-bin/dokserv?idn=96610871x&amp;amp;dok_var=d1&amp;amp;dok_ext=pdf&amp;amp;filename=96610871x.pdf"&gt;diploma theses from Rupert Stützle&lt;/a&gt; (in German) called &amp;quot;Wiederverwendung ohne Mythos&amp;quot; (roughly: &amp;quot;Reuse without myth&amp;quot;) which puts a little foundation behind my gut feeling.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I've personally always considered reuse to be an indicator of good architecture and design but the real goal for me is to to have flexible systems where the change impact is as localised as possible. I'll have to take a look at the theses to see if that point of view is also backed up by hard facts.&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-116126498710536553?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/116126498710536553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=116126498710536553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/116126498710536553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/116126498710536553'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/10/reuse-considered-harmfull.html' title='Reuse considered harmfull?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115727575274134733</id><published>2006-09-03T11:29:00.000+02:00</published><updated>2007-06-01T11:30:29.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Location Changer: Good Idea, unlucky (for me) implementation</title><content type='html'>&lt;p&gt;I just gave &lt;a href="http://codehackers.net/"&gt;WiLMa&lt;/a&gt; a try run and prompty had to reconfigure my mail system. Here is an excerpt from my mail to the author:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One of the great things in apples Mail.app (unlike the last version of T-Bird I tried or some other mail clients) is that it handles SMTP-Servers on an account basis.&lt;br /&gt; I don't use an open SMTP-Gateway and I neither like nor encourage open SMTP-Gateways. Therefore each of my outgoing mail addresses (private, business, community work) has to use its own SMTP Server/Gateway.&lt;br /&gt;The first time I started WiLMa and went to the 'SMTP Servers' pane I knew I was in (mild) trouble: Only &lt;em&gt;one&lt;/em&gt; SMTP-entry...&lt;br /&gt;I switched to Mail.app and guess what: All accounts already bore the same entry for their SMTP-Servers. And obviously one of them even disappeared from the list (probably because I have two account on the same machine).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At least my other system settings were left alone (sigh), and it only took about 10 Minutes to reconfige the accounts. (Testing included)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Update, less than a day later:&lt;br /&gt;I just got Mail from the author - he really seems to be very responsive, so I think I'll give it another try in december.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here's (part of) what he wrote:&lt;br /&gt;[...]As for the software's initial behavior, I hadn't thought of it from that angle and will try to get this fixed in time for the October release. Perhaps an opt-in for features instead of an opt-out would be a good solution?[...]&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115727575274134733?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115727575274134733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115727575274134733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115727575274134733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115727575274134733'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/09/location-changer-good-idea-bad.html' title='Location Changer: Good Idea, unlucky (for me) implementation'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115705247719577251</id><published>2006-08-31T21:27:00.000+02:00</published><updated>2007-06-01T11:29:39.344+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>O/R-Mapping: A loose-loose situation?</title><content type='html'>&lt;p&gt;Today (while researching SOAP-Bindings...) I stumbled across a great (and comparatively recent) article from &lt;a href="http://blogs.tedneward.com"&gt;Ted Neward&lt;/a&gt;  where he &lt;a href="http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx"&gt;compares O/R-Mapping with the vietnam war&lt;/a&gt;. Although this seems &lt;a href="http://blogs.tedneward.com/2006/06/27/Thoughts+On+Vietnam+Commentary.aspx"&gt;a little unpopular to some&lt;/a&gt; I'll have to go deeper into the article as time permits. From a first glance I have to say that I couldn't agree more (at least on the technical side)&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115705247719577251?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115705247719577251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115705247719577251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115705247719577251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115705247719577251'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/08/or-mapping-loose-loose-situation.html' title='O/R-Mapping: A loose-loose situation?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115663098173277672</id><published>2006-08-27T00:23:00.000+02:00</published><updated>2007-06-01T11:29:39.345+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methods'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>Cynical Reengineering ?!?!</title><content type='html'>&lt;p&gt;I'm not shure really about it right now, but &lt;a href="http://agile-cologne.de:8080/wiki/Wiki.jsp?page=DanielSpeicher"&gt;Daniel&lt;/a&gt; pointed me to an article about &amp;quot;&lt;a href="http://portal.acm.org/citation.cfm?id=1094959&amp;dl=ACM&amp;coll=&amp;CFID=15151515&amp;CFTOKEN=6184618"&gt;Cynical Reengineering&lt;/a&gt;&amp;quot; wich really appealed to me from the title alone. I'll have to go deeper into this as soon as I find the time.&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115663098173277672?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115663098173277672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115663098173277672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115663098173277672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115663098173277672'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/08/cynical-reengineering.html' title='Cynical Reengineering ?!?!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115633173463149260</id><published>2006-08-23T13:15:00.000+02:00</published><updated>2007-05-19T19:08:49.780+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Online Feed reader</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;    &lt;p&gt;Sometimes it's usefull to read your feeds - like blogs or update sites - via a browser.&lt;/p&gt;&lt;br /&gt;    &lt;p&gt;From &lt;a href="http://www.innoq.com/blog/st/"&gt;Stefan&lt;/a&gt; I learned about &lt;a href="http://www.bloglines.com/"&gt;bloglines&lt;/a&gt; which seems quite OK - except that the confirmation mail they sent me was &amp;quot;considered spam&amp;quot; by Apple-Mail (at least it passed my providers Mailfilters ;-) )&lt;/p&gt;&lt;br /&gt;    &lt;p&gt;Might be a handy way to stay up to date when no internet-access is available for my laptop.&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115633173463149260?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115633173463149260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115633173463149260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115633173463149260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115633173463149260'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/08/online-feed-reader.html' title='Online Feed reader'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115594134344251142</id><published>2006-08-19T00:49:00.000+02:00</published><updated>2006-08-19T16:45:45.200+02:00</updated><title type='text'>Automated acceptance tests @ agile-cologne</title><content type='html'>&lt;p&gt;tonight at the &lt;a href="http://agile-cologne.de:8080/wiki/Wiki.jsp?page=AutomatisierungVonAkzeptanztests"&gt;15th meeting of the agile cologne user group&lt;/a&gt; (in German) &lt;a href="http://agile-cologne.de:8080/wiki/Wiki.jsp?page=AndreasThiel"&gt;Andreas Thiel&lt;/a&gt; reminded me (and all of us at the meeting) of an important statement from the &lt;a href="http://fitnesse.org/FitNesse.AcceptanceTests"&gt;Fitnesse Website&lt;/a&gt; (cited a bit liberally):&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;Unit tests help to build the &lt;strong&gt;&lt;em&gt;system right&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;while&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;Acceptance tests help to build the &lt;strong&gt;&lt;em&gt;right system&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A good thing to remember!&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115594134344251142?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115594134344251142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115594134344251142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115594134344251142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115594134344251142'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/08/automated-acceptance-tests-agile.html' title='Automated acceptance tests @ agile-cologne'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-115222528725043081</id><published>2006-07-07T00:34:00.000+02:00</published><updated>2007-06-01T11:31:08.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Thats why.</title><content type='html'>Today I learned about the real reasons behind working Software - it's all based on &lt;a href="http://en.wikipedia.org/wiki/Quantum_bogodynamics"&gt;quantum-theory...&lt;/a&gt; (via Burghard)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-115222528725043081?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/115222528725043081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=115222528725043081' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115222528725043081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/115222528725043081'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/07/thats-why.html' title='Thats why.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114795391980117347</id><published>2006-05-18T14:05:00.000+02:00</published><updated>2007-06-01T11:30:29.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>If you don't know which framework to use..</title><content type='html'>... &lt;a href="http://java-source.net/"&gt;look here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114795391980117347?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114795391980117347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114795391980117347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114795391980117347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114795391980117347'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/05/if-you-dont-know-which-framework-to.html' title='If you don&apos;t know which framework to use..'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114788581482120369</id><published>2006-05-17T19:10:00.000+02:00</published><updated>2007-05-31T13:44:50.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Mac OS X newbies</title><content type='html'>Perhaps &lt;a href="http://www.applegeeks.com/sm/index.php/topic,1781.0.html"&gt;this thread&lt;/a&gt; should be read by all Win to OS-X convertees. Although it's a little long it's worth scanning through it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114788581482120369?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114788581482120369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114788581482120369' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114788581482120369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114788581482120369'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/05/mac-os-x-newbies.html' title='Mac OS X newbies'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114788325026556471</id><published>2006-05-17T18:27:00.000+02:00</published><updated>2007-05-31T13:44:50.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>OS-X Simple Graphic Tools</title><content type='html'>One thing - apart from the cd-copy stuff - that really bugs me in OS-X is the absence of anything even remotely resembling MS-Paint. I suppose most Mac users own some Version of Photoshop or the like but I'm a consultant and developer not an artist that's why I'd like to have something lightweight, easy and free.&lt;br /&gt;After some googling I found&lt;br /&gt;    &lt;a href="http://mac.softpedia.com/get/Graphics/Seashore.shtml"&gt;Seashore&lt;/a&gt; (probably a little heavy)&lt;br /&gt;    &lt;a href="http://seashore.sourceforge.net/"&gt;Seashore&lt;/a&gt;&lt;br /&gt;    Seashore&lt;br /&gt;and&lt;br /&gt;    &lt;a href="http://www.robbieduncan.net/cgi-bin/get_file.cgi?file=projects/mac/posterpaint/index"&gt;Posterpaint&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;let's have a look at them... more to come&lt;br /&gt;-mm&lt;br /&gt;&lt;br /&gt;P.S.: Drawing could be done with&lt;br /&gt;&lt;a href="http://www.inkscape.org/"&gt;    Inkscape&lt;/a&gt; or&lt;br /&gt;&lt;a href="http://www.ambientdesign.com/artrage.html"&gt;    ArtRage 2.1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114788325026556471?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114788325026556471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114788325026556471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114788325026556471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114788325026556471'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/05/os-x-simple-graphic-tools.html' title='OS-X Simple Graphic Tools'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114606555020441635</id><published>2006-04-26T17:32:00.000+02:00</published><updated>2007-05-19T19:08:49.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Links again: XPath-Turorials</title><content type='html'>My ressources for XPath&lt;br /&gt;&lt;a href="http://agile-aspects.blogspot.com/"&gt;http://www.w3schools.com/xpath/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oreilly.com/catalog/xmlnut/chapter/ch09.html"&gt;http://www.oreilly.com/catalog/xmlnut/chapter/ch09.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/TR/xpath"&gt;http://www.w3.org/TR/xpath&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114606555020441635?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114606555020441635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114606555020441635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114606555020441635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114606555020441635'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/04/links-again-xpath-turorials.html' title='Links again: XPath-Turorials'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114606507532982226</id><published>2006-04-26T17:24:00.000+02:00</published><updated>2007-05-19T19:08:49.782+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Links again: Functional Testing</title><content type='html'>&lt;span style="font-family:sans-serif;font-size:85%;"&gt;Open-Source tools for functional testing can be found at&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:sans-serif;font-size:85%;"&gt;&lt;a href="http://opensourcetesting.org/functional.php"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:sans-serif;font-size:85%;"&gt;http://opensourcetesting.org/functional.php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:sans-serif;font-size:85%;"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114606507532982226?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114606507532982226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114606507532982226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114606507532982226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114606507532982226'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/04/links-again-functional-testing.html' title='Links again: Functional Testing'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114605139683386731</id><published>2006-04-26T13:36:00.000+02:00</published><updated>2007-05-19T19:08:49.782+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Links mal wieder: Webtest-Support</title><content type='html'>&lt;span style="font-family:sans-serif;font-size:85%;"&gt;A number of usefull tools aimed primarily on testing web applications&lt;/span&gt;&lt;br /&gt;&lt;a href="http://webtest.canoo.com/webtest/manual/annotatedRefs.html"&gt;&lt;br /&gt;&lt;span style="font-family:sans-serif;font-size:85%;"&gt;http://webtest.canoo.com/webtest/manual/annotatedRefs.html&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114605139683386731?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114605139683386731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114605139683386731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114605139683386731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114605139683386731'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/04/links-mal-wieder-webtest-support.html' title='Links mal wieder: Webtest-Support'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-114478631638200325</id><published>2006-04-11T22:11:00.000+02:00</published><updated>2007-05-31T13:44:50.037+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Links'/><title type='text'>Moving from windows to mac</title><content type='html'>Well, since a week or two I own a shiny new MacBook and I think it's time to wrap up my experiences so far.&lt;br /&gt;Although I spent a few night trying to get the new feeling I was able to be productive almost from day one.&lt;br /&gt;The build in Apps are a breeze, Mail does just what it's meant to do, the browser works like a charm and after installing the PalmDesktop my Palm synchronized (almost) perfectly with iCal and the addressbook. I only miss the categories but i'll have a look at the MissingSync (&lt;a href="http://www.markspace.com/missingsync_palmos.php" title="for Palm OS"&gt;for Palm OS&lt;/a&gt;) and I might be completely happy again;-)&lt;br /&gt;&lt;p style="text-align:right;"&gt;&lt;span style="font-size:10pt;"&gt;[posted with &lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&lt;a href="http://ecto.kung-foo.tv"&gt;ecto&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;]&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-114478631638200325?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/114478631638200325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=114478631638200325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114478631638200325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/114478631638200325'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2006/04/moving-from-windows-to-mac.html' title='Moving from windows to mac'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20337798.post-113594289828021465</id><published>2005-12-30T12:40:00.000+01:00</published><updated>2005-12-30T12:41:38.286+01:00</updated><title type='text'>Joining the crowd</title><content type='html'>Well - this is actually more of a technical post since I just created this blog and want to see if it works.&lt;br /&gt;More to come later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20337798-113594289828021465?l=agile-aspects.michaelmahlberg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agile-aspects.michaelmahlberg.com/feeds/113594289828021465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20337798&amp;postID=113594289828021465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/113594289828021465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20337798/posts/default/113594289828021465'/><link rel='alternate' type='text/html' href='http://agile-aspects.michaelmahlberg.com/2005/12/joining-crowd.html' title='Joining the crowd'/><author><name>Michael</name><uri>http://www.blogger.com/profile/17228297952885873743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.michaelmahlberg.com/pics/PortraitMichaelMahlberg.jpg'/></author><thr:total>0</thr:total></entry></feed>
