Monthly Archives: December 2011

Agile Offshore

Everybody wants to be Agile these days.  And what’s the alternative?  Being hidebound?  Unresponsive?   Inflexible?  On they even list “stupid” as an antonym of “agile”.  All of the opposites of “Agile” sure sound like words I don’t want associated with my software development process.

When I first heard about Agile software development, it didn’t sound all that revolutionary to me.  While you still find pockets of waterfall software development processes out there, I think most forward-looking people recognized a few years ago that waterfall processes exhibit a poor reaction time to market feedback, and that these processes have a fundamental assumption that is demonstrably false: that you can know with certainty the requirements for a project at the very start, and that those requirements won’t change over time.

Most of the techniques used in Agile development have been gaining ground for the past several years–-incremental development based on a backlog of requirements, doing frequent releases of a web software product, being hard-nosed about the scope of a release since there is always another release coming soon afterwards (so new requirements can be accommodated then), and, crucially, trying to better connect developers with “the business” (for some reason this use of the term “the business” always bothered me, so I feel obligated to put it in quotes.  I guess my issue was that it wasn’t always obvious who “the business” was, and I often wondered why the business wouldn’t answer the phone and give me answers on how to prioritize projects.  It reminds me of Henry Kissinger’s quote about Europe: “Who do I call if I want to speak to Europe?”).

But I have to give the guys who coined the name “Agile” some credit for packaging up some good ideas that had gained currency, and creating a kind of rallying flag that developers, product managers and “the business” could rally around, and say, “we need to be Agile.”  So now you have a whole Agile industry: Agile books, Agile training (Agile Academy has some videos that serve as a nice intro to the Agile concepts),  Scrum Master certification courses, and job descriptions that say candidates need Agile experience.  And of course there are Agile conferences and all of the associated conference schwag (check out AgileEE in Kiev!  I’m too cheap to attend the conference but I’d love to get one of the t-shirts).

In the offshore development world, it seems that Agile has really caught on.  I had a chance to visit some South American offshore software development companies recently, and the CEO of one service provider really nailed what’s driving this.  He said that “wherever possible, we’ve moved to an Agile process with our clients.  This is how young people want to work these days and using Agile allows us to attract developers.”  So he wasn’t merely listening to his customers, who wanted to use an Agile process.  He was pushing an Agile process on his customers because his developers wanted to work that way.  Developers don’t like working on features that don’t get used, and it drives them crazy working on a large project that’s completely off the mark due to poor initial requirements definition.  So an Agile process offers developers some hope that their hard work will actually hit the mark.

Using an Agile process with your offshore software developers requires a few adjustments.  You can’t do an in-person scrum meeting each day, of course.  But Skype or teleconferences can be used.  While I’m not of the view that each and every offshore developer needs to speak perfect English, your team leads will need to speak good English to allow this daily communication between the various project team members.  One tenet of Agile that isn’t always followed religiously when using offshore development is holding a demo for the business at the end of a sprint.  When I asked my various Agile hosts in South America whether they really got the business to watch such a demo, the answer was often “no, but we do the demo anyway, for ourselves,”  and sometimes for a Product Manager located onshore who acts as a proxy for the business.   So connecting with the business is still the weak link in these processes, and it’s even more challenging when you are using an Agile process offshore.


Offshore Software Development in Eastern Europe (Part II)

Here is part II of my post on software development offshoring in Eastern Europe.  Let’s talk about some of these Eastern European countries in a little more detail.  Based on my last post, I think the following are the most interesting countries if you are cost sensitive, and are looking to locate somewhere with a good critical mass of software engineering talent:

Ukraine – Ukraine has the most developers of any of the countries shown in the table in my last post, and the costs are reasonable (although the costs have been rising continuously, with a few lulls, for the past decade).  I’ve been working with software development teams in Ukraine for over a decade now, and I’ve seen very good results.  Politically, it’s a flawed democracy.  They had the Orange Revolution back in 2004, and everyone was optimistic about the future, but there’s been some backsliding lately and people are generally pretty cynical about their politicians.  No shit, right?  OK, but I think people’s cynicism is even worse than in the USA.  I think it’s better than Russia, in the sense that they actually had a peaceful transition of power in the last presidential election, but there’s still some doubt about how it’s all going to work out.  And every couple of years there is some dust-up with Russia during the winter time, and the Russians threaten to shut off the gas and make half of Europe freeze.  (I was planning to go to Kiev one time when the Russians were threatening to shut off the gas.  I asked a Ukrainian colleague if I should be worried about coming over there during the dispute, and he said “Don’t worry, they’ll steal plenty of gas ahead of time from the Russians!  It will be fine.”  Sure enough, my hotel was warm during my stay.)  How does this affect you if you’re going to do some software development in Ukraine?  Not much, in my view.  In a weird way it might even be an opportunity.  With former PM Tymoshenko in jail, and Yanukovich in power, Ukraine isn’t joining the EU any time soon.  So rates for software developers should continue to be below those in Poland and other EU countries.  Unlike Belarus, the government doesn’t seem to have as well-thought out a strategy for attracting software-based businesses, but plenty of name brand named Western companies are doing development in Ukraine these days.  It’s a far cry from the early 2000’s when I first started visiting Ukraine.  There were not really any big shops back then and maybe I was deluding myself, but I felt that with 15-20 developers we were a “player”.  Now I hear that Luxoft has around 3,000 developers!

