Friday, 1 March 2013
Extra costs and productivity
I'm wondering how many times I finish a thought with a conclusion and when it's just simple whining about problems. It's never a good behavior to tell problems without pointing out the lesson or attempting to help on it. Or maybe it's like with wishes, you need to whine a lot and it will go away.
I think I'm good at productivity. I'm a huge fan of tricks and life-hacks and it's easy to adopt many into my lifestyle. The most important thing at productivity is time. You want to live a full life, having as much content as possible in it. And that's a nice goal. I'm happy to sacrifice in order to win.
I wash the dishes 1, maximum 2 times a month. Getting involved in the washing process is a long time. And you get depressed, sad by doing that awful thing. Shifting mentally between coding and dishwashing takes some time. It's exactly the mass-production problem. Small amount of production has simply higher cost per item.
And surprisingly I have the same efficiency problem with tickets. I've heard once that chaos is fine for many guys because that's exactly how they can find their way in the mental / physical world. I don't like chaos neither in life nor in code - but I like the chaotic ticket-picking way of working.
When I have some free time and feel confident that nobody else will interfere with my work I just pick up random tickets from the issue queue and solve them all together. You see which one relates to each other, which one is on the same page, which on is exported in the same feature. See what I mean? Grouping is easy - easy and effective. Think about the costs of a task. Simple things like opening your terminal or IDE. Or getting a certain structure into your head, thinking though a process. Creating fields, exporting them, creating rules, coding - many things.
Most of these costs are increasing on a logarithmic scale. Soon they reach a level where it doesn't really add much when including a new - similar item. But usually that's not how development - or even agile works. You need to start, prepare, estimate, setup, research, proceed, test, review ... just too many things.
Personally I like to solve things in a different way. In practical life when you fix or write code you inevitably spot something in the middle and want to fix it. That's also something similar - many says git commits should contain small and single purpose changes. But again it just increases time.
Or when you exporting feature you just want to add quickly couple of extra fields. Or write some tests.
Well, I think it's still subtle compare to time management. Recording time and report minutes is a real time waster. Not to talk about meetings. I mean don't get me wrong. I fully understand of the purpose of a meeting. It never works without communication and reports. I just would be happy if clients could read git log instead of Redmine/Jira reports. Or they would accept a developer working an many things at the same time.
I feel mental preparation is not respected as much as it should be. My brain is even worse. If I have to answer an email just because it's urgent it kills everything I kept in my mind and goes back and hunt down all the other thoughts I had.
So the lesson of the lesson-less thoughts: I wish issues could be merged by category or type. I wish there would be a standard email-answering hour each day (instead of the whole day). I wish devs could work freely.