The books you read, or maturity test
Some time ago I was reminded of an article by a man whom I know personally and am really proud of being aquatinted with. In article "10 software developers' books which shook the world, but are still unknown in Russia" (in Russian) Andrey Terekhov discusses top 10 books from his library which are definitely worth the time you spend reading them. These books are "must read" for those who want to be software engineers instead of mere "programmers".
What is interesting about this list is that not all the books would be "Yes, sure! You've got to read them!" for everybody. While going through the list I understood that, for instance, "Peopleware" will not cause reader's eyebrows to go up. But with following 3 titles:
- Jeffrey Ullman, "Elements of ML Programming"
- Clemens Szyperski, "Component Software"
- Andrew Appel, Jens Palsberg, "Modern Compiler Implementation in Java"
I would expect that some people say "Hey! I'm a Java/.NET/PHP/Ruby/whatever developer! Why do I care?!" And those are people who fail maturity test.
Mature people (this has nothing to do with age or junior vs. senior developer) look for and appreciate opportunities to widen and deepen their knowledge and understanding of things. They realize that going to next level also means going beyond current horizons. And sure way to do that is study adjacent (and not only) areas of knowledge even if this new information is not immediately applicable to what they are doing now.
So do not miss opportunities to go beyond and know more than you need today to make sure you know enough tomorrow.
Flow of Time
Time flows like the water through your fingers. Probably, time means to economics more than anything else.
"The supply of time is totally inelastic. No matter how high the demand, the supply will not go up. There is no price for it and no marginal utility curve for it. Moreover, time is totally perishable and cannot be stored. Yesterday's time is gone forever and will never come back. Time is, therefore, always in exceedingly short supply."
Peter F. Druker "Effective executive"
We Can Do It!
My colleagues presented me with a poster We Can Do It!:
Do you think they are getting at something? :)
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.