Belarus – For quality of developers, “critical mass” of developers, and cost, Belarus rates very highly.  If you compare it to, say, the most economically advanced countries in Central and Eastern Europe, Belarus is around 17% less expensive (see my previous post), and the quality of developers is strong.  People claim that Minsk was one of the top three “technology centers” in the old USSR, alongside Moscow and St. Petersburg, so it has a legacy of producing good technical talent.  (Interestingly, people claim the same thing about Kharkiv, Ukraine, so I take these claims with a grain of salt.  But, anyway, the point is that you can find good developers in Belarus, and in Kharkiv for that matter.)  Additionally the domestic IT market is relatively small in Belarus, so this leaves a good supply of developers available for the IT export market.  The only problem with Belarus is that it’s the last dictatorship in Europe, so this tends to make people nervous about investing there, since it looks like the place is sure to see some political excitement over the next few years.  If you invest in Belarus, you are hoping that they can have a “velvet” or “Orange” transition of power, with a minimum of violence and disruption.  Even though politically it’s a basket case, Belarus has apparently created efficient legal structures and a “Hi Tech Park” that facilitates the creation of software-based businesses.  Additionally, the tax system for IT companies is quite clear, and advantageous.  This means that companies can focus more of their energies on software development, and less on figuring out how to deal with the government, which is an issue in other Eastern European countries.

Romania – I know less about Romania but have heard some good things about it.  From the numbers, the cost is bit higher than Ukraine or Belarus, but still much lower than Poland or the Czech Republic.  But if you value the idea of being in the EU, and having legal and IP protections that are at the EU standard, you might be willing to pay a little more to get that.  Romania’s not quite the lowest cost EU country in the table—that’s Bulgaria –but it has a good combination of cost and critical mass of software developers.  So I’m going to put it on my “up and coming” list and try to check it out in a future trip to Eastern Europe.  The flip-side of being an EU country, though, is that we might see wages converge with the other EU countries over time.  And you need to adhere to EU labor standards, so it’s not as easy to dismiss bad employees.  The other issue is that the people in Romania are now more mobile, since they can take jobs in other EU countries.  So your key developer can leave and take a job in Germany tomorrow.  This risk is lower in Ukraine or Belarus, which are not EU countries.

OK so what about that other Eastern European country that isn’t on my list?  Lithuania?  Albania?  No, I’m talking about Russia.  Of course, Russia does have plenty of software developers (and credit card scammers, virus writers, zombie network owners, etc.) and has even produced some software innovations of its own (e.g., Kaspersky Labs), but right now it’s not as popular an offshoring destination as the other countries on my list.  For one thing, it’s more expensive than other Eastern European countries.  The oil sloshing around in the economy raises the prices of everything else—real estate, hotels, and software developers.  I’m sure you’ve heard that Moscow is the most expensive city on the planet to do business.  There’s also the issue of legal, IP, and property rights.  It’s doubtful that some Komisar could grab your IP.  What would he grab?  Your source code?  You’ll have that backed up in your home country.  Still, outside of the oil and gas sector, Western companies just aren’t interested in investing in Russia, since they don’t feel like ending up having their business stolen from them and ending up in a cage in some kangaroo court.  So despite the talent in Russia, it doesn’t make a lot of people’s lists as a viable offshoring destination.  Maybe they’ll get their act together one day, but there doesn’t seem to be much incentive as compared with other Eastern European countries that don’t have oil and need to spur investment in other industries.


Offshore Development – Eastern European Countries

I’ve been working with developers in Eastern Europe since about 2000.  Much of that experience has been in Ukraine, although I’ve had a chance to do a little work with a group in Belarus, and to benchmark software development options across Eastern Europe.  If you’re considering moving some software development offshore, here are some thoughts that might help you.

Central and Eastern Europe – Country Comparisons
(source: Central & Eastern European Outsourcing Association Report 2010)
Poland Hungary Czech Rep. Slovakia Romania Ukraine Belarus Bulgaria
Developer Rates (USD/hour)
Project Manager









Sr. Developer









Middle Developer









Jr. Developer









Blended Average









Number of Employees in IT Outsourcing









1 year growth in IT Outsourcing Staff









Take a look at this data, which you can find on the web site of the Central & Eastern European Outsourcing Association.  My experience is that this data is fairly accurate, which isn’t a given with secondary sources such as this.  It reveals a few interesting facts:

1)      The prices in the countries at the less expensive end of this table will look familiar to those of you who’ve done work in India.  Software development talent now exists in a global market, and it’s a pretty efficient market.  The Central and Eastern European countries that have their act together economically, for the most part, such as Poland and the Czech Republic are going to cost you more.  These countries are part of the EU now.  The costs are actually a bit higher than they look in those countries since you need to adhere to European labor rules and pay European-style payroll taxes.  But you get something for that, which is the relatively high stability of those countries and an improved ease of doing business vs. Ukraine or Belarus, for instance.   You also get court systems and IP protection closer to what you are used to getting at home.

2)      The highest concentration of talent is in Ukraine, Romania and Belarus.  The numbers of people in IT outsourcing strike me as too low (I think these numbers are probably just people working in offshoring shops, focused on the US and Western European markets, not captive centers run by US and European companies, or companies serving the local markets).  But they still provide a relative sense of which countries have developers and which ones are producing more each year.

3)      So assuming you want to be working in a country with a low cost and a high concentration of developers, and one which is producing more developers each year, you might want to look seriously at Romania, Ukraine, Belarus and Bulgaria.