<?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'><id>tag:blogger.com,1999:blog-28351195</id><updated>2009-11-22T14:10:36.019+01:00</updated><title type='text'>Pawel Brodzinski on Software Project Management</title><subtitle type='html'>You can find here thoughts and ideas on different IT projects - from small applications up to carrier grade solutions.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default?start-index=26&amp;max-results=25'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>458</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28351195.post-6104976653605828173</id><published>2009-11-19T18:24:00.004+01:00</published><updated>2009-11-19T18:36:56.089+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google wave'/><category scheme='http://www.blogger.com/atom/ns#' term='deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Google Wave: What You Should Avoid When Releasing Your App</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.widgetslab.com/wp-content/uploads/2009/10/google-wave-logo.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 256px; height: 256px;" src="http://www.widgetslab.com/wp-content/uploads/2009/10/google-wave-logo.png" alt="" border="0" /&gt;&lt;/a&gt;You can approach this post in at least four different ways. Your attention can be drawn by Google Wave part, namely my rant on the subject, or by a list of thing which you should avoid while shipping your application, which is a kind of lesson learned from the part one. You may also come here for both or neither of them. In the latter case I guess that’s quite a success I kept you here up to this point.&lt;br /&gt;&lt;br /&gt;Anyway the whole thing starts with the story about Google Wave. Feel free to skip to the second part if you don’t feel like reading yet another rant about yet another Google application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Google Wave&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.progressblog.com/"&gt;Lech&lt;/a&gt; invited me to try out Google Wave the other day. There was pretty much &lt;a href="http://twitter.com/#search?q=google%20wave"&gt;buzz on Wave&lt;/a&gt; recently so it’s a chance to set my own opinion.&lt;br /&gt;&lt;br /&gt;I took my &lt;a href="http://blog.brodzinski.com/2009/03/minimal-screen-resolution-for.html"&gt;tiny netbook&lt;/a&gt; and logged in to Google Wave. The first thing is, what a surprise, an introductory video. A cool one. I could see top left corner of it. Oh I soon noticed “full screen” button on the frame so I could see whole video, which at the same time became completely irrelevant since the guy was showing other frames which I could no longer see since I full-screened frame with the video. Well, you don’t have another chance to make first impression they say.&lt;br /&gt;&lt;br /&gt;Hey Google, have you ever heard about this little thingies called netbooks which are &lt;a href="http://awards.t3.com/categories/computer-of-the-year/lenovo-ideapad-s10e"&gt;so damn popular&lt;/a&gt; these times? Yes, the ones with 1024x600 or similar screens. I must tell you Google Wave sucks when you use one of these.&lt;br /&gt;&lt;br /&gt;I tried to play with Wave for a while trying to find the way of use just for myself. Nah, too slow, too feature-poor and too buggy. I thought it might be a replacement for good old Google Notebook but I couldn’t even paste a picture there, easy way.&lt;br /&gt;&lt;br /&gt;But that’s all fine since they told us it’s the collaboration tool, didn’t they? And as far as remember there isn’t much collaboration happening between me and... um... me.&lt;br /&gt;&lt;br /&gt;An occasion to test collaboration features of Wave appeared soon after. Along with &lt;a href="http://www.progressblog.com/"&gt;Lech&lt;/a&gt;, &lt;a href="http://twitter.com/zpepe"&gt;Peter&lt;/a&gt;, &lt;a href="http://twitter.com/martinkoKlingac"&gt;Martin&lt;/a&gt; and a couple of others we shared two waves trying to run a discussion and collaborate online.&lt;br /&gt;&lt;br /&gt;What can I say? First thing Google Wave is buggy. We found long list of issues which annoys us, huge lag on slower machines being probably the worst one. If the application you use cannot display characters as you write them something is fucked up big time. Hey Google, have you heard that these neat netbooks everyone uses aren’t very fast machines? Well, I tell you, not even close these fancy powerful machines you develop your code on.&lt;br /&gt;&lt;br /&gt;Let aside quality. “Ship early” they said. What about functionality? A tough question. I thought about the most obvious scenarios like editing a document by a couple of people at the same time or a discussion on some subject or a hard-copy for intensive brainstorming... Actually none of these.&lt;br /&gt;&lt;br /&gt;Co-editing a document is a flawed concept as a whole. If you try to write something and your cursor is jumping all over the screen because someone else tries to write his part just above you’re all “&lt;span style="font-style: italic;"&gt;WTF?? What the hell is happening with this darn application?&lt;/span&gt;” I don’t know how the problem will be dealt with but definitely some other way than broadcasting each keystroke among all collaborators.&lt;br /&gt;&lt;br /&gt;Over to discussion part. I must say threaded conversation in Google Wave looks neat. Nothing like &lt;a href="http://www.phpbb.com/"&gt;phpbb&lt;/a&gt; forum. It’s really nice. You even get use to vague way of editing the conversation pretty fast. The problem is it becomes cluttered virtually in minutes. If you’ve seen some multi-threaded flame wars on popular portals you get what I’m talking about. It takes just a dozen of posts and you start losing your focus. After few dozen you no longer know which subject was discussed in which part of the thread, multiple sub-thread are forked by people utterly disagreeing with one little sentence thrown between the lines as a joke and people start wandering in different directions which happens during every uncontrolled discussion. If you happen to be offline for a couple of days finding any reasonable order in the thread becomes a great story for the next Mission Impossible movie.&lt;br /&gt;&lt;br /&gt;Maybe brainstorming then? Maybe, if you try hard enough. This scenario is basically the mix of two above and you feel exactly the same pains. The main product of brainstorming ends up somewhere in the middle of conversation between “be right back” and “this feature sucks” messages. And no, co-editing the post doesn’t become easier just because it’s record of brainstorming.&lt;br /&gt;&lt;br /&gt;And one more thing – every of these things you could do with other tools, namely Google Docs, any IM chat (Skype is fine) and shared mindmap (&lt;a href="http://www.mindmeister.com/"&gt;MindMeister&lt;/a&gt; anyone?).&lt;br /&gt;&lt;br /&gt;This brings me to sad conclusion: Google Wave is released too early (e.g. is too buggy) and solves no real problem. What can we learn from this example?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;What You Should Avoid When Releasing Your App&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Don’t release too early&lt;/span&gt;&lt;br /&gt;If your software wouldn’t pass 15-minute acceptance tests of a person who just skim through the app it isn’t ready yet. Release early doesn’t mean you can release complete shit as long as it’s early. If the app is too crappy people won’t come back to check the second beta.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Don’t release meaningless software&lt;/span&gt;&lt;br /&gt;Solve at least one users’ problem. Choosing problems which are real helps much. You can generate a lot of buzz with being just cool, but folks won’t stick with the app. I keep coming back to Google Docs and Spreadsheets despite their (still) poor functionality because they solve a problem of as-easy-as-possible documents sharing. I keep coming back to discontinued Google Notebook because it’s the easiest way to group a bunch of hard copies of website pieces. Solve one yet unsolved problem and I’ll keep coming back to you because I’m too lazy to look for another, possibly better, solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Don’t ignore people with worse hardware than yours&lt;/span&gt;&lt;br /&gt;Think how a web application would look on low-resolution screens such as netbooks or mobile phones. I wrote about importance of &lt;a href="http://blog.brodzinski.com/2007/12/what-is-your-mobile-website.html"&gt;optimizing your website for mobile phones&lt;/a&gt; a couple of years ago and guess what: people didn’t stop using their mobiles to browse the web. They’re browsing the web with their phones like crazy. And in the meantime the whole new market of computers with screens worse than good old 1024x768 emerged.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Don’t overlook boring features just because they’re boring&lt;/span&gt;&lt;br /&gt;If the most basic functionality is screwed nothing is going to rescue you. If your application sucks as displaying characters users type on keyboard you shouldn’t really bother about introductory video or widgets your app can have.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Don’t forget about branding&lt;/span&gt;&lt;br /&gt;A big name helps. If your company happen to be named Google, Amazon, Microsoft or such people will use your shit no matter what. You won’t hurt of a bunch of rants on your new product since that’s pretty much expected. On the other hand if no one ever heard about your organization you don’t want people to learn about you from a rant which is on the top of search results. If that’s how you start with your branding it may be a bit harder to draw other users.&lt;br /&gt;&lt;br /&gt;Yes, I’m aware I sound so old-school and so boring. Feel free to ignore me as I’m not a typical early adopter. But don’t cry when people stop coming back after a couple of visits. And yes, you have their emails in your database but the only business you can make on that is selling them to some spammer since people aren’t going to give you next chance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-6104976653605828173?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/6104976653605828173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/google-wave-what-you-should-avoid-when.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6104976653605828173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6104976653605828173'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/google-wave-what-you-should-avoid-when.html' title='Google Wave: What You Should Avoid When Releasing Your App'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2966760619242866708</id><published>2009-11-16T18:50:00.005+01:00</published><updated>2009-11-16T19:08:13.910+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='process improvement'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='change'/><title type='text'>The Kanban Story: Implementation of Kanban</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;So you want a story about the most painless implementation of new software development/project management methodology in industry history? Here it goes.&lt;br /&gt;&lt;br /&gt;There was nice afternoon, sun was shining and air-conditioning was silently humming. One of our engineers asked me what about this new methodology we were talking about a couple of weeks earlier. So I described them how it works in details telling basically nothing more than could be found in great &lt;a href="http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf"&gt;Henrik Kniberg's article on Kanban&lt;/a&gt; I mentioned earlier. It took definitely less than a half of hour, including Q&amp;amp;A.&lt;br /&gt;&lt;br /&gt;Then we drew our Kanban Board discussing which stages we wanted to have. More about creating our Kanban Board in the next post.&lt;br /&gt;&lt;br /&gt;The very next problem we have to solve was what exactly we want to move through out Board. We couldn’t decide on a color of sticky notes. I thought classic yellow would emphasize our respect for established rules of software craftsmanship while there were opinions that green would be better since it corresponds with stability of our software and flawless builds we get on our build server... OK, just joking here.&lt;br /&gt;&lt;br /&gt;Actually the problem was what granularity we’d use on sticky notes. MMF (Minimal Marketable Feature) is a nice concept but sometimes too vague. Generally we try to use MMF whenever it makes sense but sometimes we use non-marketable features as well. Example? When we had screwed something in database structure we got “fixing up a database” post-it. Unless you freaking darn good marketer this isn’t "marketable" at all, but pulling flawed database with the product all along the way would be kind of a pain in the ass. Fixing it later would cost far more than doing it fast. This substitutes being marketable if you ask me.&lt;br /&gt;&lt;br /&gt;To simplify things a bit we dropped using user stories. We decided using inside-out approach which in &lt;a href="http://tynerblain.com/blog/2009/10/19/agile-prioritization/"&gt;Tyner Blain article on agile prioritization&lt;/a&gt; is described as wrong one. The reason was most of the time splitting tasks in a way which was convenient for our development team created results which were identical with these achievable with outside-in approach (splitting tasks in a most convenient way for a customer). In these rare moments when it did not I could live with that and for me it maked development cycle more reasonable. Yes, I sure am biased with my past experiences as a developer or trying to play as someone like that.&lt;br /&gt;&lt;br /&gt;Anyway we ended up rather with old-school features describing (hopefully) fine-enough-grained functionalities rather than scenarios describing how user would interact with the application.&lt;br /&gt;&lt;br /&gt;Having this done we filled the Kanban Board with sticky notes showing what we were doing at that moment, what were planning to do and then we set up limits for each column. Again, more on this in another article about Kanban Board.&lt;br /&gt;&lt;br /&gt;Basic setup of tools was completed. The rest was to follow few simple rules, limiting WIP (work in progress) being the most important one.&lt;br /&gt;&lt;br /&gt;Basically Kanban was implemented and it wasn’t even a time of sunset, which we wouldn’t saw from our window anyway. We turned off air-conditioning and went home.&lt;br /&gt;&lt;br /&gt;I know things start to look interesting barely now but feel free to check out &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story.html"&gt;the first few parts of The Kanban Story&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-2966760619242866708?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2966760619242866708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-implementation-of-kanban.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2966760619242866708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2966760619242866708'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-implementation-of-kanban.html' title='The Kanban Story: Implementation of Kanban'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-7342470240844573184</id><published>2009-11-12T21:44:00.004+01:00</published><updated>2009-11-13T17:39:47.345+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='team management'/><category scheme='http://www.blogger.com/atom/ns#' term='meetings'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting culture'/><title type='text'>How to Reduce Number of Meetings to One per Quarter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w55opxuxeX8/Svx3xuv_12I/AAAAAAAAEXM/FCO833A1390/s1600-h/cups.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_w55opxuxeX8/Svx3xuv_12I/AAAAAAAAEXM/FCO833A1390/s320/cups.jpg" alt="" id="BLOGGER_PHOTO_ID_5403325349184395106" border="0" /&gt;&lt;/a&gt;Meetings are boring. Most meetings are irrelevant. There are too many meetings we have to attend.&lt;br /&gt;&lt;br /&gt;A confession: during past half of year I organized exactly two meetings with engineers in my team. Both were mostly about organizational issues regarding whole company, not just my team.&lt;br /&gt;&lt;br /&gt;How did I do that?&lt;br /&gt;&lt;br /&gt;Let’s start with why meetings are organized. Most of the time meetings happen to &lt;span style="font-weight: bold;"&gt;enable communication&lt;/span&gt; between people. Why don’t people just go to meet each other at their desks? Well, because they &lt;span style="font-weight: bold;"&gt;sit in different places&lt;/span&gt;, have &lt;span style="font-weight: bold;"&gt;different things to do&lt;/span&gt; and, often, have &lt;span style="font-weight: bold;"&gt;little free slots in their calendars&lt;/span&gt;. Sometimes they &lt;span style="font-weight: bold;"&gt;need to prepare&lt;/span&gt; themselves to say something reasonable and invitation to the meeting gives them time for that.&lt;br /&gt;&lt;br /&gt;Basically all these reasons become non-existent when whole team sits in one place.&lt;br /&gt;&lt;br /&gt;You don’t have to busily &lt;span style="font-weight: bold;"&gt;gather people from different places&lt;/span&gt; because, surprise, surprise, everyone is there.&lt;br /&gt;&lt;br /&gt;You don’t have to &lt;span style="font-weight: bold;"&gt;wander what people do at the moment&lt;/span&gt; since, well, you just see it in a glimpse. You can make your call whether it’s a good time to interrupt them at the moment or you should wait for a quarter.&lt;br /&gt;&lt;br /&gt;You don’t feel &lt;span style="font-weight: bold;"&gt;urge to finish in planned time slot&lt;/span&gt; even when the discussion is great and you’re solving problems like crazy. Neither do you feel this funny feeling when everything was said but no one hurries back to work and you just spend your time on chit chat because a meeting room is reserved for another half an hour.&lt;br /&gt;&lt;br /&gt;You can even allow starting talking with folks on subjects they aren’t prepared to. You can because whenever they need to prepare they’ll tell it and a discussion will be restarted later. This is like &lt;span style="font-weight: bold;"&gt;instantly starting a meeting instead of sending invitations&lt;/span&gt;. Odds are everyone is ready and you don’t waste time. If they are not it works similarly to invitation with agenda but better since you start meeting as soon as everyone’s ready.&lt;br /&gt;&lt;br /&gt;You should still think how improve transparency and communication flow but, believe me, once you start talking about almost everything in front of your team, even though you’re talking with a person next desk, people will &lt;span style="font-weight: bold;"&gt;know way more than they would otherwise&lt;/span&gt;. It would work that way even if you reported all your workweek on 4-hour long weekly summary with your team, which would be a candidate for the top dumb management practice of a year by the way.&lt;br /&gt;&lt;br /&gt;And the best thing. With this approach &lt;span style="font-weight: bold;"&gt;you magically clear everyone’s calendar&lt;/span&gt;. Finding slot when everyone is free becomes the easiest thing under the sun because everyone basically stopped attending meetings.&lt;br /&gt;&lt;br /&gt;A cherry on the cake: &lt;span style="font-weight: bold;"&gt;finding free conference room doesn’t bother you anymore&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Downsides?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;It won’t work for 50 people&lt;/span&gt;. As far as teams aren’t bigger than 10 people it should do well. Vast majority of teams fall in to this category.  &lt;span style="font-weight: bold;"&gt;Sometimes you need to focus&lt;/span&gt; and you don’t care about architecture discussion happening over your desk. You can take a break or try to isolate yourself with headphones. Either way it is a cost, but on average it’s significantly lower than it would be if you switched for old-school meeting approach.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;This applies only to team-related meetings&lt;/span&gt;. If your people have a lot of cross-team meetings and spend long hours on company-wide roundups filled with jabber this doesn’t have to be huge improvement. But then you’re doomed anyway. One of my engineers attended a few meetings on coding standards beyond these two I organized.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The approach works best for engineers&lt;/span&gt;. Project managers and business people will meet other people more often that once per quarter but it should be still an order of magnitude meetings less than it used to be.&lt;br /&gt;&lt;br /&gt;I wouldn’t get this kind of crazy idea but it happened so my whole team is &lt;a href="http://blog.brodzinski.com/2009/11/co-location-rules.html"&gt;collocated&lt;/a&gt; and it’s the best organizational thing which could happen. If you think it’s drastic, you’re wrong. Meetingless environment comes naturally. Maybe it so because this way you possibly are all time at the meeting, but at the same time you “meet” people only when it’s really needed.&lt;br /&gt;&lt;br /&gt;Try it. And tell me what happens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-7342470240844573184?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/7342470240844573184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/how-to-reduce-number-of-meetings-to-one.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7342470240844573184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7342470240844573184'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/how-to-reduce-number-of-meetings-to-one.html' title='How to Reduce Number of Meetings to One per Quarter'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w55opxuxeX8/Svx3xuv_12I/AAAAAAAAEXM/FCO833A1390/s72-c/cups.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2092034110841873978</id><published>2009-11-10T19:05:00.002+01:00</published><updated>2009-11-10T19:10:35.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>The Kanban Story: A Discovery of Kanban</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;In the last chapter: A small team was built and they tried to &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-beginning.html"&gt;set up a methodology&lt;/a&gt; for building their projects. After &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-initial-methodology.html"&gt;establishing a set of techniques&lt;/a&gt; and trying them against first couple of projects they faced &lt;a href="http://blog.brodzinski.com/2009/11/kanban-story-first-issues.html"&gt;a list of issues&lt;/a&gt;. They realized they needed something more. How would they deal with the problem? What would be their choice?&lt;br /&gt;&lt;br /&gt;When I read &lt;a href="http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf"&gt;Henrik Kniberg’s article Kanban vs Scrum&lt;/a&gt; it was first time when I thought I get the whole idea. I even thought it might work for our team but if you know me a bit you know I’m very reluctant to drop anything we’re currently doing just to try out this new cool idea I’ve read about yesterday. This is by the way the most important reasons why a few engineers with great potential I know will never fulfill this potential. They just can’t hold their horses whenever they read about new jazzy technology. And it doesn’t really matter whether it does any sense to implement it.&lt;br /&gt;&lt;br /&gt;Anyway I finally decided to give Kanban a try since I believed it would solve both of our main problems. First Kanban limits work in progress (WIP) by design. Second having open backlog where I could put any incoming idea should help me with dealing with all different threads happening around our group and at the same time I should be able keep modifying priorities pretty easily.&lt;br /&gt;&lt;br /&gt;What more, Kanban shouldn’t put on us much of constraints which would be invited by most of other methodologies. As lightweight as possible, as little bureaucracy as possible. Kanban suited well.&lt;br /&gt;&lt;br /&gt;I checked team’s opinion about starting something new which would help us. When I described Kanban and prompted for feedback I got green light although I can’t say they were enthusiastic whatsoever.&lt;br /&gt;&lt;br /&gt;A decision was made.&lt;br /&gt;&lt;br /&gt;Read the whole &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story.html"&gt;Kanban Story&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-2092034110841873978?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2092034110841873978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-discovery-of-kanban.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2092034110841873978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2092034110841873978'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-discovery-of-kanban.html' title='The Kanban Story: A Discovery of Kanban'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-8705538426893570313</id><published>2009-11-06T19:44:00.005+01:00</published><updated>2009-11-06T19:59:18.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='team management'/><category scheme='http://www.blogger.com/atom/ns#' term='co-location'/><category scheme='http://www.blogger.com/atom/ns#' term='context switching'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Co-location Rules!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w55opxuxeX8/SvRxjW3-3JI/AAAAAAAAEWU/MF0VA82FLog/s1600-h/communication.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_w55opxuxeX8/SvRxjW3-3JI/AAAAAAAAEWU/MF0VA82FLog/s320/communication.JPG" alt="" id="BLOGGER_PHOTO_ID_5401066705373813906" border="0" /&gt;&lt;/a&gt;A lot of interesting discussions today. During one of them we went through co-location and its influence of team productivity.&lt;br /&gt;&lt;br /&gt;I’m lucky enough to work with all my team in one room. I’m aware of all disadvantages of grouping people doing different things in one place but I’m still saying I’m lucky.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;I know &lt;span style="font-weight: bold;"&gt;development requires focus&lt;/span&gt;. I know that grouping a bunch of people in one place generates some chit-chat which distracts people trying to focus on their tasks. I know occasional phone calls do the same. I accept the fact. Hey, have I just said I accept lower productivity of our developers? Bad, bad manager.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;I know most people would consider &lt;span style="font-weight: bold;"&gt;a &lt;a href="http://www.joelonsoftware.com/items/2008/12/29.html"&gt;private office&lt;/a&gt; as a huge improvement&lt;/span&gt; from open-space. I wouldn’t offer that to my people even if I had a chance to make them this kind of offer. Ops, I’ve just admitted I wouldn’t make my people happier even if I could. How come?&lt;br /&gt;&lt;br /&gt;It just about trade-offs. While putting people together invites costly context switching because of distractions it also brings huge values in terms of team work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Instant problem solving&lt;/span&gt;. It’s enough one person to ask another one about some issue to see insightful discussion emerging virtually instantly. You don’t need to think whether PM should join since he’s here and he joins as soon as subject appears interesting for him. Solving problems as you go is much more efficient.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Communication improvement.&lt;/span&gt; Communication issues are probably number one issue when it comes to visiting dead-ends, doing the same job twice or banging the wall hard with your head. When I think how much effort is wasted just because a couple of people didn’t talk with each other I believe every method which improves communication is worth considering and most of them are worth implementing. Co-locating people is one the most efficient choices here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Reducing number of meetings.&lt;/span&gt; Many meetings aren’t even needed. However they’re scheduled because they’re considered as the easiest way of communication between more than two people from different rooms. Remove walls and you’ll automatically remove many meetings. People will have more time to do the real work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Atmosphere building.&lt;/span&gt; Try to cheer up person who sit next to you. Tell a joke or something. Succeeded? Great. Now do the same with the person sitting on other floor. It takes walking and other tiring physical activities. It’s harder. You won’t do it so often.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    Getting to know people.&lt;/span&gt; You’ll know better a person after sitting with her in one room for a month than after working in different locations for a year.&lt;br /&gt;&lt;br /&gt;And yes, I believe these compensate reduced productivity and happiness. Actually not only compensate but add more too. Net value is positive. That’s why co-location rules.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-8705538426893570313?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/8705538426893570313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/co-location-rules.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8705538426893570313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8705538426893570313'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/co-location-rules.html' title='Co-location Rules!'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_w55opxuxeX8/SvRxjW3-3JI/AAAAAAAAEWU/MF0VA82FLog/s72-c/communication.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-7694955243715128374</id><published>2009-11-03T18:50:00.001+01:00</published><updated>2009-11-03T18:53:39.371+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>The Kanban Story: First Issues</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;So &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-initial-methodology.html"&gt;we were doing great&lt;/a&gt;, everyone was happy and we were delivering on time on budget and on scope. Except it wasn’t exactly how things really looked like.&lt;br /&gt;&lt;br /&gt;First two projects were late. Not much but still. It was expected since these were our first estimates in the team and at that time we decided not to do anything about that yet. Slips were reasonably small, which was a good sign when we talk about our developers’ estimation skills. Nothing to be worried about.&lt;br /&gt;&lt;br /&gt;Another issue however appeared to be a real pain in the ass. One of applications got stuck somewhere in the middle of first iteration of tests. It looked like there was always something more important to do. Everyone was doing high-priority things and the application wasn’t touched even with a stick. There was no mechanism which would add an incentive to finish things and not leave even less-important tasks for later.&lt;br /&gt;&lt;br /&gt;We also had a problem with our Product Owner. The guy was trying to catch many parallel threads and organize team’s work but unfortunately he was pushing in a bit too many new things. At the same time he was losing some of nice ideas on the way. Before some of them could be implemented guy was coming back from another meeting with a client bringing new, better and higher-priority tasks and the old ones were fading into oblivion. For those of you who can’t wait to ask who this crappy Product Owner was the answer is: yes, it was me.&lt;br /&gt;&lt;br /&gt;A general conclusion was we need some more organization not at project level but at team level. Something which would help us finishing things and limit chaos generated by rapidly changing business environment. Specific of our team was we were doing a number of very small projects simultaneously so coordinating these projects was crucial to avoid falling into chaos.&lt;br /&gt;&lt;br /&gt;We were about to do first process improvements...&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story.html"&gt;the whole story&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-7694955243715128374?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/7694955243715128374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-first-issues.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7694955243715128374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7694955243715128374'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/11/kanban-story-first-issues.html' title='The Kanban Story: First Issues'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-6253886828482883046</id><published>2009-10-30T20:06:00.003+01:00</published><updated>2009-10-30T20:31:18.178+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yammer'/><category scheme='http://www.blogger.com/atom/ns#' term='social media'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Social Project Management Bullshit</title><content type='html'>Level of buzz on &lt;a href="http://pmstudent.com/managing-virtual-teams-collaboration-demonstration/"&gt;using social media in project management&lt;/a&gt; and/or software development keeps on high levels for some time already. Social media this and social media that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Social Media&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don’t get me wrong I’m not trying to say that social media is bad in general. Since I’m a blogger I would be a hypocrite, wouldn’t I? I see a value of social media while I’m trying to build community around this blog, meet new people and get engaged in discussions. That’s why I have &lt;a href="http://twitter.com/pawelbrodzinski"&gt;Twitter account&lt;/a&gt; even though I’m not a big fan of the tool. I don’t treat Facebook account as a place to connect with people I know from professional life – it’s rather LinkedIn which works this way for me. I’m regular reader of a series of blogs and I’m pretty active on a couple of mailing lists, which is a kind of pre-social media.&lt;br /&gt;&lt;br /&gt;Now, I know all these tools can work. They can when it comes to &lt;a href="http://www.scottberkun.com/blog/2009/need-your-help-important/"&gt;promote a blog&lt;/a&gt; or a book or to meet new people or even to deal with virtual teams when you happen to work in one. Up to this point they are useful.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Social Media in Project Management&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But it doesn’t have to do much with project management. Twitter? Come on. Have you seen the way most people use it? Sharing private stories, which are sure interesting as long as they are from your close friends. Dropping links people find interesting, which is fine unless you realize there’s basically unlimited stream of interesting stories on the Web. Discussions which are followed only by a couple of people engaged in the discussion and for the whole rest that’s just noise.&lt;br /&gt;&lt;br /&gt;Blogging? It hasn’t really made me a better professional. It works the other way around. My everyday work has made me a better blogger since it brings me new stories every week and a lot of real-life arguments in different discussions happening around.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Cost of Social Media&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.brodzinski.com/2009/04/social-media-versus-project-management.html"&gt;All these tools take time to use them&lt;/a&gt;. Time taken from the real work you used to do. So yes, you can twit about your cat and weather and share all interesting links on your high school and yes, throw in news or two about the project you currently work on. This is basically a waste of time. You can read all these fascinating stuff which appears in the incoming stream, which also steals much of your time. You can update your status on every social media site you use and start your day with Facebook etc.&lt;br /&gt;&lt;br /&gt;The question is: how can you find any time to produce some code or manage some projects? And another one: how exactly does it help you in your work? I mean how many issues you have &lt;a href="http://blog.softwareprojects.org/why-you-should-use-twitter-style-communication-on-your-project-1347.html"&gt;solved through Twitter&lt;/a&gt; or Yammer or something you couldn’t solve faster without using them? You know using the pretty old tool called “conversation” or the no-so-more-modern one called “phone call” or with at least with this Google thing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reason (Not) to Use Social Media&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I know social media tools you can run a remote presentation or share some information within distributed team but be honest – how often do you &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; need them?&lt;br /&gt;&lt;br /&gt;How often they solve virtual problem which would be non-existent a few years ago when there was no social project management at all?&lt;br /&gt;&lt;br /&gt;How often social media tools are used just because they’re cool and trendy and it’s such a fun to use them at work and tell all people around how cool they are and how they help us in our work?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Social Media Bullshit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is just social media bullshit. It’s trendy so people jump on the bandwagon not thinking much whether it’s useful and productive or quite the opposite. The same happened with agile by the way. When you see agile-by-the-name-only which looks like crap and works like crap and brings handful of arguments for agile-haters it’s most likely implemented by people who thought it was so jazzy to be agile they just couldn’t stand and had to start it.&lt;br /&gt;&lt;br /&gt;This is exactly the same pattern you see among a specific type of developers who will dive deep into every new technology they read about just to try it, no matter if it does make any sense or not. When you recall people who wanted to do virtually everything with Ruby on Rails a couple of years ago you get my point.&lt;br /&gt;&lt;br /&gt;If you evangelize to use Yammer in your collocated team of 7 you just do basically the same. If the only reason for changing your toolbox is that you want to use trendy social media tools it is plain stupid.&lt;br /&gt;&lt;br /&gt;Of course there are &lt;a href="http://blog.softwareprojects.org/why-should-you-care-about-social-media-1999.html"&gt;situations where you need focus more on improving communication&lt;/a&gt;, e.g. virtual or distributed teams, but you also need to measure general impact not only on the team but on whole surroundings. Does switching from MS Word to Google Docs hurts other people outside of the team who happen not to have Google account? How about sharing documents with your customers? And besides that what’s so social about Google Docs?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Future of Social Media in Project Management&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Social media are fun. Social media can be useful. Social media can help tremendously in specific situations for any profession, project management and software development included. However they’re very often misused just because they’re fun in the first place.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://johnfmoore.wordpress.com/2009/10/18/lessons-learned-from-recent-social-experiments/"&gt;John Moore does some experiments with social tools&lt;/a&gt;, namely Twitter. I do mine. I believe Twitter is way more like blogs than like email. People start using it and then most of them abandon Twitter soon. There are loads of enthusiasts but it’s nowhere close to treat it like email which is already just another basic service we need, like phone calls. After all, usefulness of email is here because everyone uses it. You can’t say the same thing about any of social media yet. And it’s not coming anytime soon.&lt;br /&gt;&lt;br /&gt;This is the main reason why social media will be basically used for, well, social reasons. These are &lt;span style="font-style: italic;"&gt;social&lt;/span&gt; media after all. While &lt;a href="http://blog.brodzinski.com/2008/01/people-problem.html"&gt;projects are about people&lt;/a&gt; it isn’t the only thing you should care while running a project. Old-school methods, verbal communication being the most important one, work still exceptionally well in vast majority of cases. &lt;a href="http://herdingcats.typepad.com/my_weblog/2009/10/quote-of-the-day-9.html"&gt;Is it really worth to change it?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, since I hoped to cause some stir I hope to see your comments too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-6253886828482883046?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/6253886828482883046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/social-project-management-bullshit.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6253886828482883046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6253886828482883046'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/social-project-management-bullshit.html' title='Social Project Management Bullshit'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-3318949336062678182</id><published>2009-10-28T20:22:00.003+01:00</published><updated>2009-10-28T20:25:36.912+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software business'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='fixed price'/><title type='text'>Are Fixed-Price Projects Bad?</title><content type='html'>I’ve read recently a discussion about agile approach versus fixed-price projects. Several comments from the discussion:&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;Doing a project on fixed-price/fixed-time basis since it’s unfavorable for a client.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;If client insisted on fixed-price I wouldn’t sign the contract.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;As long as there are companies doing crappy [fixed-price] contracts clients will insist on fixed-everything.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;We believe that &lt;a href="http://www.scrumalliance.org/articles/70"&gt;fixed bids are a bad idea when it comes to software.&lt;/a&gt;&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;Whew, that was fun to read. I mean I love these kinds of strong opinions which omit plethora of real-life situations their authors (fortunately) have never faced.&lt;br /&gt;&lt;br /&gt;I wrote pretty long argument why these statements aren’t very wise (not to say some of them are plain stupid) but I deleted it. Basically I have only one conclusion: &lt;span style="font-weight: bold;"&gt;being orthodox is &lt;span style="font-style: italic;"&gt;always&lt;/span&gt; a bad thing&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-3318949336062678182?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/3318949336062678182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/are-fixed-price-projects-bad.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/3318949336062678182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/3318949336062678182'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/are-fixed-price-projects-bad.html' title='Are Fixed-Price Projects Bad?'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-93318765563965383</id><published>2009-10-26T18:48:00.005+01:00</published><updated>2009-10-26T18:56:46.684+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software estimation'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='requirements management'/><category scheme='http://www.blogger.com/atom/ns#' term='user story'/><title type='text'>The Kanban Story: Initial Methodology</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;You already know &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-beginning.html"&gt;how our team looked like and what concerns I had with implementing plain old Scrum&lt;/a&gt;. You also know we chose “take this from here and take that from there” kind of approach to running our projects. Our base method was Scrum but we were far, far away from accepting it the orthodox way.&lt;br /&gt;&lt;br /&gt;What we finally agreed on within the team can be described in several rules:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.    Planning&lt;/span&gt;&lt;br /&gt;For each application at the beginning we were deciding what we want to see there in the next version. We were trying to limit a number of features but didn’t set any limits how long development should take. The longest cycle was something between three and four weeks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.    Requirements&lt;/span&gt;&lt;br /&gt;When we’d known what we wanted to do we were creating user stories and non-functional requirements. Each session took whole team, even when someone wasn’t going to develop that specific application. As it usually happens the scope was being changed as we discussed different aspects of planned work. We were adding (more often) or cutting off (less often) features. We were building a coarse-grained architecture as we discussed non-functional requirements. At the end of the day we had a whiteboard full of stories which were a starting point for development.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.    Tasks&lt;/span&gt;&lt;br /&gt;Since user stories were rather big we were splitting them to smaller pieces – development tasks. This was changing view from feature-wise to code-wise. Development tasks were intended as small pieces of work (possibly not bigger than 16-hour long) which were a complete wholes from a developer’s point of view. Ideally a single user story should have several tasks connected to it and single development task should be connected with only one user story or non-functional requirement. It wasn’t a strict rule however and sometimes we had many-to-many relation since specific changes in architecture (single development task) were affecting many usage scenarios (many user stories). Development tasks should make as much sense as possible for developers so they were defined by developers themselves and by those who were going to do the job. Tasks were stored in a system which was used company-wide.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.    Estimation&lt;/span&gt;&lt;br /&gt;At the very beginning we had no strict deadlines but we were estimating anyway. There were two goals: learn to estimate better when there aren’t huge consequences for being wrong and getting into a habit of estimating all of planned work. Our estimates were done against developer tasks, not user stories. The main reason why we went this way was that tasks were smaller so estimates naturally were better than they would be if we did them against user stories. A specific, pretty non-agile, thing we were doing with estimation was a rule of estimating each task by a developer who would be doing it. More on this in one of future posts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.    Measuring progress and work done&lt;/span&gt;&lt;br /&gt;Current progress could be verified by checking actual state of tasks connected with a specific app. Nothing fancy here. The thing which was important here was writing down how much time it took to complete the task. When completed each task had two values – estimated time needed to complete the task and time it really took to do it. At the end of the day we knew how much our estimates were flawed. The important thing here was official announcement that no one is going to be punished in any way for poor estimates.&lt;br /&gt;&lt;br /&gt;That was pretty much all. &lt;span style="font-weight: bold;"&gt;No stand-ups&lt;/span&gt; since we were all sitting in one room and we discussed issues and work progress whenever someone felt like it. &lt;span style="font-weight: bold;"&gt;No Scrum Master&lt;/span&gt; since, well, we weren’t doing sprints and within specific project things were rather self-organized. A kind of &lt;span style="font-weight: bold;"&gt;Product Owner emerged&lt;/span&gt;, impersonated by me, as we needed a connector between constantly changing business environment and the team working on different projects. You could say we needed one to bring some chaos to our work which would be equally true.&lt;br /&gt;&lt;br /&gt;We were going to build a few small projects that way. At the same time we were prepared to improve the way we create our software as soon as notice flaws and find a way to fix them.&lt;br /&gt;&lt;br /&gt;Keep an eye on the whole &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story.html"&gt;Kanban Story&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-93318765563965383?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/93318765563965383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story-initial-methodology.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/93318765563965383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/93318765563965383'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story-initial-methodology.html' title='The Kanban Story: Initial Methodology'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2338657389638324017</id><published>2009-10-23T17:46:00.000+02:00</published><updated>2009-10-23T18:52:02.362+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guest post'/><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='richard revis'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><title type='text'>Setting Milestones in Start-Up</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://theplanis.com/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 272px; height: 50px;" src="http://theplanis.com/img/logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;This is a guest post from Richard Revis who is one-man army standing behind &lt;a href="http://theplanis.com/"&gt;The Plan Is&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Which milestones have to be on your start-up plan?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm a project manager, so when I decided to start a new company the first thing I did was to draw up a plan.&lt;br /&gt;&lt;br /&gt;Not everyone agrees that this is a good idea. The arguments against planning are numerous, and the biggest one is that in a start up things change so fast that a plan will be out of date before you get to day 2.&lt;br /&gt;&lt;br /&gt;My own experience over the last two months has been that change is rapid and continuous, however the time I spent planning was not wasted as I am still working from the original plan with some minor updates. The key was to pick good milestones to aim for.&lt;br /&gt;&lt;br /&gt;There are two types of milestones essential to any plan:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- Input milestones&lt;/span&gt;; these are things you do that reflect effort on your part, tasks like getting a website up and running, writing articles and technical milestones such as feature availability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- Result milestones&lt;/span&gt;; these are outcomes of your work such as website traffic and beta sign ups. These show you how well the work being done is turning into customers, sales and money.&lt;br /&gt;&lt;br /&gt;Only result milestones matter in the long run, however if you don't hit any input milestones there won't be any results. This is why both have a place on the plan. Input milestones drive you to get stuff done and keep you working hard. If you aren't hitting them you have a performance problem that needs to be fixed.&lt;br /&gt;&lt;br /&gt;In contrast result milestones are valuable because they tell you if your plan is a good one. If you are missing your result milestones then you need to know as that lets you change your input milestones to ones that will help you get the results you need to stay in business.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How do you pick good milestones?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The right milestones vary a lot by circumstance, however all your result milestones can be reverse engineered from one date - the day that you will run out of money. The most important thing on the plan is that by this 'out of money day' your income is larger than your expenses.&lt;br /&gt;&lt;br /&gt;My own result milestones, such as customer numbers, sign ups, website hits, and anything else which I can't control, are a guess based on data about typical conversion rates. For example a 1% website visitor conversion rate is normal for my industry, so my milestone is based around 100 times break even sales. Where data is bad or missing I have taken a guess and will update it when I find out how things really work. The milestone won't go away, but some of the details might change.&lt;br /&gt;&lt;br /&gt;Input milestones are even more variable and will depend on your project, however it helps if they are enablers for results. For example 'website up and running' is a good input milestone because it is required for you to be able to achieve your 'first website visitor' result milestone.&lt;br /&gt;&lt;br /&gt;The input milestones for my company are very high level and look like most normal development road maps. For example you would see entries such as starting open beta and implementing one customer requested feature.  These are spaced out about twice per month, so that I always have a goal in close proximity. Knowing I have to tell my advisers which milestones I have reached every month really pushes me to keep working consistently.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w55opxuxeX8/SuBoKBfBLkI/AAAAAAAAEVU/iQjNATCZS2Y/s1600-h/milestones.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://4.bp.blogspot.com/_w55opxuxeX8/SuBoKBfBLkI/AAAAAAAAEVU/iQjNATCZS2Y/s400/milestones.gif" alt="" id="BLOGGER_PHOTO_ID_5395426874996371010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How detailed should my milestones be?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The goal is to have a plan to measure yourself against, not an itinerary of the next six to twelve months! By keeping it high level and more adding detail one month in advance you have the advantage of knowing where you are going without boxing yourself into a losing strategy or having to throw the plan away.&lt;br /&gt;&lt;br /&gt;This will also help keep your plan more realistic, as you can tailor the exact nature of the milestone to the circumstances at the time. There's not much point in adding milestones to your plan that can't be met.&lt;br /&gt;&lt;br /&gt;An example of the milestones I have been working to can be seen in the accompanying table. One is still ongoing but I'm pretty happy with how things are progressing so far.&lt;br /&gt;&lt;br /&gt;The minor changes to my plan that I mentioned at the start of this article have all been caused by too much detail. The exact features delivered to beta customers were not important so changing one for another didn't matter, however the overall milestone was critical to the company.&lt;br /&gt;&lt;br /&gt;Having a plan is about helping you and the people you work with know where you are and where you are going. Selecting good milestones can make the difference between the plan being useful and a waste of your time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;About the Author:&lt;br /&gt;&lt;br /&gt;Richard Revis has run technology development projects involving everything from iPhones up to front line fighter jets. He is currently Project Director at &lt;a href="http://theplanis.com/"&gt;The Plan Is&lt;/a&gt; where he is developing web applications that make it easier to plan fixed duration projects. He writes regularly on project management and start ups at &lt;a href="http://theplanis.com/blog/"&gt;http://theplanis.com/blog&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/28351195-2338657389638324017?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2338657389638324017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/setting-milestones-in-start-up.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2338657389638324017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2338657389638324017'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/setting-milestones-in-start-up.html' title='Setting Milestones in Start-Up'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w55opxuxeX8/SuBoKBfBLkI/AAAAAAAAEVU/iQjNATCZS2Y/s72-c/milestones.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-3009331819803389902</id><published>2009-10-21T21:21:00.003+02:00</published><updated>2009-10-21T21:31:59.259+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='small project'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>The Kanban Story: The Beginning</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;So I found myself in this small team, part of a bigger company but working pretty independent of the rest of people here. Kind of start-upish environment. I knew every single person I worked with. Well, actually I’d chosen most of them and hired them here. The team was great (if you guys are reading this: no, it is not a reason to come for a raise) and personally I didn’t feel an urge to strictly control everything. On the other hand some order is always a nice thing.&lt;br /&gt;&lt;br /&gt;Initially I gave a lot of thought to project management practices and didn’t come with a solution I was happy with.&lt;br /&gt;&lt;br /&gt;I rejected PMP-based heavy-weight process which works for many projects in the organization. We didn’t need all the hassle they bring. At least not at that stage. A natural idea was Scrum which I didn’t like either. &lt;a href="http://blog.brodzinski.com/2009/03/agile-means-formal.html"&gt;Scrum is pretty formalized methodology&lt;/a&gt;  too and I wanted to avoid formalisms as much as possible. Actually with a lot of R&amp;amp;D work, pretty much prototyping and priorities changing all the time I needed something more flexible.&lt;br /&gt;&lt;br /&gt;I didn’t want to be time-boxed since we were planning to work simultaneously on a few independent small projects which would be hard to synchronize if we wanted to put them all in one team-wide sprint. Creating independent sprints for each of projects was a complete overkill since you don’t really need Scrum sprint for a one-and-a-half-person project.&lt;br /&gt;&lt;br /&gt;Actually I’d say we were at the point where we were too flexible for agile methods. Now, go burn me in flames for being iconoclast.&lt;br /&gt;&lt;br /&gt;After some discussions we collectively agreed we wouldn’t adopt Scrum as a whole but would use some of techniques used there and some other ideas we thought were good. In the next post in the series you’ll find more details how we initially organized our development.&lt;br /&gt;&lt;br /&gt;Keep an eye on &lt;a href="http://blog.brodzinski.com/2009/10/kanban-story.html"&gt;the whole story&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-3009331819803389902?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/3009331819803389902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story-beginning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/3009331819803389902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/3009331819803389902'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story-beginning.html' title='The Kanban Story: The Beginning'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-6852850859001926932</id><published>2009-10-20T21:12:00.008+02:00</published><updated>2009-11-16T19:09:08.647+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>The Kanban Story</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 133px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SGFVwtUl3XI/AAAAAAAAB4c/4WodXlo6080/documentation.jpg" alt="" border="0" /&gt;&lt;/a&gt;My current team works with Kanban for some time already. For all of us this is a kind of experiment on live organism. Ongoing experiment. That’s what led me to an idea of The Kanban Story – a set of posts which are a logbook of our cruise with Kanban.&lt;br /&gt;&lt;br /&gt;The story has its beginning and several chapters since some things already happened since we started our friendship with Kanban. There’s no end however. I don’t know what we’re going to end up with but I’m going to share with you all ups and downs which we encounter along the road.&lt;br /&gt;&lt;br /&gt;Hopefully this will become a kind of manual which helps with other Kanban implementations and generally with your work on projects and teams.&lt;br /&gt;&lt;br /&gt;Technically it would work as pretty much every series on this blog – I will publish new chapter of The Kanban Story every week or so and you’d be able to find links all of them which are already published below since this post will be updated every time new post in series appears on Software Project Management.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-beginning.html"&gt;The Beginning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.brodzinski.com/2009/10/kanban-story-initial-methodology.html"&gt;Initial Methodology&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.brodzinski.com/2009/11/kanban-story-first-issues.html"&gt;First Issues&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.brodzinski.com/2009/11/kanban-story-discovery-of-kanban.html"&gt;Discovery of Kanban&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.brodzinski.com/2009/11/kanban-story-implementation-of-kanban.html"&gt;Implementation of Kanban&lt;/a&gt;&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/28351195-6852850859001926932?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/6852850859001926932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6852850859001926932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6852850859001926932'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/kanban-story.html' title='The Kanban Story'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-8340756541968705176</id><published>2009-10-14T21:44:00.003+02:00</published><updated>2009-10-14T21:48:42.277+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='team management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='personal development'/><title type='text'>Technical Leadership versus People Management: My Choice</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_w55opxuxeX8/Rp-9pNjcZuI/AAAAAAAAApk/QcEbmxYe1x4/decision.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 167px;" src="http://lh4.ggpht.com/_w55opxuxeX8/Rp-9pNjcZuI/AAAAAAAAApk/QcEbmxYe1x4/decision.jpg" alt="" border="0" /&gt;&lt;/a&gt;After last article about choosing between technical and managerial paths I was asked a couple of times what was my choice.&lt;br /&gt;&lt;br /&gt;One of my friends who used to be my manager for some time once told a joke about me as a manger: “&lt;span style="font-style: italic;"&gt;Pawel was a mediocre developer so we made him a manager.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Basically, he was right.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I can’t say I was a great engineer. I can’t even say I was a candidate for one. This made my choice way easier. It was even easier when I realized I really like managing people. It makes me genuinely happy to see happy people and work done at the same time.&lt;br /&gt;&lt;br /&gt;And yes, &lt;span style="font-weight: bold;"&gt;I sacrificed any technical expertise I had since I wasn’t able to catch up.&lt;/span&gt; I chose to spend any free time I had at work to learn to be a better manager than to keep my average technical skills.&lt;br /&gt;&lt;br /&gt;This is the way it works. &lt;span style="font-weight: bold;"&gt;You can’t do both.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I’m happy with my choice. People I worked with in the past are willing to join me in my new teams so I guess I do a decent job as a people manager. I can’t say for sure what kind of engineer I would be but I believe I made the right decision.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;When you make your own it would better be good since after some there’s no way back.&lt;/span&gt; The gap becomes too wide and you can’t just jump back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-8340756541968705176?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/8340756541968705176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/technical-leadership-versus-people.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8340756541968705176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8340756541968705176'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/technical-leadership-versus-people.html' title='Technical Leadership versus People Management: My Choice'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-4444125373966218258</id><published>2009-10-13T23:33:00.003+02:00</published><updated>2009-10-13T23:38:57.912+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='team management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='craftsmanship'/><category scheme='http://www.blogger.com/atom/ns#' term='personal development'/><title type='text'>Technical Leadership and People Management</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_w55opxuxeX8/Rp-9pNjcZuI/AAAAAAAAApk/QcEbmxYe1x4/decision.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 167px;" src="http://lh4.ggpht.com/_w55opxuxeX8/Rp-9pNjcZuI/AAAAAAAAApk/QcEbmxYe1x4/decision.jpg" alt="" border="0" /&gt;&lt;/a&gt;The other day I had a discussion about leadership and management. When we came to an argument that there’s no chance to advance to a position where you can facilitate leadership and management skills in discussed organization several people (from present and from past) automatically came to my mind. They all have the same problem which they may overlook.&lt;br /&gt;&lt;br /&gt;They all are (or were) great engineers. People you’d love to have on your team. But at some point of their careers they started to think about having their own teams, managing their own people. Hey, that’s natural career path for great engineers, isn’t it?&lt;br /&gt;&lt;br /&gt;Well, actually it is not.&lt;br /&gt;&lt;br /&gt;Do a simple exercise. Think who you consider as a great engineer, no matter if he’s a star book author or your colleague no one outside your company knows about. Now what do they do to pay the rent? I guess they are (surprise, surprise) engineers, tech leads, freelancers, independent consultants or entrepreneurs. &lt;span style="font-weight: bold;"&gt;I guess there are none who would be called a manager in the first place&lt;/span&gt;, even when they happen to do some managerial work from time to time.&lt;br /&gt;&lt;br /&gt;Why? Because these two paths are mutually exclusive. &lt;span style="font-weight: bold;"&gt;You can’t keep your technical expertise on respected level in the meantime, between performance review of your team member and 3-hour status meeting with your manager.&lt;/span&gt; You either keep your hands busy with writing code or you get disconnected with other developers out there.&lt;br /&gt;&lt;br /&gt;On the other hand &lt;span style="font-weight: bold;"&gt;what makes you a great engineer usually makes you a poor manager at the same time&lt;/span&gt;. If you spend all day long coding, you don’t have enough time for people in your team. And they do need your attention. They do much more often than you’d think. If you’re going to be a decent manager big part of your time will be reserved on managerial tasks. There won’t be enough time left to keep on technical track. Sorry.&lt;br /&gt;&lt;br /&gt;That’s why all these people who I thought of have to (or had to) make a decision which way they are (were) going to choose. Technical leadership path means most of the time you won’t have people to manage but you may be respected as an architect, designer, senior engineer. If you’re lucky enough you can even get one of these fancy business cards with title of Chief Scientist or Chief Guru or maybe just a simple Co-Owner.&lt;br /&gt;&lt;br /&gt;Managerial path on the other hand will make you feel lame during basically every technical discussion out there but yes, you will have people to manage. If you’re lucky, and I mean lucky, not competent, you’ll become VP or something.&lt;br /&gt;&lt;br /&gt;You have to choose. Or you had to some time ago. What’s your choice? What do you regret about it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-4444125373966218258?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/4444125373966218258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/technical-leadership-and-people.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/4444125373966218258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/4444125373966218258'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/technical-leadership-and-people.html' title='Technical Leadership and People Management'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2620897674111491677</id><published>2009-10-08T18:08:00.000+02:00</published><updated>2009-10-08T18:08:00.548+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='google analytics'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='gui design'/><title type='text'>Automatic Localization aka Fix It Again Tony</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SPT2Kh46iXI/AAAAAAAACIc/uqnd2lUPhf0/problem.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 195px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SPT2Kh46iXI/AAAAAAAACIc/uqnd2lUPhf0/problem.JPG" alt="" border="0" /&gt;&lt;/a&gt;Localization is a good thing. Giving people possibility to use an application in their own language is even better. I know it. My native language is Polish which is known by much less than 1% of people around the world so it’s never even a secondary language for application developed anywhere abroad. Fortunately I can live in this big scary IT world since I can deal with English if I try hard enough.&lt;br /&gt;&lt;br /&gt;However there are a lot of people who can’t or they just prefer to use the application which talks with the same language they used to say “mama” for the first time in their life. That’s why this whole localization thing is considered as important from time to time.&lt;br /&gt;&lt;br /&gt;And we come to the problem what to do once you have your localized GUI ready. Basically you don’t just want to have just another branch of resources to maintain, do you? You want to show your users a masterpiece you’ve created while working on localized version.&lt;br /&gt;&lt;br /&gt;So you automatically turn on localized version for each IP you identify as the one incoming from the country using this specific language.&lt;br /&gt;&lt;br /&gt;And this is plain stupid.&lt;br /&gt;&lt;br /&gt;Remember the &lt;a href="http://blog.brodzinski.com/2007/10/blogger-localization-issues.html"&gt;story of Blogger when I was trying to publish a blog post while being in Austria&lt;/a&gt;? They automatically switched the language which I definitely didn’t want them to do. Now I know Google Analytics has Polish GUI. How? They automatically switched it. Twice. Without even asking me whether I wanted it or not.&lt;br /&gt;&lt;br /&gt;Actually I didn’t. Why? Well, if you ask me what the hell “wskaznik odrzucen” is I can’t say anything more than you even though I &lt;span style="font-style: italic;"&gt;know&lt;/span&gt; Polish pretty well. I just prefer to stick with English terms I’ve already used to.&lt;br /&gt;&lt;br /&gt;Once I saw localized labels (which I didn’t understand) I instantly found settings just to find out the language is already set to US English. What the hell? Finally I got my English version back. Unfortunately last time Analytics greeted me once more with my native language. Hey, does anybody messed with my Analytics settings? Nope, I’ve just checked – the language is still set to US English. So… what the hell?&lt;br /&gt;&lt;br /&gt;This reminds me a story why there’s no Fiat, which is one of the biggest Europe car manufacturers, in the US. They started with poor quality cars so the company name quickly became an acronym for &lt;a href="http://www.newser.com/story/57710/fiat-has-long-shed-fix-it-again-tony-reputation.html"&gt;Fix It Again Tony&lt;/a&gt; and finally they abandoned US market deciding the bad opinions are unfixable. Most likely it won’t happen again with Google but sometimes they try so very hard to repeat Fiat way.&lt;br /&gt;&lt;br /&gt;A much better choice is to display a message “&lt;span style="font-style: italic;"&gt;Hey, now we have brand new English version of our app. If you want to use it click OK, otherwise click cancel.&lt;/span&gt;” I can even live with seeing the message a couple of times before finally it baggers off as far as no one is going to automatically change languages of my apps. This is by the way the option which was chosen by Facebook when they were inviting Polish version of their site. I stuck with English one but somehow staying with the old option didn’t forced me to write a rant about that, which is a good thing I guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-2620897674111491677?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2620897674111491677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/automatic-localization-aka-fix-it-again.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2620897674111491677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2620897674111491677'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/automatic-localization-aka-fix-it-again.html' title='Automatic Localization aka Fix It Again Tony'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-656558577625878164</id><published>2009-10-05T20:29:00.004+02:00</published><updated>2009-10-05T20:44:35.004+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='usability issues'/><title type='text'>Keyboard Shortcuts in Web Applications</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w55opxuxeX8/Sso-cOayNII/AAAAAAAAEUc/KQphdroJkIc/s1600-h/shortcut.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 125px;" src="http://3.bp.blogspot.com/_w55opxuxeX8/Sso-cOayNII/AAAAAAAAEUc/KQphdroJkIc/s320/shortcut.jpg" alt="" id="BLOGGER_PHOTO_ID_5389188558729917570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What are differences between modern web application and good old thick client we used back than before internet bubble came?&lt;br /&gt;&lt;br /&gt;One is responsiveness. Web applications generally suck when it comes to rapid response to user’s actions. Just today my friend told me how fast a time tracking app has become when he installed recently released &lt;a href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html"&gt;Google Chrome add-on for Internet Explorer&lt;/a&gt;. If it wasn’t a web app he wouldn’t touch the application with that level of responsiveness. Not even with a stick.&lt;br /&gt;&lt;br /&gt;What else? My call is usability. Web is still mouse-focused while most of old school thick clients are, or at least should be, keyboard-focused. The early web was all about navigating with mouse but that’s the old truth: &lt;a href="http://blog.brodzinski.com/2006/06/no-mouse-navigation.html"&gt;keyboard is faster&lt;/a&gt;. The web should just mimic keyboard-driven navigation from thick clients, shouldn’t it?&lt;br /&gt;&lt;br /&gt;Well, no. Not so fast. The problem is every web page works within some thick client – a web browser. Now, you can’t just use all these Alt+something or Ctrl+something since you don’t know which version of which browser your user launched.&lt;br /&gt;&lt;br /&gt;Yes, Ctrl+O opens a file and Ctrl+S saves a file pretty much everywhere. But you don’t really know what Alt+N does in my Firefox and in my Internet Explorer. And as far as shortcut isn’t intercepted by the browser it will be passed to a web application. Unfortunately you can’t know when it is and when it isn’t.&lt;br /&gt;&lt;br /&gt;The answer? I wish I had one which works every time but that’s not true. One great approach is the one used by Google Reader. They use characters and Shift+characters as their shortcuts. This doesn’t interfere with Alt+something or Ctrl+something used by browsers. Unfortunately this doesn’t work whenever you have a lot of text to be filled by the user since then you use letters and big letters to fill the text.&lt;br /&gt;&lt;br /&gt;Another option? Leave shortcuts alone but make standard &lt;a href="http://blog.brodzinski.com/2008/07/usability-issues-tab-order.html"&gt;tab-pedaling&lt;/a&gt; as intuitive as possible.&lt;br /&gt;&lt;br /&gt;Any other ideas how to solve the problem?&lt;br /&gt;&lt;br /&gt;On a side note: a little hiatus here was connected with deployment of &lt;a href="http://blog.brodzinski.com/2008/10/my-private-project.html"&gt;my private project&lt;/a&gt;. In other words: finally we have moved. There are glitches all over the place but the first service pack (term copyrighted by &lt;a href="http://headworx.slupik.com/"&gt;Szymon&lt;/a&gt;) is scheduled for the next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-656558577625878164?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/656558577625878164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/10/keyboard-shortcuts-in-web-applications.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/656558577625878164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/656558577625878164'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/10/keyboard-shortcuts-in-web-applications.html' title='Keyboard Shortcuts in Web Applications'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w55opxuxeX8/Sso-cOayNII/AAAAAAAAEUc/KQphdroJkIc/s72-c/shortcut.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-5332025378550781485</id><published>2009-09-22T19:07:00.001+02:00</published><updated>2009-09-22T19:07:00.392+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product management'/><category scheme='http://www.blogger.com/atom/ns#' term='consistency'/><category scheme='http://www.blogger.com/atom/ns#' term='work environment'/><category scheme='http://www.blogger.com/atom/ns#' term='software business'/><category scheme='http://www.blogger.com/atom/ns#' term='business plan'/><category scheme='http://www.blogger.com/atom/ns#' term='change'/><title type='text'>Change and Consistency: A Balancing Act</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w55opxuxeX8/Srjg3UbbDkI/AAAAAAAAESc/HyC1x68ufK8/s1600-h/balancing.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_w55opxuxeX8/Srjg3UbbDkI/AAAAAAAAESc/HyC1x68ufK8/s320/balancing.jpg" alt="" id="BLOGGER_PHOTO_ID_5384300595502583362" border="0" /&gt;&lt;/a&gt;For quite a few years already I’m lucky enough to have significant impact on a company, or a part of it, I work for. Being involved in strategy creation and then being a part of execution of this strategy gives pretty nice perspective – you know why some decisions are made and then you see what works, what doesn’t and what you do about that.&lt;br /&gt;&lt;br /&gt;It’s no different now and since we’re pretty close to start-up-like organization there are way less strings attached than usual. If I had to point strongest drivers for what we do here it would be &lt;span style="font-weight: bold;"&gt;&lt;a href="http://blog.brodzinski.com/2007/07/changing-business-model.html"&gt;change&lt;/a&gt; and &lt;a href="http://blog.brodzinski.com/2008/04/consistency-is-king.html"&gt;consistency&lt;/a&gt;&lt;/span&gt;. These two are always somewhere in a back of my head. And no, they aren’t mutually exclusive.&lt;br /&gt;&lt;br /&gt;The funny thing is I’ve already pointed both of them (see links above) as critical factors of success.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://alistair.cockburn.us/Notes+on+the+writing+of+the+agile+manifesto+-+there+is+no+center"&gt;&lt;span style="font-weight: bold;"&gt;Change&lt;/span&gt; is brought by the market itself&lt;/a&gt;. What you start with is wrong. Plan for it. Plan for change. It isn’t any different here. When our initial ideas appear to be flawed we either adjust them or abandon them. We look for opportunities which sometimes completely change our playground.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Consistency&lt;/span&gt;, on the other hand, is needed if you want to achieve any measurable success. It’s fine to switch business ideas two times a day. It’s a deadly threat to allow this approach to rule the development. Your &lt;a href="http://www.thousandtyone.com/blog/BuildersStoryTellersAndWhinersPart1.aspx"&gt;builders&lt;/a&gt; can’t switch focus 3 times a week in order to satisfy another great idea which will end up in trash in a week or so. Priorities can change but with no consistency along the way you’ll end up with everything started and nothing completed, which is such a nice description of failure.&lt;br /&gt;&lt;br /&gt;The key thing is to balance these two. On one hand you shall not allow to miss opportunities because of some code you actually work on, on the other you can’t kill you production cycle just because there are so many great ideas out there.&lt;br /&gt;&lt;br /&gt;I believe we deal with this balancing act pretty well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;We discuss new ideas very often but almost none of them get instantly into production.&lt;/span&gt;&lt;br /&gt;You can say it’s a kind of &lt;a href="http://blog.brodzinski.com/2006/11/context-switching.html"&gt;context switching&lt;/a&gt;, but at least it’s limited to design or architectural discussions. This builds confidence while we talk with customers because we &lt;span style="font-style: italic;"&gt;understand&lt;/span&gt; how we’re going to build what we’re talking about. At the same time, hopefully, this approach limits unnecessary job being done as things tend to change several times more before a target design is ready.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;We finish what we started.&lt;/span&gt;&lt;br /&gt;There’s no excuse for job being started and not being finished. Even when something becomes less important because of late change of business priorities we bring the code to “shippable” quality and then move on to the next most important thing on the list. This limits the worst kind of work-in-progress, one which would never be finished because it has so crappy that even when you needed this code once more you’d start writing it from a scratch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;We carefully set coarse-grained development plans.&lt;/span&gt;&lt;br /&gt;We incorporate as much features as possible into existing product instead of building quick-shot applications which are thrown away two months after creation. Specific features which are to be added changes a lot and backlog is rather capacious but in terms of product management we have no revolution – it’s a constant process of evolving to cover actual needs.&lt;br /&gt;&lt;br /&gt;And yes, sometimes when we come back from one or another business meeting there’s a very strong incentive to call “&lt;span style="font-style: italic;"&gt;hey, stop doing what you do now, here’s this great new idea which we earn zillions dollars on&lt;/span&gt;” but I’m happy we organized things in a way which basically doesn’t allow to do that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-5332025378550781485?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/5332025378550781485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/change-and-consistency-balancing-act.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/5332025378550781485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/5332025378550781485'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/change-and-consistency-balancing-act.html' title='Change and Consistency: A Balancing Act'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w55opxuxeX8/Srjg3UbbDkI/AAAAAAAAESc/HyC1x68ufK8/s72-c/balancing.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-8569402834892615264</id><published>2009-09-21T19:04:00.004+02:00</published><updated>2009-09-21T19:04:00.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guest post'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons learned'/><category scheme='http://www.blogger.com/atom/ns#' term='project closure'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='peter taylor'/><title type='text'>The Value of Lessons Learned: The Art of Good Project Closure</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cv3.coventrytelegraph.net/petertaylorblogpic.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 150px; height: 148px;" src="http://cv3.coventrytelegraph.net/petertaylorblogpic.jpg" alt="" border="0" /&gt;&lt;/a&gt;This is another guest post from Peter Taylor - &lt;a href="http://www.thelazyprojectmanager.com/"&gt;The Lazy Project Manager&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Either you have been missing something, or nothing has really been going on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;‘&lt;span style="font-style: italic;"&gt;As we know, there are known knowns; There are things we know we know. We also know there are known unknowns: That is to say we know there are some things we do not know. But there are also unknown unknowns: The ones we don't know we don't know&lt;/span&gt;’ Donald Rumsfeld (Department of Defence news briefing).&lt;br /&gt;&lt;br /&gt;That is one crazy set of words but actually there is a lot of sense in the whole thing. Here you are at the end of the project. It has been a success or, at the very least, is has not been a complete failure, and you are about to head off to the next project. But wait, do you really honestly know everything? Do you know what you don’t know? Well of course you don’t, you can’t possibly. So don’t fool yourself that you do!&lt;br /&gt;&lt;br /&gt;So what do you do about it? Well what you do about it is to do something about it – now is the time to conduct a retrospective of your project, a review, a considered and open activity that will allow you the opportunity to learn what it is you don’t yet know.&lt;br /&gt;&lt;br /&gt;Just as at the start of the project, remember ‘a brand shiny new project… at a point in time that is full of peace and love and general wellbeing between all parties involved’, well the end of the project is a special time as well. It is a time when project team members are far more likely to talk to you openly, equally and honestly. Therefore it is a time you should really focus some effort on to learn how to be more effective (and even more ‘Productively Lazy’) next time around.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Applying the ‘Productive Lazy’ approach&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Finish what you started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As the Mastermind question master says, ‘I’ve started and so I will finish’, and you should make sure that you do the same. Finish the project in a correct and complete manner. Avoid all of those normal pressures and temptations to head off on the next juicy project that is calling you to.&lt;br /&gt;&lt;br /&gt;Make the very most of this second opportunity of peace, love and harmony (hopefully) and learn everything that you can learn. It will be worth it I guarantee.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Know what you know&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start first with yourself. What do you ‘know’ about the project? Well a whole bunch of stuff that’s for sure, but what focus less on what you already knew at the start of the project and think more about what you have learnt new during the project.&lt;br /&gt;&lt;br /&gt;Much of what happened will have been processed, dealt with, handled through the reapplication of past experience or knowledge, but some will have not. You learn through each project, so consider what it is that you learnt this time.&lt;br /&gt;&lt;br /&gt;Now you know what you know and probably also know what you don’t know, gaps in your experience on the project, questions you can ask your team.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Find out what you don’t know&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now focus on the unknown unknowns. The ideal way to do this is to conduct a full retrospective, if you can’t do this then at least gather input from key members of your project team. One the best reference books for this Project Retrospectives by Norman L. Kerth (see references). I love the prime directive that Kerth governs his retrospectives by; Regardless of what we discover, we must understand and truly believe that everyone did the best job he or she could, given what was known at the time, his or her skills and abilities, the resources available, and the situation at hand.&lt;br /&gt;&lt;br /&gt;There are treasures out there, not one person knows all there is to know about the project, and certainly not you the project manager (you don’t honestly think your team told you everything that went on do you?).&lt;br /&gt;&lt;br /&gt;So go gold mining, there are nuggets of gold in ‘lessons learned’ or at least lessons to be learned if only we pay attention. At least one of your project team will tell you something that will aid you in the future, and let you be a little more productively lazy. And the best way to make this happen is to plan for it to happen, right back at the ‘thick’ front-end of the project, back at the very beginning.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ask what you now need to know&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of this retrospective process make sure that you also take the opportunity to ask questions that you want answering. Remember?  The things that you know what you don’t know, the gaps in your experience on the project, the questions should ask your team.&lt;br /&gt;&lt;br /&gt;Complete your knowledge by having an open and honest dialogue with the team. It may surprise them what you don’t know, and they will most doubt be pleased that they were able to help out during the project.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Learn the lessons to be learned&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OK, now let’s sum all this up. Carefully and slowly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;You know what you know.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;You also know what you don’t know – and received answers on the gaps in your knowledge hopefully.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;You now know what you didn’t know you knew, through feedback from the team, and other sources.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;•    &lt;/span&gt;And, through the retrospective you at least know a little more about what you didn’t know that you didn’t know – if the team have been very open with you.&lt;br /&gt;&lt;br /&gt;Simple isn’t it?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tell others what you now know&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And finally, don’t just sit on that knowledge. Share it out amongst everyone that could benefit from it.&lt;br /&gt;&lt;br /&gt;Lessons learned should be lessons shared, so don’t be mean, share it out!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w55opxuxeX8/SrNqr2TDuFI/AAAAAAAAERk/OXAdvoexlME/s1600-h/self+development.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 273px;" src="http://4.bp.blogspot.com/_w55opxuxeX8/SrNqr2TDuFI/AAAAAAAAERk/OXAdvoexlME/s400/self+development.JPG" alt="" id="BLOGGER_PHOTO_ID_5382763281180244050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;All the above can be summarised in this diagram. To move from unconscious incompetence to conscious incompetence, not knowing what you don’t know and just not caring, you need awareness – the retrospective can aid this awareness.&lt;br /&gt;&lt;br /&gt;To move from conscious incompetence to conscious competence, knowing what you don’t know but caring about that fact – again the retrospective can aid along with a learning plan based on the outputs.&lt;br /&gt;&lt;br /&gt;And finally, to move from conscious competence to unconscious competence – well just requires a lot of practice, so get to it!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A project manager’s tale of escape without cause&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A story, and yes, I am the project manager in question, much to my shame.&lt;br /&gt;&lt;br /&gt;For the most part I have really enjoyed all of my projects. That is not to say that there haven’t been challenges over the years; high points and low points, moments when I felt that I had had enough but equally good moments that I wanted to never end.&lt;br /&gt;&lt;br /&gt;This tale is of a project within a manufacturing company that had a lot more low points than high points.&lt;br /&gt;&lt;br /&gt;The project was ‘challenging’ (and it seemed close to impossible at times), the steering committee were ‘difficult (to say the least), the project team were ‘mixed’ in their interest and capability (to put it mildly), and I was a long way from home. The entire experience really tested me as a project manager pretty much from day one, but I felt that I had acquitted myself in a good way. In a good way until the very end of the project that is.&lt;br /&gt;&lt;br /&gt;So, to quickly move to the point of this story, the project reached a conclusion. The deliverables were delivered and the company reluctantly agreed to signing off the project. The job was done.&lt;br /&gt;&lt;br /&gt;Except it wasn’t.&lt;br /&gt;&lt;br /&gt;I had had quite a hellish experience over the months and just wanted it all to come to an end. And so, when that final steering committee meeting was done and the minutes signed off, I have to admit that I almost ran to my car, jumped in and tore out of the car park deliriously happy. The motorway home called to me and, with some rock music blaring out of the speakers, I decided to right this one off to history and to never return again.&lt;br /&gt;&lt;br /&gt;I was one happy project manager.&lt;br /&gt;&lt;br /&gt;Then I was asked to go back and to a post-project review!&lt;br /&gt;&lt;br /&gt;My heart sank and I began to make up 101 reasons why I was too busy, too sick, too mentally incompetent, too ‘about to go on a spontaneous holiday’, and too ‘I just don’t want to go back’, in order to, well, avoid going back.&lt;br /&gt;&lt;br /&gt;I didn’t go back. Someone else did.&lt;br /&gt;&lt;br /&gt;And so that was that.&lt;br /&gt;&lt;br /&gt;Except it wasn’t. My inquisitiveness eventually got the better of me and I sat down with the other project manager, sometime after the review, and I discovered many things that I had never known about my own project.&lt;br /&gt;&lt;br /&gt;I discovered (obviously through this other project manager) that the company had had a very bad experience in a similar previous project and, as a result, they were nervous about this project, very nervous indeed.&lt;br /&gt;&lt;br /&gt;I discovered that the project had been strongly championed by one of the steering members despite a lot of resistance from others in the business and a lot, their reputation and possibly career for example, depended upon a successful outcome.&lt;br /&gt;&lt;br /&gt;I discovered that two people on the project team had, shall we say, personal ‘issues’ during the early part of the project and this led to some residual tension between them.&lt;br /&gt;&lt;br /&gt;I discovered that there was felt to be a ‘black hole’ in one particular business area where the purpose and benefit, the justification, of the project was never explained.&lt;br /&gt;&lt;br /&gt;I discovered that they thought that I was a very strong and competent project manager, but one that focused perhaps not enough on the human side of the project.&lt;br /&gt;&lt;br /&gt;And I personally discovered, and I did not have to be told this by my project management colleague, that I had missed a great deal by leaving the project before its final conclusion.&lt;br /&gt;&lt;br /&gt;I personally discovered that I should have stayed for the full and proper closure, I would have learnt so much.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A final comment&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These days I always try to complete some form of project retrospective, however light, whatever is practical – the benefits are many  (and they can be a great deal of fun as well).&lt;br /&gt;&lt;br /&gt;'&lt;span style="font-style: italic;"&gt;Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something.&lt;/span&gt;' Robert Heinlein (1907 - 1988)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;About the Author:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Despite his title of 'The Lazy Project Manager’, Peter Taylor is in fact a dynamic and commercially astute professional who has achieved notable success in project management, program management and the professional development of project managers: latterly as Head of Projects at a global supplier of performance system solutions, and currently as Director of a PMO at Siemens PLM Software, a global supplier of product lifecycle management solutions. He is an accomplished communicator and leader; always adopting a proactive and business-focused approach.  He is also the author of ‘The Lazy Project Manager’ book (Infinite Ideas 2009) – for more information - &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.blogger.com/www.thelazyprojectmanager.com"&gt;www.thelazyprojectmanager.com&lt;/a&gt;&lt;span style="font-style: italic;"&gt;  - you can also subscribe to a series of free podcasts on iTunes (The Lazy Project Manager).&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-8569402834892615264?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/8569402834892615264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/value-of-lessons-learned-art-of-good.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8569402834892615264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8569402834892615264'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/value-of-lessons-learned-art-of-good.html' title='The Value of Lessons Learned: The Art of Good Project Closure'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w55opxuxeX8/SrNqr2TDuFI/AAAAAAAAERk/OXAdvoexlME/s72-c/self+development.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-4652428061612113360</id><published>2009-09-18T19:14:00.001+02:00</published><updated>2009-10-06T08:37:53.256+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='estimation'/><title type='text'>Random Thoughts on Estimation</title><content type='html'>A lot of discussion on &lt;a href="http://blog.brodzinski.com/search/label/estimation"&gt;estimation&lt;/a&gt; recently. A lot of great arguments but a lot of good old mistakes we’ve already went through. This brought me to a few random thoughts on estimating techniques.&lt;br /&gt;&lt;br /&gt;&lt;ol style="font-weight: bold;"&gt;&lt;li&gt; Estimation technique which involves discussion between different people is better than one which just simply uses their estimates as input.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Using factual recorded historical data is better than basing just on experience.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Smaller tasks can be estimated way better than big chunks of work.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Every estimate starts with some kind of guess at the very beginning.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;I know these should be obvious yet I’m surprised how often people:&lt;br /&gt;-    forget about them&lt;br /&gt;-    deny these are true&lt;br /&gt;&lt;br /&gt;Then they head towards &lt;a href="http://blog.brodzinski.com/2009/02/whats-use-of-wild-guesses-instead-of.html"&gt;wild guesses&lt;/a&gt; with some &lt;a href="http://www.scottberkun.com/blog/2009/magic-numbers-of-project-management/"&gt;magic number&lt;/a&gt; applied, which may have some sense but not when used instead of real estimation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-4652428061612113360?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/4652428061612113360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/random-thoughts-on-estimation.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/4652428061612113360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/4652428061612113360'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/random-thoughts-on-estimation.html' title='Random Thoughts on Estimation'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2258223308013686635</id><published>2009-09-15T19:30:00.000+02:00</published><updated>2009-09-15T19:30:00.236+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Building a House Agile Way</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w55opxuxeX8/Sq-0jOHiT4I/AAAAAAAAERc/D5zEmM6MELE/s1600-h/house+building.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 147px;" src="http://4.bp.blogspot.com/_w55opxuxeX8/Sq-0jOHiT4I/AAAAAAAAERc/D5zEmM6MELE/s320/house+building.JPG" alt="" id="BLOGGER_PHOTO_ID_5381718596909158274" border="0" /&gt;&lt;/a&gt;Some time ago I wrote a series of posts where I compared specifics of my &lt;a href="http://blog.brodzinski.com/2008/10/my-private-project.html"&gt;private project of building a house&lt;/a&gt; with my professional experience in project management. It would be hard to say these situations look the same although usually the same mechanics applies.&lt;br /&gt;&lt;br /&gt;Talking about that, one thought struck me some time ago. When you build a house for yourself it’s most likely a purely agile project. I haven’t yet heard about investor who hasn’t changed anything in their house during its construction. Of course we rarely change outside walls etc, but inside a house there are loads of changes.&lt;br /&gt;&lt;br /&gt;That’s pretty much expected since at the beginning no one really thinks where they would place furniture and what kind of furniture would even be there. We don’t think where exactly lamps or power plugs should be. These are details which we leave for later. Hey, who cares where exactly would save button be placed on an edit form while we don’t even know what kind of data would be edited there?&lt;br /&gt;&lt;br /&gt;So agile, isn’t it? At the beginning just architecture design and then, through each iteration, planning in details what’s going to be done in short term. Embracing change. Actually while not every company which were working on my house were excited as I (actually my wife most of the time) was changing conceptions, I can say virtually every single one embraced change.&lt;br /&gt;&lt;br /&gt;And charged for that.&lt;br /&gt;&lt;br /&gt;And I didn’t really object.&lt;br /&gt;&lt;br /&gt;Actually somehow that’s natural in construction world. Guys get plans. They build according to plans. If you have better idea and they have to, well, ctrl+x and ctrl+v a wall or something you’ll know they did the job twice when it comes to pay.&lt;br /&gt;&lt;br /&gt;I don’t complain. If I told them earlier they’ll put it in the right place at the beginning. Except until I saw the first version I couldn’t tell I wouldn’t like it. What a pity walls are so hard to refactor.&lt;br /&gt;&lt;br /&gt;This brings me to a point. Being on a client side &lt;span style="font-weight: bold;"&gt;I treat the agile way of building a house as a mixed blessing.&lt;/span&gt; OK, I admit &lt;span style="font-weight: bold;"&gt;I can’t imagine building a house according to BDUF specification with no changes at all&lt;/span&gt; so agile is a natural choice here. On the other hand it doesn’t come for free. I pay for each change which generates additional work. In other words I can’t define how big my budget should be to achieve functionality I want since I can’t say how many changes my vendors would have to embrace and how many iterations it would take to satisfy my (beloved wife’s) expectations.&lt;br /&gt;&lt;br /&gt;Unfortunately shit happens and I actually had a fixed budget for the project, which in my case means I’ll run out of money before everything is done. &lt;span style="font-weight: bold;"&gt;And this is the place where agile sucks.&lt;/span&gt; Ten months ago a construction company came and said they would adjust reinforcement for this amount of money and they would change bricks to better type for that amount of money. And I was all “&lt;span style="font-style: italic;"&gt;yeah, we should do it since we’ll have more freedom in arranging inside walls and the house will be warmer.&lt;/span&gt;” With this huge stack of money we had it didn’t look like a big deal anyway.&lt;br /&gt;&lt;br /&gt;And no, I couldn’t plan how much exactly I needed for the rest of the project. I didn’t have all the details to be able to do that. You know, other way it would be old-school up-front design project, not the agile one.&lt;br /&gt;&lt;br /&gt;Having said that, &lt;span style="font-weight: bold;"&gt;while building a house agile approach is the best possible option.&lt;/span&gt; One just needs to understand advantages and disadvantages of choosing this path.&lt;br /&gt;&lt;br /&gt;One more thought for the end: I wish IT business were as aware of costs connected with change as construction business is (even though &lt;a href="http://www.betterprojects.net/2009/09/architecture-in-physical-world.html"&gt;it's far from perfect&lt;/a&gt; there too).&lt;br /&gt;&lt;br /&gt;PS. If you happen to visit me and would be curious where the heck a balustrade is or is this some modern way of finishing off stairs the answers is: this is the price of agile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-2258223308013686635?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2258223308013686635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/building-house-agile-way.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2258223308013686635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2258223308013686635'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/building-house-agile-way.html' title='Building a House Agile Way'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w55opxuxeX8/Sq-0jOHiT4I/AAAAAAAAERc/D5zEmM6MELE/s72-c/house+building.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-7496903692026003778</id><published>2009-09-09T17:43:00.000+02:00</published><updated>2009-09-09T17:43:00.323+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management software'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='mockupscreens'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='gui design'/><title type='text'>MockupScreens Review</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mockupscreens.com/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 121px; height: 65px;" src="http://2.bp.blogspot.com/_w55opxuxeX8/Sqe1FFnUFcI/AAAAAAAAEP0/iu9CckezkX8/s320/mockupscreens.png" alt="" id="BLOGGER_PHOTO_ID_5379467378928391618" border="0" /&gt;&lt;/a&gt;What’s your favorite tool to create a GUI design? Mine is whiteboard and a marker. Unfortunately it has some disadvantages. While windows and controls can be created rapidly whiteboard leaves you with pretty rough design. You don’t really think about specific positioning of all buttons and lists. You don’t think whether labels are fine or are they too long. You don’t think how a window changes when you display new controls. It’s all done when first working prototype is ready.&lt;br /&gt;&lt;br /&gt;If you try to create clean GUI design you usually need some kind of tool for that. Usually &lt;a href="http://en.wikipedia.org/wiki/Integrated_development_environment"&gt;IDE&lt;/a&gt; allows you to create clean sketch of GUI. A problem is that a person who should do the job rarely uses, and basically never needs other function of, IDE. That’s where &lt;a href="http://mockupscreens.com/"&gt;MockupScreens&lt;/a&gt; appears.&lt;br /&gt;&lt;br /&gt;MockupScreens is pretty light-weight application which allows you to prepare GUI design. You can prepare multiple screens using all basic controls and you can add some flow between these screens mapping actions (screen changing) with specific controls.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Strengths&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Easy to use&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MockupScreens is very easy to use. You need no documentation whatsoever to prepare your first design. You don’t have fancy controls at hand – just basic shapes, but that’s exactly what you need. You don’t try to polish your app – you’re building first version of your GUI. You definitely don’t need bells and whistles now. What you get instead is simplicity.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w55opxuxeX8/Sqe1NfHS_ZI/AAAAAAAAEP8/1rW5q105tWA/s1600-h/mockupscreens+example+1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 367px;" src="http://1.bp.blogspot.com/_w55opxuxeX8/Sqe1NfHS_ZI/AAAAAAAAEP8/1rW5q105tWA/s400/mockupscreens+example+1.JPG" alt="" id="BLOGGER_PHOTO_ID_5379467523212377490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gets the job done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It’s hard for me to get excited about this application. Building GUI sketches isn’t dramatically creative kind of task, you know. Anyway the big strength of MockupScreens is that it gets the job done. Not much more but nothing less than you’d need. Actually I always rant about lack of some features and this time somehow I don’t feel this urge. Strange.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clickable prototype&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A nice feature, especially for presentations, is you can create a usage flow of application you design mapping buttons on one screen with another. This way creating a clickable GUI prototype is very easy. This can bring you some ideas how you can improve your GUI. You can act like you heave working application with no development work whatsoever. Don’t show MockupScreens to your sales people.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Black and white screen mode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This feature was definitely proposed by one of the engineers. You can switch a design between desktop app, web app and black and white mode. The last one doesn’t try to imitate standard controls look but presents very basic design. This way business people wouldn’t think you have your app ready as they could think looking at clickable GUI prototype.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w55opxuxeX8/Sqe1OBbdlbI/AAAAAAAAEQE/51_h9_oMznM/s1600-h/mockupscreens+example+2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 299px;" src="http://3.bp.blogspot.com/_w55opxuxeX8/Sqe1OBbdlbI/AAAAAAAAEQE/51_h9_oMznM/s400/mockupscreens+example+2.JPG" alt="" id="BLOGGER_PHOTO_ID_5379467532423763378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Weaknesses&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rendering speed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As you fill control options with data (labels, list elements etc) they’re automatically presented at your design screen. Unfortunately it’s slow. Oh so slow. It’s a bit frustrating when you try to fix a typo but actually a cursor is two characters after you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Main editing area&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I know I’m sick to &lt;a href="http://blog.brodzinski.com/2009/03/minimal-screen-resolution-for.html"&gt;work on 10,6 inch screen&lt;/a&gt; but this makes main editing area in MockupScreens pathetically small. There’s no rescaling feature either. This enforces heavy usage of both vertical and horizontal scrolls which I’m not very happy with. I guess this must be some kind of punishment or something.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Controls transparency&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Controls which are used in MockupScreens aren’t transparent where there should be. It leads you to situations when you put frame on your screen and it hides everything which was there before. You can deal with it using Visio-like “bring back” and “bring forward” options but hey frame should be, well, just a frame.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w55opxuxeX8/Sqe1OVJTPxI/AAAAAAAAEQM/fzyBYw1rmKE/s1600-h/mockupscreens+example+3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 138px;" src="http://2.bp.blogspot.com/_w55opxuxeX8/Sqe1OVJTPxI/AAAAAAAAEQM/fzyBYw1rmKE/s400/mockupscreens+example+3.JPG" alt="" id="BLOGGER_PHOTO_ID_5379467537716297490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actually the best summary of a review is already written in the first two strengths – MockupScreens is easy to use and gets the job done. It’s a nice alternative for IDE features for all folks who aren’t developers and don’t need (and don’t want) Eclipse or Visual Studio installed on their machines.&lt;br /&gt;&lt;br /&gt;As a test I created very simple design of one of web application we were recently working on and I have to say it was easier to present what I wanted to achieve with MockupScreens than with a drawing on a whiteboard. Basically what MockupScreens did was forcing me to put some order in my ideas how to arrange all controls and made me rethinking a bit whole GUI.&lt;br /&gt;&lt;br /&gt;Having said that a whiteboard is still my favorite tool for GUI design but I’d go for MockupScreens whenever I need something more detailed with rather precise controls positioning. Using the tool is also a good idea whenever you talk with business people or a customer – they don’t necessarily have to appreciate your drawing (lack of) talent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-7496903692026003778?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/7496903692026003778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/mockupscreens-review.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7496903692026003778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/7496903692026003778'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/mockupscreens-review.html' title='MockupScreens Review'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_w55opxuxeX8/Sqe1FFnUFcI/AAAAAAAAEP0/iu9CckezkX8/s72-c/mockupscreens.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-6523299795292372426</id><published>2009-09-07T18:44:00.000+02:00</published><updated>2009-09-07T18:44:00.448+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='document template'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Why I Hate Document Templates</title><content type='html'>This is a rant. Sorry.&lt;br /&gt;&lt;br /&gt;The other day I opened a document describing some technical details we were waiting for. Ten pages. Whew, should be pretty much of content. Well, not at all. The first line of actual content was on page number 9 (yes, &lt;span style="font-style: italic;"&gt;nine&lt;/span&gt;). On pages 1 to 8 you could find a lot of unimportant and uninteresting stuff which no one really cared about: table of contents with every piece set at page 4, preface which had neither been filled nor deleted, empty changes summary on page 4, some disclaimers and a bonus empty page. At the end there were finally one and a half pages of &lt;span style="font-style: italic;"&gt;real&lt;/span&gt; content. Actually printing anything except of pages 1, 9 and 10 of the document would be a crime against forests and should be cruelly punished.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w55opxuxeX8/SqUOX0K6ALI/AAAAAAAAEPU/ykrvjK5u6nc/s1600-h/document+template.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 340px;" src="http://1.bp.blogspot.com/_w55opxuxeX8/SqUOX0K6ALI/AAAAAAAAEPU/ykrvjK5u6nc/s400/document+template.bmp" alt="" id="BLOGGER_PHOTO_ID_5378721132268093618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is just a basic example how standard document templates are done. If you need to write down a simple minutes of the meeting there’s of course a template which, while empty, is 6 pages long. What the hell? A short document with a few ideas thrown on brainstorming session? Well, can’t do without table of contents, review summary and preamble. What did you think? Less than 5 useless leading pages? No way!&lt;br /&gt;&lt;br /&gt;I usually end up with my own standard simple template: just title page and standard company headers and footers. I use it 9 times out of every 10 I need a template to start with. The funny thing is most of the time no one thinks this kind of template is even needed. And all these 10-page long (or longer) monsters are ready as soon as first set of templates is published. &lt;span style="font-weight: bold;"&gt;Too crappy to use them, too crappy to read them – just standard document templates.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And yes, the screen like above can be found in official documents of well-known, huge, global companies. So professional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-6523299795292372426?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/6523299795292372426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/why-i-hate-document-templates.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6523299795292372426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/6523299795292372426'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/why-i-hate-document-templates.html' title='Why I Hate Document Templates'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w55opxuxeX8/SqUOX0K6ALI/AAAAAAAAEPU/ykrvjK5u6nc/s72-c/document+template.bmp' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-8429360286494963690</id><published>2009-09-04T19:48:00.002+02:00</published><updated>2009-09-04T19:48:00.606+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software business'/><category scheme='http://www.blogger.com/atom/ns#' term='in-house software'/><category scheme='http://www.blogger.com/atom/ns#' term='buying software tools'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>What’s Wrong with Workflow Systems?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w55opxuxeX8/SqEdiLEfF0I/AAAAAAAAEPM/3QzK0H3BYAQ/s1600-h/workflow.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_w55opxuxeX8/SqEdiLEfF0I/AAAAAAAAEPM/3QzK0H3BYAQ/s320/workflow.JPG" alt="" id="BLOGGER_PHOTO_ID_5377611902981445442" border="0" /&gt;&lt;/a&gt;I recently realized that every company I worked for, except of one but it was so long ago no one can remember it anyway, developed and was selling their own proprietary workflow system. You know a kind where you can drag-and-drop some nodes and arrows, add users, actions and voila – the most complex business process is mapped.&lt;br /&gt;&lt;br /&gt;What’s so special about workflow systems that everyone develops their own? Well, it’s a kind of The Holy Grail of business applications. You now, you have this workflow thing and you don’t need any other tool. You can configure every process there. Oh, maybe except a couple of them if given workflow solution is rather a specialized tool than a general one.&lt;br /&gt;&lt;br /&gt;The problem is this kind of high level, general solutions very rarely fulfill expectations. And it’s no surprise if you ask me. If it was so easy we wouldn’t need ERP solutions, CRM systems, project management software, banking applications, bug trackers, you-name-it. We’d have one huge workflow which would be so complex no one would be allowed to touch the configuration and punishment for breaking this rule would be a headshot.&lt;br /&gt;&lt;br /&gt;Of course there’s number of scenarios which suit perfectly to general workflow application but the interesting thing is why it’s so rare when companies look for external solutions instead of writing their own software. We buy a lot of tools but this one we develop.&lt;br /&gt;&lt;br /&gt;I guess one of main reasons (a pretty common one) is “&lt;span style="font-style: italic;"&gt;no one did it right yet but we’ll do it&lt;/span&gt;” way of thinking. There’s also another flavor: “&lt;span style="font-style: italic;"&gt;no one had this problem before us&lt;/span&gt;” approach. Both are screwed. Actually there are pretty limited amount of people out there who face problems everyone else is yet to discover or have revolutionary and good answers for old issues. Chances are good you aren’t one of them.&lt;br /&gt;&lt;br /&gt;If someone came to me and said “&lt;span style="font-style: italic;"&gt;let’s make our own workflow&lt;/span&gt; system” a series of red lights would flash. Exactly the same which would flash if he came and advised to write our own ORM tool since no one else got it right yet.&lt;br /&gt;&lt;br /&gt;Somehow it’s pretty common this kind of ideas make their way to the development. Why is it so?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-8429360286494963690?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/8429360286494963690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/whats-wrong-with-workflow-systems.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8429360286494963690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8429360286494963690'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/whats-wrong-with-workflow-systems.html' title='What’s Wrong with Workflow Systems?'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w55opxuxeX8/SqEdiLEfF0I/AAAAAAAAEPM/3QzK0H3BYAQ/s72-c/workflow.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-8565523251211080660</id><published>2009-09-02T21:05:00.003+02:00</published><updated>2009-09-02T21:14:08.445+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>There Is No Single Flavor of Agile</title><content type='html'>Agile is such a capacious term. &lt;a href="http://blog.brodzinski.com/2009/08/agile-good-bad-and-ugly.html"&gt;Under the flag of agile we do different things&lt;/a&gt;. Scrum is agile. And XP is agile. Scrum-in-the-name-only is also agile. We go with no plan whatsoever and that’s so damn agile is agile too.&lt;br /&gt;&lt;br /&gt;Yes, you say the first two are true agile and others are fakes just tainting The Holy Agile Name. That reminds me... wasn’t it exactly the same with waterfall and others bad, bad techniques? Wasn’t they tainted by poor implementations which got everything wrong so we had to come with new better methods? Well, just a food for thought.&lt;br /&gt;&lt;br /&gt;Coming back to agile. With all these good and bad implementations &lt;span style="font-weight: bold;"&gt;I can safely say that there’s no single flavor of agile. There never was. I believe it was never intended to be the only one.&lt;/span&gt; I recently read &lt;a href="http://alistair.cockburn.us/Notes+on+the+writing+of+the+agile+manifesto+-+there+is+no+center"&gt;notes on the writing of the agile manifesto&lt;/a&gt; by Alistair Cockburn and one thing stuck with me:&lt;br /&gt;&lt;br /&gt;“&lt;span style="font-style: italic;"&gt;I came in through the doorway marked “Efficiency” not the doorway marked “Change” – because my background was in fixed-price fixed-scope projects. (…) Other people came to agile through the doorway marked “Change”, and that’s fine for them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So although agile gets billed most of time through Kent Beck’s “Embrace Change” moniker, I’m not happy encouraging people to just change stuff all the time – it’s more efficient to think for a while and try to make good decisions early – the world will supply enough change requests without us adding to the list by not thinking.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;Different experiences, different projects, different backgrounds. Different accents when talking about the Manifesto. I can’t say I haven’t expected that at all but still. There was never one universal interpretation of agile principles yet we see every now and then people selling the only right and proper method of being agile. How come?&lt;br /&gt;&lt;br /&gt;On a side note: I wrote this piece a few days ago. In the meantime The Big Ugly Change came and kicked my ass big time. “&lt;span style="font-style: italic; font-weight: bold;"&gt;The world will supply enough change requests.&lt;/span&gt;” Couldn’t agree more these days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-8565523251211080660?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/8565523251211080660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/09/there-is-no-single-flavor-of-agile.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8565523251211080660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/8565523251211080660'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/09/there-is-no-single-flavor-of-agile.html' title='There Is No Single Flavor of Agile'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28351195.post-2055663531670407835</id><published>2009-08-27T20:59:00.003+02:00</published><updated>2009-08-27T21:04:11.760+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='software business'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Agile: The Good, the Bad and the Ugly</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_w55opxuxeX8/SAzeTesnZHI/AAAAAAAABh8/85ouioKxXOc/ugly.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 197px; height: 200px;" src="http://lh5.ggpht.com/_w55opxuxeX8/SAzeTesnZHI/AAAAAAAABh8/85ouioKxXOc/ugly.jpg" alt="" border="0" /&gt;&lt;/a&gt;Several agile “photos” which comes to my mind:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A presentation of a guy who implemented Scrum in his team in highly formalized environment in Motorola.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;A series of Scrum trainings in a company which wanted to be oh so agile which ended up in virtually no change toward agile.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;A person I’ve met on some event who told how much their customer was engaged in development process and how happy they were with results.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Implementation of new better agile process which ended up as a playground for a couple of people and brought nothing valuable for the rest of the team.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;An environment where agile methods would bring only additional effort with not much, if any, gain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A team which basically adopted Kanban in few hours.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which one is real? Which picture shows agile at its true nature? Well, all of them. &lt;span style="font-weight: bold;"&gt;There’s no such thing as the only proper agile way.&lt;/span&gt; This is a lock-pick-word. Under the banner of agile we do good things but we also do bad things and ugly ones too.&lt;br /&gt;&lt;br /&gt;When I think about agile as a phenomenon I consider all above as a part of it. If you try to divide good and reasonable implementations of agile from those done wrong or without understanding why it emerged around you reject to accept reality. OK, the part of reality.&lt;br /&gt;&lt;br /&gt;If heavy-weight project management methods were done right all the time there wouldn’t be such strong drivers to change something in the area of software development and project management. But heavy-weight processes are bad because people use them bad. So the tool is wrong because people misuse it. OK, fine for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How misusing agile is different?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agile became a buzzword for all good and bad which comes in a package. It’s adopted more and more, which is generally good, but at the same time a part of it is totally counterproductive and done just for the sake of being trendy.&lt;br /&gt;&lt;br /&gt;The former is agile and the latter is agile. Even when the latter is agile-in-the-name-only it is still done under banner of agile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28351195-2055663531670407835?l=blog.brodzinski.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.brodzinski.com/feeds/2055663531670407835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.brodzinski.com/2009/08/agile-good-bad-and-ugly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2055663531670407835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28351195/posts/default/2055663531670407835'/><link rel='alternate' type='text/html' href='http://blog.brodzinski.com/2009/08/agile-good-bad-and-ugly.html' title='Agile: The Good, the Bad and the Ugly'/><author><name>Pawel Brodzinski</name><uri>http://www.blogger.com/profile/04369257211504152485</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10893754332156262562'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>