When you struggle to find free time
There are times when you say to yourself: "I really want to apply myself to this new idea. But I have to turn it down for the lack of time." Sigh... And later you ask yourself "How could this happen that you do not have time for important tasks?" And that is a really good question.
Essentially you can divide the time you spend into two categories: value addition and waste. Value addition activities are everything that advances you towards accomplishment of your mission. Anything else is waste.
It is not that we deliberately choose to do something that we would not like to do. But rather circumstances make us agree to assignments and tasks. When we look back at these agreements we thinks that we should not have accepted those tasks. Sometimes goals that seemed important yesterday become not so important today and suck our capacity to undertake new endeavors.
So when you find yourself in a situation when you can not find time for a new and valuable accomplishment you want get rid of two types of "time eaters":
- Inertia. Things important in the past, which have doubtful value today. Seth's Godin "The Dip" discusses this in detail.
- Monkeys. Something that sits on your back and distracts from important things. On this I'll highly recommend Monkey Management episode of Project Management Podcast.
Start with small. Send your colleagues link to the podcast and the presentation on Monkey Management and begin getting your time back.
You vs. your inbox
On the average I receive from 50 to 200 e-mails in my corporate Inbox which I believe is not high number at all. Still despite of the techniques I use to keep my Inbox clean some e-mails need to be stored for reference for months in archive. As you might expect it is difficult to find required e-mails in archive although I try to keep them in logical structure.
Right now I use Windows Desktop Search and this tool is really good in full-text search when you need to find single e-mail. It also has some basic capabilities in handling e-mail threads. But unfortunately nothing more.
A friend of mine told about Xobni. An Outlook plug-in which Bill Gates refers to as "the next generation of social networking". I hope to allocate time and give this tool a try as I see no way how my e-mail counts may drop.
Blogless month
This was a blogless month for me. For a number of reasons and for a none good reason among them. But this, of course, could not stop the world from revolving. So several events which worth attention happened last month:
- Ukraine Joins the W.T.O.
- SoftServe recognized among Top 10 Outsourcing Companies in Eastern Europe
- Ukrainians Took Second Place at World Championship in Biathlon
I have many things to say and I hope to start doing so over the next days.
Outsourcing is not only about ODCs
Many articles on the topic of outsourcing to Eastern Europe, Ukraine, Russia etc. discuss establishing offshore development centers (ODC, unfortunately no comprehensible definition in Wikipedia). But ODC is not the only and for sure not the single universally effective means of offshore outsourcing.
For example, Outsourcing to Ukraine: Why the US$246 Million Industry Is Expanding to the Provinces provides a good analysis of Ukraine's outsourcing industry geography and other internal drivers:
... [Ukraine] has a large pool of highly educated people and the geographical location was convenient. He found the English competency of his employees was better than in China. And the cultural differences were less noticeable compared to those in India and China.
Many of the challenges described in this article and associated risks can be transferred to outsourcing vendor. This is a great idea for companies which do not have software development as their core competency or smaller companies for which it is not feasible to establish ODC. In this case vendor will provide you with certain level of service and take care of all the risks.
How much more can we outsource? gives a good notion of difference between 'outsourcing' and 'offshoring'. And when you contract offshore outsourcing provider such as SoftServe, you will be able to realize offshore benefits without all the burden of managing a branch in another country.
Unexpected implications of computing
Did it ever occurred to you that one particular idea or technology which is pretty concrete and utilitarian can suddenly reveal unexpected and beautiful applications? Sometimes one even would not think that any technology should be applied at all. This is what really amazes me about computing and will never our profession completely mechanistic.
Through ACM TechNews I've read article Virtual Extras. It subtitle did not promise anything "extra" at all. Just serious advances in development of animated mob scenes:
Giving each member of a digital crowd its own personality could make animated mob scenes more realistic.
But when you read further you come across
... software even manages to capture the way in which two crowds of people, moving through a narrow corridor, naturally form two opposing lanes.
With this things start getting interesting. And finally you get
Beyond movies and games, there's increasing interest in using crowd simulation to help conduct fire and disaster assessments of large public spaces...
Isn't it amazing that purely entertaining-targeted research suddenly finds such non-trivial application. Do you feel the same after reading the article?
Functional programming returns
Long ago I took a huge interest in functional programming languages and their theory underpinnings. My master's thesis also was related to functional programming. But later I went into full-time position in industry and cruel nature of business started putting its real-world limitations on technology selection for software projects...
In recent issue of local IT magazine a second in a series article on functional programming was published and I really enjoyed going back to the times when I lived in this world. So if you happen to know Russian and know something about functional programming or, probably, think you know everything about programming, but never heard the words Haskell, higher-order function or strong typing, I encourage you check out these articles:
Project management of future
If you follow advances in agile project management you've heard of Declaration of Interdependence (compare it to Agile Manifesto). This Declaration reflects progress of software development from romantic profession of "ugh, this guy can command a computer" towards pragmatic business and established engineering discipline. We no longer can afford doing technology for pure technology sake. Economics comes into play. Surprising thing to me is that since I first learned about DOI I haven't heard of it at all. Despite of being a well thought out piece of knowledge it did not get referenced too much. Mike Griffiths provides a good analysis why this may be so.
Mike references the Made to Stick book which happens to be on my bookshelf also. Looks like I need to push it up on my reading list.
Do we unnecessarily complicate things?
Today I was thinking of establishing a clear versioning system for one of the projects I'm managing. Usually I start such kind of activities with research of past experience on the Internet. I did so this time and found a bunch of interesting links. Here are some to name a few:
- Software Versioning article at Wikipedia provides good overview version numbering schemes adopted for different products. Also interesting is discussion of political implications of software version numbers.
- Eclipse Version Numbering discusses the topic as applied to Eclipse platform. It nevertheless gives a good reasoning behind one particular scheme and show what software engineer needs to think about with regard to versions and configuration management approach.
- Which Version of Version? Also describes one particular versioning scheme.
- What's In a Version Number, Anyway? Raises usability concerns of version numbers for mere mortal software users. Microsoft Office versioning approach is also discussed here. Additional point of interest is comments to this post.
- Decoding Office Build Numbers. Description version numbering scheme currently used by Microsoft Office products.
I generally agree with Jeff's ideas that versioning often is overly complicated and confusing for end-users and even sometimes for developers themselves. I think developers' love for "magic" numbers and words comes from natural human's desire to differentiate from other humans. In this case developers differentiate by possessing knowledge about all those tricky version numbering approaches which are hardly comprehensible by mere mortals.
Albert Einstain once said "Things should be made as simple as possible -- but no simpler." I believe we should follow his advice in giving versions to our products.
Things to watch in 2008
What would you think is in the list of 80 things to watch in 2008 published by JWT (the United States largest and world's fourth largest advertising agency)? Yes, it is "Outsourcing to Ukraine (and other Eastern European countries)" (look for item 50 in the list)! Working in Ukraine's IT industry I'm just in position to watch that.
The list in general is quite interesting. Be sure to read it all.
On outsourcing. Again
Quite a time ago I wrote about "good" outsourcing which is focused on business value delivery rather than on potential cost savings. Even when we speak about outsourcing to offshore locations costs should not be the major factor influencing the decision. What is more important is the ability of the vendor to deliver on promise. Deliver business value on schedule and within budget. If you read Outsourcing Handbook by Construx you will see that cost savings are not listed among 10 common reasons to outsource a project. Although the study did not explicitly focus on offshore outsourcing I believe the results would not much different. Outsourcing is there to help you leverage your own potential by developing your core competencies. Budget savings should be seen as vendor's ability to master his software engineering approaches to achieve higher efficiency than with in-house development team.