- Spring-Boot Configuration Properties I wanted to switch in my spring-boot microservices project from hard coded values to configurable ones.
more...
- Rsync for Windows I really needed rsync for Windows, but I didn't want to bother with installing cygwin, because it is cubersome to use and I'm already using cmder. I found wdRsync which seemed a good option.
more...
- Agilia Conference 2016 The next Agilia Conference is around the corner with exceptional speakers such as Tom Gilb, Scott W. Ambler, Łukasz Węgrzyn, and Pierre E. Neis. Aguarra - the organizer of the conference - is keen on bringing great variety of speakers to its events. For example, last year they had Mario Almondo who is a COO and the Technical Directory of the Ferrari Formula-1 team.
more...
- Visualize Information Flow in Value Stream Mapping When I met Mary and Tom Poppendieck we not only talked about flow efficiency but about the entity that actually flows through the system. According to Mary it can only be a deriverable.
more...
- Flow Efficiency Based Improvements Aren't Always Useful Yesterday, I met Mary and Tom Poppendieck and over a nice beer we were talking about various topics but we spent most of our time talking about flow efficiency (ratio of the value added activities to waiting). When I was riding my bicycle home I was still thinking about our conversation and presented examples.
more...
- Schedule Portfolio Kanban As a project manager one of my current tasks is risk management, and I have to focus especially on schedule risk. Therefore I was looking for something that can show me quickly the current status of the project and this kind of risk. I started to use a portfolio Kanban board that covers the whole project, but my board is different from Pawel Brodzinski's resource oriented board: I'm using an old idea from Chris Matts - a work item is put into a column that tells us when the it is supposed to be ready -, and the idea of organisational level Kanban boards.
more...
- No Attributes in Objects I just realised that I rarely define attributes in my classes (the dependency injection references are exceptions) and I'm passing everything as a parameter. So instead of this.
more...
- Risk Kanban Board A couple of days ago I was talking with a friend about the talk I gave last year during the Lean Kanban Europe tour and I realised that my unusual Kanban board may be able to solve my recent problem.
more...
- Fast or Accurate Applications? It is a common topic between software developers whether an application should be fast or accurate. I've always chosen accuracy over speed until now, like when I was solving problem 7 on project euler, which sounded very simple.
more...
- Spike and a New Workflow The other day I found myself writing a single test case the whole day without making a significant progress in the production code. It wasn't efficient at all and I wasted the whole day on stupid test cases - so it was time to ditch TDD for the rest of the weekend and try something different.
more...
- Constant WIP - CONWIP CONWIP stands for constant work in progress which means that the overall number of work items in the system is limited, not just a single phase or column. For example, with a CONWIP of 6 we can have at most 6 work items between ‘todo' and ‘done'. Like throughtput, takt time, and flow efficiency CONWIP comes from the car manufacturing world and it was designed for a system that produces the same kind of work item over and over.
more...
- Improve your Estimations and be More Predictable Planning in general - not just in software development - is not an easy thing. We have to know what to do next and have an idea when it will be ready. Although the former is harder the latter seems to be more problematic. We also struggled with it with my old team at Digital Natives.
more...
- Aging Work Items In my throughput post I was writing about a piled up inventory of work items which is created when the throughput (output) is lower than the demand (input). These work items are visible, they are on the Kanban board, and we call them aging work items.
more...
- Wrong WIP Limits Will Kill Your Options At Lean Agile Scotland 2013 Chris Matts mentioned that “the WIP limits kill the options. He didn't really explain his statement in detail but I had been thinking about it and I dare to say that Chris was half right. He often talks about staff liquidity as well, which tells us how likely our staff will be able to work on a problem or a feature.
more...
- One Reason Why WIP limits Matter There are different reasons why limiting the work in progress (WIP limit) is a good thing, but now I would like to talk about one special case where WIP limits are helping move things forward. Let's assume that you have a working pull system which means that the team members don't push the work on others, but others can take the work if they are capable to handle them (I'm not using the word free on purpose because what if somebody can work on two things in parallel).
more...
- The Purpose of Agile Software Development I often think about the purpose of Agile. It is definitely not to replace the Waterfall development process, or make the life of middle managers even more difficult. I believe it is not about testing more or using new technology either. I see similarities between the purpose of Agile software development and police work.
more...
- Throughput When I started to use the Kanban method there were two measures.
more...
- Open Sourcing Emcalc, a Legacy Application In 2004 my friend asked me to write him an application - called emcalc - that used his results from his thesis work that he can use in his new job. The application was able to tell the gas emission of different boilers that was common in the households in our neighbourhood at that time.
more...
- Path Reference in Gemfile Gemfiles (the configuration file for bundler, a dependency manager for ruby) have a nice feature that allows for specifying the location of a dependency.
more...
- Using Takt Time to Find Problems Earlier The idea of takt time comes from car manufacturing. It shows the elapsed time between two completely assembled cars leaving the factory floor. If the takt time is 2 hours, it means that the factory produces 12 cars a day (24h/2h = 12). With the use of takt time people in car manufacturing can detect problems in production earlier.
more...
- Flow Efficiency Last year in the Lean Kanban University conference series I was talking about flow efficiency and how we measured and used it with one of my old teams. My friend Chris McDermott asked me to write a post about it, so here it comes. Like other metrics such as cycle time, takt time, and throughput, flow efficiency comes from car manufacturing.
more...
- It's Performance Review Time Christmas usually means two things for people who work for other people.
more...
- How to Find the Files of a Certain Package in OSX After upgrading from OSX Mountain Lion to Mavericks I wanted to completely delete a certain app so I was looking for files on my hard drive and found the “bom files in /private/var/db/receipts. I ran apropos bom and it seems that OSX also has a receipts structure simirarly to chef and using the lsbom command I can list all the files of an app (listing works with user rights): (-f lists files, -s lists paths of files, and -l lists symlinks) If you are uncertain that the uninstaller will remove all the files of an app, before deleting it check it out with lsbom, save the list and check for the existence of the mentioned files.
more...
- The Kanban Board is a Mirror When I hear the expression “we need to change our Kanban board - it happens quite often -, I think about the analogy between a mirror and a Kanban board.
more...
- I broke the WIP limit TWICE, still on the team - slides I've finally uploaded the slides for my I broke the WIP limit TWICE, still on the team talk. I gave this talk at Lean Kanban France and at Make Better Decisions with Modern Management Methods (a.k.a. Lean Kanban the Netherlands 2013), and will give it at the same branded conference in London in a week (a.
more...
- When Not to Use Swim Lanes Swim lanes on the Kanban board are really handy when different software versions have to walk through the same path or flow. However, they can be deceptive when instead of versions, different development phases have their own swim lanes. Let's say that an imaginary team decides to upgrade its Kanban system and adds the design that precedes the development phase to the board.
more...
- Fault Tree Analysis If you are looking for a great tool to conduct a root cause analysis (RCA), or find a problem during a retrospective, try out the Fault Tree Analysis (FTA). It is used to identify causes of failures, weaknesses of a system, or the probability of a certain failure happening.
more...
- Moving From Cucumber to Turnip I was about to refactor one of my old ruby apps when I realized that I didn't want to write more cucumber features and scenarios. I do bdd whenever I can (I even wrote a detailed post about it), but in ruby I don't want to have test cases both under .
more...
- Public Speaking Events in Autumn I'm going to have a busy Autumn because I'm going to speak at four different conferences. The Autumn tour will start in Edinburgh with Lean Agile Scotland 2013 that I'm very much excited about. It was great last year, and based on the tweets it is going to be even greater this year.
more...
- Visualize and Manage Team Dependency I've been thinking for a while now about how to visualise and manage (reduce) the dependencies between teams. I was watching a presentation the other day where the speaker was using “markers to see the current position of certain work items in the flow (in a completely unrelated presentation), and I started to think what if we used the “marker concept to see where a work item done by a specific team ends up.
more...
- Does the WIP Limit Have to Match the Demand? At the Kanban Leadership Retreat 2013, Janice Linden showed us the “Why limiting work in progress makes sense (Kanban)? video by David Lowe. Later on, David asked me about the video, so I had a closer look. (You may want to check his video before continuing reading.
more...
- The Lead Time Is The Time The Customer Must Wait to Get What She Asked For The lead time plays an important role in the Kanban method and yet the Kanban community is working with different definitions. We agree that the lead time is a time interval, but when we talk about where it starts and where it ends, the answer is almost always “it depends or “we measure it differently.
more...
- About Broader and Narrower Perspectives While I was having a nice cup of tea the other day thinking about stuff, a colleague sat next to me and he seemed like he wanted to ask a question. After putting the tea away and greeting him with a friendly “what's up? he told me that he started to organise lean coffee events for engineers, but he reached an impasse.
more...
- If You Are a Public Speaker, You Need a Twitter Account If you are a public speaker, you need a twitter account. Why? First, because twitter is the best way to get instant feedback on your talk. Second, it is the best way to stay in touch with your audience. Of course there are different ways to get other kinds of feedback, such as the feedback/happiness doors, or questionnaires at the end of the conferences, but they tell you different things.
more...
- My First Time With Cynefin I'm particularly happy that I finally used the Cynefin framework by David Snowden for two reasons. First, it helped me and my colleague to make the right decision when we were in doubt. Second, until now I haven't seen anybody using the framework besides Mr.
more...
- Daily Stand Up in Lean Coffee Style At the Kanban Leadership Retreat 2013 I overheard Hakan Forss mention that he wanted to talk about a different structure for daily meetings or to have a process description for them (I don't remember exactly what he said and what his intentions were), and I started to think: what if we used the lean coffee style for daily meetings.
more...
- The Traditional Gemba Walk Has Low Value in Software Engineering I was at the dare13 conference last week where we were talking during a lean coffee session about the Gemba Walk and its value in software engineering. The Gemba Walk is a Lean practice where executives regularly visit the factory floor with a Lean teacher, sensei, or coach, and learn about the flow by observation, and look for improvement opportunities (reducing waste).
more...
- Without You I Couldn't Attend KLRAT2013 The Kanban Leadership Retreat is one of the highly valued Kanban events in the year, and thanks to a couple of great folks (see below) I can attend this year. Paul Klipp started a scholarship fund in April for supporting those practicitoners who cannot afford to be there.
more...
- Public Speaking Events in Summer I'm going to speak at two conferences this Summer.
more...
- Happy Birthday! I guess I'm not really good at remembering birthdays because I've just realized - again - that the blog celebrated its third birthday two weeks ago. Happy birthday! Thank you very much for coming back and reading my posts! I really appreciate it!.
more...
- Context and Perspective are Everything Have a look at that shape. Take your time, there is no need to hurry. Which side of that shape is in the front? Is it the one whose top left corner is the top left corner of the shape? Or, is it the one, whose bottom right corner is the same as the bottom right corner of the shape.
more...
- About Flows and Infinite Queues An infinite queue is a column on the Kanban board somewhere between the Queue and Live columns, one that doesn't have a WIP limit and into which one can put many work items as one wants. A column without a WIP limit sounds like a bad practice, because if there is no WIP limit what will ensure that the work items are moving - being pulled - forward.
more...
- Improve Your Way of Working With a Speakers' Corner I have a love-hate relationship with retrospectives. I love them because I can hardly imagine any improvement without them. I hate them because they occur periodically, they are always about problems and rarely about pure improvements (pure means to me that we improve because we just want to be faster, and not because we have a problem that slows us down and we want it to get solved).
more...
- Public Speaking Events in Spring I'm going to speak at two conferences this spring.
more...
- The Empty Else Block I was adding a new functionality to one of my applications when I realised that I wrote this piece of code.
more...
- The Optimal Batch Size If you have read the coin game post (in case you haven't, click here, read it - it is a quick and good read by the way -, and come back), you may wonder why the batch size of 6 produced the shortest completion time in the example game. Let's find out.
more...
- The Coin Game Today's post is about the Coin Game. It is a repetitive group game in which the players have to move a heap of coins from one part of the table to another by passing the coins to each other. Additionally, when a player receives a coin, she has to turn it over once.
more...
- When Will It Be Done? I recently had to have my watch repaired. I brought it to the watch shop where it turned out that it could not be fixed, because a main part needed to be completely replaced, but they didn't have any spare parts. The lady behind the counter told me that she had no idea how much time it would take to get it.
more...
- Be Aware of the Three Columns You most probably have seen the simplest Kanban board with three columns.
more...
- Parkinson's Law of Triviality The famous Juan Manuel Fangio had a very good year in 1957, because he won the Formula One Championship, which was his 5th win - the 4th in a row -, and with the age of 46 he became the oldest world champion. This is really impressive, however, 1957 was also the year when C Northcote Parkinson, a British naval historian wrote a masterpiece about how organizations in his age were operating.
more...
- Even if it is not right, it is possible... I've quite recently had a discussion with one of my friends, Tom, who has been working for a large company - not a telecommunication one -, about the behaviour of one of his new colleagues, Jeff. Tom didn't understand why Jeff wasn't doing his utmost to be a valuable member of the team during his probation period.
more...
- I Love the Smell of Outlook in the Morning My workplace (actually two of them) used to be in the middle of a large landscape, and when I was walking to my desk and saw colleagues reading and writing emails in the morning, I used to smile, take a large breath through my nose, and whisper “I love the smell of Outlook in the morning.
more...
- The Walnut The current weather in Finland reminds me of the nice autumns we used to have back in Hungary when I was a kid (Hungary used to have four seasons, but thanks to the climate change, nowadays there are only two seasons.
more...
- Liquidity for Kanban Systems, My First Look In his keynote at the Lean Kanban Central Europe 2012 conference David J. Anderson proposed a new metric for Kanban Systems, which is supposed to provide an answer to the big organizational governance question.
more...
- Chrome Remote Desktop Plugin I remember the good old times when if one of my relatives or friends had some problems with his or her computer, I simply went over and solved it. I was never good at phone support, because I've always had to see a problem in order to solve it. Nowadays, almost everybody I know has an internet connection, so I no longer have to go over, because there are tools like SSH, Skype screen sharing or Windows Remote Desktop Connection (RDC), which make it possible to provide valuable remote assistance.
more...
- A Zeno Paradox at the Workplace: Achilles and the Tortoise A good friend of mine and I were chatting about why teams considered as suppliers (back office) work noticeably more than those working with or for the front office. We didn't jump to any conclusions, and we started to talk about something else, but it kept bugging me, which is never a good sign.
more...
- Only Variety Can Absorb Variety I recently read the expression “only variety can absorb variety, but I had no idea what it meant. It took me some time, but I figured it out. It is a short version of the Law of the Requisite Variety by William Ross Ashby (on the right), a pioneer in Cybernetics: “The larger the variety of actions available to a control system, the larger the variety of perturbations it is able to compensate.
more...
- Two Ideas for Stand-up Meetings I overheard two great ideas about stand-up meetings. The first one is from Dave Snowden. He observed that certain sessions weren't going as effectively as they could. The participants were talking about irrelevant things, and the very important “what needs to be really done.
more...
- Can the Marshall Model be Presented Differently? If you follow the recent events and discussions in the Agile/Lean community, you most probably have heard about the #rightshifting movement, which uses the so called Marshall Model to figure out the actual mindset of an organisation and help them to move from a less effective stage to a more effective one through intermediate stages.
more...
- The Hidden Inventory A couple of days ago, I had a quick conversation with an old friend of mine about the place of done columns - also known as inventories - on the Kanban board. He wanted to know if the internal done column - where the work items that have been completed in that phase are kept -, or the internal queue column - where the work items done in the previous phase -, was the better option.
more...
- Cucumber JVM: Hooks I finished the previous post with the promise that I'm going write more about hooks in cucumber. By definition, hooks allow us to perform actions at various points in the cucumber test cycle. The definition wisely doesn't say much about these actions and the points where they are executed.
more...
- There is a Difference Between Effective and Efficient I try not correct people when they talk, but when we are in the middle of a Lean transition, it is important to see the difference between effective and efficient and use these adjectives properly. Most of the people I'm in touch with are non-native English speakers and this could make it difficult to see the difference, because these concepts may be described with the same word in their native language.
more...
- It Would be Nice to Have an Internal StackExchange Service Today I had a quick chat with my friend Zoltan about the possibilities to have an internal StackExchange (SE) service in our company (SE is a question and answer site with a very nice gamification feature set). Unfortunately, we don't have a good global knowledge sharing concept, and therefore we have different tools which don't really scale, don't work well with each other and are really hard to use.
more...
- Cucumber JVM: Web Application with Spring MVC It's been a while since the last Cucumber JVM post, and since I've started to work with Java based web applications, it was time to continue the series. Last time I left off, I had a class that could transform an arbitrary sentence such as “I like testing into “I lkie tnitseg by following the rules of the text munger kata.
more...
- Javascript: use the forEach Method and Do not Bother with Scopes I recently started to re-learn Javascript because I would like to build better web applications, and in order to that, I need a solid understanding of the language. The last time I was learning about Javascript, I was taught that it was a younger brother of Java, so if I had a good understanding of Java, I would be fine with Javascript.
more...
- Public Speaking Events in Autumn This autumn will be a bit busy for me. I'm going to talk at four different conferences.
more...
- The Problems of the Capacity Utilization I found a very interesting quote that I wrote in one of my notebooks a long time ago.
more...
- The Prioritisation Experiment Have you ever thought about how your life would look like if the prioritisation methods we use during software development (value, importance, complexity-based etc.) were applied there? Imagine that you are sitting on the bus, which is about to leave, but somebody important runs after it and the driver down prioritises you, and you have to get off.
more...
- Embedded Web Services For Testing Web Applications from JUnit Quite recently, I was working on a Java based web application. Everything went very well until I tried to test it. I was looking for a way to run my selenium based test cases with one click, because the manual deployment to tomcat was starting to be annoying.
more...
- A Stand-up Improvement Idea: Read up the Tasks Your daily stand-up meeting has started to get boring and ineffective? My old post about the different variations of the daily stand-up meeting didn't help you? I don't have the perfect solution, but here is an idea which you can try out. Most probably, you have somebody from your team who reads up the task you are going to talk about next.
more...
- Waste in Software Development In my community, we love to say the word waste - from lean - out loud. There isn't a meeting without mentioning it at least once, and when it is mentioned, the phrase we have to eliminate waste follows. This is something that is very easy to say.
more...
- Put Your TODO Items Into Your Test Case Until now I was using a TODO file for tracking ideas and the things I still had to do. A couple of days ago, while I was working on a small ruby project, I remembered that I had to check out something after I was done with my current task, so I opened the TODO file and added a line.
more...
- Convince Your Manager to Try out the Product Ask your boss or manager to try out the product you are working on. If she has already been doing it, you can stop reading now, and please go and tell her that I like what she is doing and she should keep it up. If the situation is the other way around then there is something important you have to do: convince her to try out and use the product you are working on.
more...
- A Real Man Dares to Delete Code I have seen a lot during the last couple of years, but I have never seen a single developer who deleted working code. Writers are known to delete complete chapters, artists to start from scratch all over again, but for unknown reasons, developers just don't delete their code and start over.
more...
- The Customer is Not Even Close to Us Not a long time ago, a colleague told me that our project was much better than his, because according to him, our customer was close to us. This sentence got me thinking and I'm pretty sure the customer is not close to us at all. The customer is close when you, as a team member, can directly interact with her.
more...
- One Track Development A couple of weeks ago, an interesting question appeared on the pm.stackexchange.com site about how to deal with defects across multiple development tracks when the development follows the iterative model. My answer was to introduce one-track in the way of working, and I promised to write a bit more about it.
more...
- Conversation: "What Do You Want to Do?" One of my colleagues came to my desk yesterday and started a conversation in the team area with me.
more...
- Ruby on Rails: Sandboxed Console Everything you've done in sandbox mode will be rolled back after you quit the console..
more...
- Recover Deleted Files with Eclipse Previously, I wrote about how to recover deleted files with git, and while I was writing that post I remembered that I had done something similar with eclipse as well. Eclipse keeps a history of the changes, and all these changes are stored in a folder called .
more...
- The Budapest Lean and Kanban Meetup Group is One Year Old It is always a great thing to meet the local Lean and Kanban community in Budapest, and this latest event was even more special, because our local group just became one year old. Happy Birthday! After my talk about Agile and Lean in software maintenance environment, we had a delicious cake and a great discussion about how to adapt certain Agile and Lean principles in maintenance projects and we also shared several practical ideas.
more...
- Visit at Targu Mures A couple of weeks ago, I was told that a new Agile meetup group was about to be started in Targu Mures - even the local newspaper wrote about it - and the organizers wanted me to give a special talk about the Agile way of working. It was a great opportunity for me to visit Transylvania again and meet the forming community there.
more...
- How I Start Working with Legacy Code While I was cleaning up one of my old folders, I found an old application jar file from 2004. I remember that I wrote this app for my friend who used it for calculating some kind of gas consumption.
more...
- Recover Deleted Files with Git I started a new project and made my first commit, but accidentally added a file which hadn't been finished yet. No worries, according to this site it is easy to undo commit.
more...
- My Second Public Speaking in Transylvania Next Tuesday will be the second time for me to give a talk for a local Meetup community in Transylvania. Last year, I talked at the Cluj Napoca Agile Supporters Meetup and next week, I'm visiting the newly formed Agile community of Targu Mures. I'm bringing a new talk, which covers the original purposes of the Agile movement, some pragmatic examples and the mindset one needs for a successful business.
more...
- Bitly Has a New Design Bitly has a new user design.
more...
- Ruby on Rails: Migration Status After a short pause, I'm back in the Ruby on Rails world. While I was looking for something related to migrations, I found a useful rake task called db.
more...
- Still Suffering from Group Punishment I thought - and somehow hoped - that after school we would never have had the pleasure of being victims of group punishment again, but I was wrong. Group punishment was very common in my school and in my neighborhood.
more...
- When Local Optimization Won't Make a Difference A couple of weeks ago, I mentioned at the office during my measure and manage flow in practice talk that we should invest more in optimizing the whole flow and reduce the effort spend on local optimizations. In retrospect, I didn't spend too much time on explaining why, because it had a very loose connection to the subject of the talk, and I assumed that the audience would understand what I meant anyway.
more...
- Happy Birthday! Another great year has passed and my blog has become two years old. Happy birthday! Dear Readers and Friends, thank you for reading my posts and listening to my talks. I really appreciate it! I'd like to give my special thanks to my friend Zoltán Mészáros for his continuous and excellent help and my girlfriend Zsófi for her endless patient and support.
more...
- ACCU 2012 The last weeks were a bit busy and I didn't have the chance to share my slides from ACCU2012, but now I have some time, so here they are.
more...
- See the Whole Flow - An Exercise for Managers to Start a Transition Last week, I got an interesting assignment from my boss.
more...
- We Need Realistic Coding Dojos I'm not sure about your experience with coding dojos, but this is what happens to me every time I attend a series of coding dojos or organize one.
more...
- One Hour Ahead A couple of things have changed in the last three months and I also wanted to do something different, so I quit my job in Hungary, made a quick decision, moved to Finland and started to work for Ericsson Finland. I want to thank my old colleagues at Digital Natives the huge amount of help they gave me, while I was re-learning the web development.
more...
- The Different Meanings of Free A couple of weeks ago, after watching Scott Allen's presentation about Modern Javascript at SPSE2012, I decided to learn Javascript. I quickly realized that knowing Javascript was not enough, I had to learn jQuery as well, so I started googling and found a great reference card at DZone.
more...
- Cucumber JVM: Mocking In the previous cucumber-jvm post I introduced dependency injection, which makes it possible to use mocks during testing. Usually, it is a bad idea to introduce mocks in cucumber scenarios, because they are supposed to test the whole system as it is, however there are cases when mocking comes in handy: for example, a module or component of your system communicates with a 3rd party system.
more...
- Software Passion Summit 2012 Last Monday and Tuesday was really important to me, because I gave my first talks in front of an international audience. I was at the Software Passion Summit 2012 conference in Göteborg, Sweden where I was talking about how to measure and manage software development projects and how to make improvement steps in software maintenance projects.
more...
- Visualize the Flow on the Highest Possible Level I gave an internal workshop about Kanban a couple of days ago, and the colleagues who were there looked enlightened when I mentioned that Kanban should visualize the whole process, because this is the place where it can help the most. Don't get me wrong, it is also fine to have Kanban on the team level, but the real optimization and improvement should happen on the highest possible level.
more...
- Daily Stand-up is About the Future not the Past In the last couple of weeks, I was thinking a lot about daily stand-up meetings for two particular reasons.
more...
- Fix ALL The Failing Test Cases I've created a meme for those who spend most of their time working with legacy code and fixing test cases, like myself.
more...
- Learn More About the History of a Line with Git Blame I'm working on an interesting refactoring project at the moment. Today, I found a strange part in the code and I was really curious who implemented it and why, so I run git blame to learn more about it. Since I cannot share code from the customer's repository, I'll use the code from one of my repositories.
more...
- Software Passion Summit 2012, 10% Discount for Followers I'm going to talk at Software Passion Summit 2012 about Measuring and Managing Flow in practice and Achieving Maintenance Stabilisation with Agile, Kanban and Lean Thinking. I've just received a mail from the event organizer, and the good news is that the blog followers of the speakers who plan to attend the conference can get a 10 percent discount from the current price.
more...
- Cucumber JVM: Dependency Injection Last time I finished with a failing test case which drove the development to a phase where I had to deal with a sentence instead of a word. The fix was not a big deal, but I ended up with a method in SimpleTextMunger which did three things.
more...
- Increase Customer Satisfaction with the Kano Model A couple of weeks ago I had a great discussion with one of my colleagues about the Kano model and how we could use it to make better deliveries. The model itself is a classification of features of a product based on customer needs and attributes. It was created by Professor Noriaki Kano (on the right) in the 1980s.
more...
- Listen to Experts but Trust Your Team Members Back when I was working in a project as a team leader, on a cloudy Thursday an expert took me aside to talk about the time reporting of one of my team members. He pointed out that the team member in question spent about 6 hours doing a certain task which he - the expert - could have done in 15 minutes.
more...
- Public Speaking at SPS 2012 and ACCU 2012 I'm happy to announce that the program groups of Software Passion Summit 2012 and ACCU 2012 accepted my proposals and I'm going to speak at those conferences. I don't know all the details at the moment, but the schedule of ACCU 2012 is already out and you can find my slot on Thursday 14:45 about team leadership.
more...
- Cucumber JVM: More Scenarios In my previous post I started to play around with cucumber-jvm to see how it could be used for Java development. Last time I finished with one scenario and now I'm going to move forward with my simple text munger implementation and see how to use cucumber-jvm with multiple scenarios.
more...
- A Step by Step BDD Demonstration with Some Useful Insights According to Stephen Covey, the seventh habit of highly effective people is “sharpening the saw. If you have ever been to an agile workshop or conference, you may have already heard this expression. Software craftsmen sharpen their saw at coding dojos where they talk to each other a talk about new things or do Kata exercises together.
more...
- Make the Customer Try Out Your Product I've been participating in demo meetings with customers and product owners for years now, but we seldom talked about interesting things or rarely made significant decisions during these meetings. There can be several explanations to that, but I'm pretty convinced that we were doing these meetings wrong.
more...
- Cucumber JVM: Preparation Every time I wrote some code in ruby and executed our cucumber features I craved for something similar in Java. I knew that there were several BDD frameworks for Java like JBehave, JDave, and EasyB, but none of them was right for me.
more...
- Speaking at ITREND 2011 I was invited to a local conference called ITREND 2011, where I talked about how to use customer diversity analysis, Kanban and eXtreme Programming in order to have less unexpected business changes in one's organisation. I was really looking forward to this event because of two reasons: first, it was held in my hometown Miskolc, Hungary at the University where I studied and work, and second, I finally saw a chance to tell students about recent software development methods, because I knew that this topic wasn't covered in their curriculum.
more...
- Introducing the Expectation Line in Scrum Several weeks ago my colleague Tamás made an interesting point about our planning meetings.
more...
- Speaking at Ericsson Hungary It may sound strange at first, but I was ask by my former employer Ericsson Hungary to give an invited talk. There were two sessions.
more...
- Visit at Cluj Napoca My old friend Victor invited me to Cluj Napoca, Romania to talk about software development in practice. There were three talks in the morning at his company evoline and a fourth talk late afternoon at the local meetup group. We started the day with an introduction to Kanban, because the audience knew about Agile, but Kanban was something new, and additionally we needed it for the maintenance-related presentation: Kanban Basics for Beginners Revised from Zsolt Fabok After a short break we continued with a longer talk about maintenance and how to use Agile, Lean, Kanban and leadership techniques in order to stabilise a maintenance situation: Kanban Basics for Beginners Revised from Zsolt Fabok The last presentation was about how to use Agile techniques without saying Agile: Agile in Stealth Mode from Zsolt Fabok My talk at the meetup became a bit longer than I expected, but we had - at least I felt like that - a great discussion how the software development process evolved at Digital Natives - my current company - and, uniquely, we talked about what we were doing right and where we failed: Evolution of the Software Development Process at Digital Natives from Zsolt Fabok I promised a list of books worth reading.
more...
- Saving the Continuous Integration I really like continuous integration, that's why I'm always sad when I see one dying. Unfortunately, I've seen it happen a lot, and in every case its lifeline looked like this.
more...
- Building a Bridge a.k.a Parallel Changes Several days ago, we had a coding dojo at Digital Natives.
more...
- Local Leadership Fail Today's post isn't about software development, it is about an epic leadership fail I had the honour to live through. As it happened, I had to go shopping several days ago. There is a nice store nearby, I go there all the time, but this time I got into the middle of an unpleasant situation between the cashier ladies and a customer.
more...
- IT-Business Article about Kanban Breaking.
more...
- ALE2011 ALE2011 was the first unconference I've ever attended, and I'm glad I did. It took me some time, though, until I managed to write a post about it. In my first version, I wrote about every session I participated in, because people were asking me to do it.
more...
- When Expand and Collapse Got Beaten Today's post is an instructive story about mixing various good patterns and ideas. They are very useful separately, but when one uses them together, they may lead to problems which nobody wants to deal with at all. We found several different defects in a certain feature, and in order to reduce handover costs I collapsed them together to make an “umbrella defect (defect1+defect2+…defectN) and put it into our Queue.
more...
- Our Detective's Blackboard My colleague Attila and I had an interesting discussion several days ago.
more...
- Brown Bag Lunch Talk: Measure and Manage Flow This Tuesday, I had my first brown bag lunch talk at prezi, where I talked about measuring and managing the flow. Here are my slides.
more...
- Customer Diversity Last year at xp2010 Scott E. Page talked about the benefits of diversity inside an organisation. According to Scott, diversity improves the performance and decision making process of an organisation. Today late afternoon I attended a startup meetup event where Patrick Vlaskovits talked a bit about the diversity among customers.
more...
- Meetup: Kanban in 5 Minutes Yesterday evening I gave a 5 minute long lightning talk at Bp New Tech Meetup about Kanban focusing on the measure and manage flow principle. Here are my slides.
more...
- Code Review During Retrospective Most of the retrospectives I've kept or participated in were about agile approaches (for example communication with the Product Owner) and organisation-related changes, but not everybody is into these. Most software engineers and craftsmen aren't that interested in how to deliver faster, or how to communicate better, they are interested in how to be better at their profession: programming.
more...
- Third Meetup - Open Space This Wednesday we held the third event of the Budapest Lean and Kanban Meetup Group, which was excellent in my point of view, and we had great discussions. In the beginning we collected the following topics.
more...
- Physical and Electronic Boards Several weeks ago, I went to a team leader event with @csapoz and Krisz, where - besides other interesting topics - we talked about the usage of physical and electronic Kanban and Scrum boards. At that time I thought that electronic boards were evil - kill communication and collaboration -, but I decided to give a try to their suggestion: use the physical board for tracking and collaboration, and use the electronic board for administration.
more...
- Reducing Waste in Testing - The Problem Testing is the most important part of any kind of software development methodology, but it is also the most neglected one. Nowadays, when an organisation does testing, it produces such a high amount of waste that the whole development process becomes very expensive, which makes it harder to win projects over the competition and risks the existing relationship with the customer.
more...
- Personal Kanban Board My friend László shared a picture of his own personal Kanban board.
more...
- Guest Blogger: Sensitive Velocity My friend Peter (@keksz_i on twitter) wrote another great post, and this time about the velocity. Sensitive Velocity The Scrum team velocity is an interesting thing. It is very hard to get a working velocity number, it takes a long time, lots of tries, lots of failed sprints.
more...
- Meetup: Kanban Basics for Beginners Next week, Yuval Yeret will present at the first main event of the Budapest Lean and Kanban Meetup Group. He is going to speak about a bit more advanced topic - scalling Kanban -, so I thought it would helpful to the community to keep an introduction for those, who aren't that familiar with Kanban.
more...
- Guest Blogger: The Time-box Issue This is the first time in the history of my blog that I share the thoughts of a guest blogger. I introduced Kanban to my friend Peter (@keksz_i on twitter), who is very exited about Kanban and eager to learn more about it. Unfortunately, he had to participate in a less successful planning meeting… The Time-box Issue I just recently got familiar to Kanban – thanks to Zsolt – and I've started digging myself deep into Lean thinking.
more...
- Weekly - CW21, CW22 and CW23 The organisation of the first Lean and Kanban meetup in Budapest kept me busy, but here are the interesting links from the last three weeks calendar week 21, 22, and 23 2011.
more...
- How to Narrow Down What to Test An old friend told me that they did not do automatic testing at her company, or any kind of testing for that matter, because in terms of money they are better off if they do ad hoc testing and bug fixing one week prior to the delivery date. Then I got into an interesting discussion where the topic was that the customer does not pay for tests, she pays for a working software.
more...
- Happy Birthday! My blog has become one year old, so Happy Birthday! First of all I want to thank Zoltán Mészáros (a.k.a mzo) for his very valuable comments and remarks on both technical and language issues. Dear visitors, thank you for reading my posts and keep up this good habit.
more...
- Weekly - CW19 and CW20 Weeklies will be bi-weeklies from now on, so here are the interesting things from the last two weeks - calendar week 19 and 20, 2011.
more...
- Kanban on Organisational Level A couple of days ago, I talked to the head of an organisation, who was having a hard time to get an overview of the current work of her organisation, and struggling to have enough manpower in order to deliver products in time. This is a common problem, I had talked to other leaders who had the same issue, and in fact I was in a similar situation before myself.
more...
- Weekly - CW18 I'm still a bit busy, but nevertheless here is the collection for calendar week 18, 2011.
more...
- Weekly - CW17 I'm have a lot on my plate right now, so I have only two links for calendar week 17, 2011.
more...
- Weekly - CW16 It was a quite calm week, had several very good discussions and ideas, but before going further, here is the collection for calendar week 16, 2011.
more...
- Weekly - CW15 While I spent most of my time with learning more about Ruby on Rails and RSpec this week, I found the following links worth sharing. So here is my collection for calendar week 15, 2011.
more...
- Pair Programming in Retrospect I've been doing pair programming for two years now. During this period I gained a lot of experience, so it is time to do a little retrospective and organize these experiences. I hope that you find something useful here, or even better, you may start to do pair programming.
more...
- Weekly - CW14 Without further ado, here is the collection for calendar week 14, 2011.
more...
- Farewell Gift I've got a very nice farewell gift (on the left) from my old colleagues at Ericsson Hungary Ltd.
more...
- Weekly - CW13 It's been a quite busy week, but here come the links for calendar week 13, 2011.
more...
- Weekly - CW12 I usually exchange interesting articles, presentations and links with my friends in many different ways. I thought it would be better to use one simple way, so I'm going start a weekly series where I post articles, presentations and links I read during the week and find interesting.
more...
- The Calm Period We are about six weeks after pimping my team - let's see what has happened since then. A massive change is usually followed by a calm period. During such a period the team adapts to the effects of the change (new environment and methodology) and only small additional changes are applied, something like fine tuning.
more...
- Pimp my Team Abstract From the middle of January 2011, our organization has been working in a new structure. There were different outcomes of this change, one of them was that my former firefighting team has been dismissed, and so has the team introduced in my Kanban Nightmares article.
more...
- XP with Kanban instead of Scrum Abstract I'm going to step into a minefield, because in this post, I'm going to share my subjective experiences with Scrum, and I'm going to share the reasons why moved from Scrum to XP + Kanban. I'm using the minefield metaphor, because every single sentence I'm going to share can be exploded with good explanations, mostly from advanced scrum practitioners.
more...
- The Currency Format Kata A couple of days ago, I needed a function which is capable of printing out a certain amount in Hungarian currency format. At that time I found the implementation of this function challenging, so I decided to implement it on my own, without googling for an existing solution.
more...
- The Refactoring only Constraint Doing code kata is more fun with constraints. Once I heard about a very impressive one, but I was unable to find anything about it, so I decided to investigate and write about it on my own. The constraint is simple.
more...
- Visualize Workflow With DoD Line One of the key principles of Kanban is to visualize the workflow. A common practice for that is to have a Kanban board where the proper phases are visualized. In most of the cases, there is a criterion for moving an item from one phase to another, but this criterion is not written down, or in a better case it is written down, but in a word document or in a wiki article.
more...
- Daily Stand-up Variations During the last few years I did different kinds of stand-up meetings in Scrum and in Kanban teams. In this post, I'm going summarize the pros and cons I found in them. The most common stand-up meeting style is the daily scrum. In this meeting, the ball or a stick goes around round-robin style.
more...
- Testing the Stack Implementation I've created my own version of the exercise used during my first agile job interview in order to compare it to the result of the pair programming session of the job interview. The exercise was quite simple.
more...
- The First Agile Job Interview In one of my previous posts I was writing about a different kind of job interview. Today, I had the possibility to perform my first agile job interview, and although I only got twenty minutes, it was very well spent. For this twenty minutes, I planned a pair programming session with the candidate.
more...
- Kanban Nightmares I've mentioned in my previous post that I have less time for coding nowadays. I've started to lead a new team with the intention to introduce Kanban in their way of working. In this post, I'm going to share the result of this introduction. In these last few years I've had opportunities to observe coaches and consultants how they help teams and organizations.
more...
- Internal Queue Columns I have less time for coding nowadays, because I have to take care of more organizational and coaching activities. Additionally, I really like to investigate small details and check how they can help improve certain situations. So here is yet another post about Kanban and Kanban boards.
more...
- Measuring TDD I was cleaning up my old files and came across an old whiteboard shot, which reminded me an old small technique on measuring the amount of done Test Driven Development (TDD) work. In case of a less advance agile team, a usual discussion topic during a retrospective is TDD.
more...
- Internal Done Columns If a team uses a whiteboard to visualize the workflow, it is quite certain that the team has a Done column. The finished user stories, tasks, cards, etc. end up in this particular column. It is usually the rightmost column on the whiteboards. This year I realized that it is not enough to have a Done column only at the end of the whole value stream, but it is good to have one after each phase.
more...
- About Job Interviews I'm reading a lot about how to turn organizations to agile, but there is one thing which is rarely considered.
more...
- Never Move Items Back on a Kanban Board I've been doing Kanban for a while now, and I get the following question almost on a daily basis.
more...
- Ageing Items on the Board I spotted an interesting phenomenon on our Kanban board recently. There where items on the board which have been there for a long time. These items weren't stopped or blocked, every information was available in order for someone to be able to continue working on them, but no progress, though.
more...
- In Pursuit of the Cross-Functional Team During agile transition, it is common that large organizations take the books and advices word by word. In scrum, it is advised to have cross-functional teams. This advice is unfortunately sometimes interpreted in the wrong way. For some people, cross-functional team means that everyone on the team shares the same technical and business knowledge about the tasks that the team is supposed to work on.
more...
- Agile Corner I'm working in a quite large organization (several teams with different goals and purposes), and realized that it is very hard to distribute ideas among colleagues, and it is even harder to follow their agile development. I participated in the open space sessions at xp2010, and got an idea.
more...
- jMock versus Mockito I've been using jMock for more than a year now, but recently I came across mockito. In this post, I'll show the difference between jMock and mockito - without judging which one is better - using the basic features I've been using the most often from jMock.
more...
- File Lottery Kata When I do some coding, I use test driven approach, have lots of fake and mock objects, and I use dependency injection for putting everything together. I usually don't work alone, and from time to time I have to introduce these methods to someone with less experience in this particular area.
more...
- The Agile Trophy There are certain ways to appreciate efforts and achievements; the most common one is a salary bonus. As Daniel H. Pink pointed out in his book “Drive that kind of reward can kill the intellectual motivation and productivity. Nevertheless, I'm not in the position to give money to colleagues, but I still want to remunerate the agile efforts in some way.
more...
- Using Kata for Improvements I used to keep coding dojos for my colleagues, and it was sometimes very hard to find the right topic. I recently rediscovered the code kata - I did it earlier, but stopped after a short period -, and got an idea. I'm going to use it for discovering areas where our teams can improve.
more...
- One Step Back In Testing There are several advantages and disadvantages of Test Driven Development. In this post, I have no intention of repeating any of these, instead, I'd like to show a way to use TDD effectively while changing legacy code. The Problem Have a look at this legacy code: This code does not do much; it accepts two words separated with a space, and returns true/false depending on whether the words are equal or not.
more...
- Handling Additional Resources Firefighting happens usually during bug fixing and at the end of projects, when the project may or may not be as successful as people want it to be. In this particular post, I'm going to talk about the latter case. Usually, when the project is in trouble, management offers more (human) resources in order to finish the project in time and deliver the committed scope.
more...
- More Kanban Numbers For firefighting situations I prefer using the Kanban framework. It is very informative, and generally keeps things under control. If there are a lot of things to do, people tend to do context switching, which makes them less effective than they could be.
more...
- Basics of Code Review I'm going to keep a workshop about code review for my colleagues so I've collected every idea, practice, suggestion, recommendation into this post. Any comments and suggestions are welcome. Abstract In this article, I would like to talk about some code review techniques which I consider useful when changes or bug fixes have to be reviewed in legacy code.
more...
- The Spice Must Flow Hi, my name is Zsolt Fabók, and I have been working as a software engineer since 2004. I have spent the last couple of years in different projects, where firefighting was the first priority, meaning that the product needed to be fixed and delivered no matter what - that's why I gave the title “The Spice Must Flow for the first post.
more...