Archive for the ‘Thinking aloud’ Category

A declining gap between onshore and offshore rates

Saturday, March 17th, 2012

I remember back in the year 2000 a going rate for a smart offshore developer was about $8-12/hour. At the same time, a good software engineer in Northern Virginia had a salary about $80-90K (which translates to about $50/hour).

So, it was no brainer to offshore as much work as you can (to get 4-5 developers for the price of one).

Now, the pricing has changed quite a lot. The offshore hour rate become $20-35/hour and an expenditures on local software engineer went up to about $75/hour. So, it’s now 2 to 3.5 offshore developer for the price of one onshore developer.

Frankly, one guy sitting in the office and communicating directly could be more productive (or at least of the par) than two offshore guys. So, on the first glance, amount of offshoring should go down.

However, there are couple wrinkles:

– An offshore personal pool is much-much bigger than local US (or European). So, if you want to find somebody good, smart and passionate, you have way more fitted candidates worldwide than in 20 miles radius.

– I believe offshore companies and developers has made tremendous progress for last 10 years. They learned how to work with customers, learned whole software development process from a cradle to a grave of a project and so on. (Just to make sure that it’s clear. I don’t say that ALL companies become good. I say that number of experienced software developers and managers became much higher within last 10 years).

So, long live offshoring ๐Ÿ™‚

Too many ways to skin a cat?

Wednesday, March 7th, 2012

Do you follow a waterfall process or agile?
Do you use TDD or BDD or maybe D3?
How about SOLID principles? DRY?
I hope that you are aware of KISS and “You ain’t gonna need it“.
Do you plan to expose RESTful or SOAP web services?
What language and frameworks do you use?
How do you structure code, branch it, build your project?
How do you design, review code, comment code?

I can keep going like that for hours… There is unbelievable amount of HIGH level decisions which are made for each project. A lot of them have they own dependencies on other principles and decisions. And all of them will stir the development one way or another and presumably can make a huge difference.

And now the final and most important question. How do you know that your (or your team/company) choice is good and competitive?

I understand that there is no rational way to measure that. However, “It worked for me on last project” sounds like a weak argument.

Things which I like.

Saturday, February 5th, 2011

I just thought that I grumble too often … “Ruby doesn’t have brackets around arguments”, “iPhone functions doesn’t return proper error codes” (Mainly I related this to articles which I wrote in the russian part of this blog. However, I do this often outside of blogging too). And most likely it looks like old-old grandpa creeping out from his mossy home and telling everybody that grass was much greener in his days.

So, I decided to make a list of software development things which I like:

– I played with Ruby just a little bit and I enjoyed it at the end. It’s very flexible and fast for prototyping language (especially ROR).

– I like MSDN documentation (Windows API description). It’s really detailed and you can always find code example in several languages. Also, it always comes first or second in Google search.

– I like RFC. I know that nobody sane will read it as bedtime story. However, I can’t imagine how the world will look like if key protocols and other stuff weren’t standartized.

– I like C#. Mainly I like that I can do some simple stuff with it very fast (comparing to C/C++). I don’t need to worry about memory management, finding required libraries and so on. Sure, there are other languages which have that, however this one is closed to C++, which I am using a lot, so it’s easier for me to switch.

– I just love virtual machines. I can have dozen of images with different IDE’s, servers, SDK’s. They help me a lot with keeping my host machine clean.

– I like big amount of well debugged and well coded open source projects, which you can use (and save month or even years of work).

Well. That’s it for right now.

Oh, by the way, the grass was really greener in my days ๐Ÿ™‚

To work, or not to work?

Thursday, January 13th, 2011

Just to make a dent in it. Here is my first English based article (the rest of them were in Russian).

You know what wonders me? Why people just sit in a office doing nothing or doing a crappy job? It seems strange for me that they come each day to the office and get bored, look whole day at a watch, counting how much minutes should they wait until they can leave workplace.

The thing which I don’t understand, what they are getting from it? They spend the same time in the office like hard/smart working people. They don’t receive higher satisfaction from their job. They get (usually) lower salary. They get less respect.

So, why do they choose this?

The only thing which pops up in my head is that they don’t want to think. That process of thinking make their undertrained brains sore.

Anyway, It’s hard for me to understand, why anybody wants to be miserable each day for 8 hours at row, if you can start doing something interesting and feel good about what you are doing.