A bit of loose change about software development…part 2
There comes a time when too many projects come in and the ability for the current development team to keep up is an impossible dream. What happens next is usually to determine the time to deliver the project versus the other projects that are due.
Then the questions come up, ‘Do we hire another internal permanent programmer?’ or ‘Do we hire a temporary consultant that is a well rounded programmer and can help on all of the projects?’ or ‘Do we hire a temporary consultant that programs in specialized areas for one or more of the specific projects?’ or ‘Do we look to outsourcing to a development team to take on one or more of the projects?’.
No company usually wants to nor can afford to walk away from a project. With the current state of the economy, most companies are less likely to turn down a project and also less likely to hire another employee.
Several companies are looking to outside consultants on a short term or even long term basis to get that extra work taken care of. Lately, even more companies are taking the route of using outsourcing due to general versatility and costs.
The offshore outsourcing development teams can be found mostly in Asia, the Middle East and Europe. Even though one would think that software programmers should be the same when using the same programming language no matter where they come from, that is not usually the case.
In my experience, each culture has their own characteristics and they inherently are carried over in their development practices. Though nearly all Asian countries are innovative and have a strong work ethic, they commonly tend to miss the big picture of producing a solid application and will make some portions of the application better than anyone else in the world and other parts extremely lacking in functionality. Generally, these programmers are very proud of their ability to save costs for the company. Though they have some good ideas, often the steps they take to save costs reflect issues for the customer.
Some areas of Asia and the Middle East tend to put quantity and profit before quality and the result is poorly designed applications with bloated code which in many cases has merely been copied and pasted so that the line code count and the application size are larger, implying a lot of work having been done. Many of those same programmers have terrible or non-existent documentation so when other programmers need to work on the code, it is nearly impossible.
This is a short term way of doing software development business and when the companies that are paying these offshore companies find out what has been done, the business relationship is severed.
European programmers on a whole take deep pride in their work and are often perfectionists. They expect to have the time to do the work right and the pay that goes with it. Not all areas of Europe are costly, some areas are and you usually find phenomenal programmers specializing in key areas of development in the highest paying regions of Europe.
That is not to say that there aren’t great programmers in less costly regions of Europe. Many times, equally impressive programmers reside in their home country and do not want to leave their Family just to get more money. With these developers, you get the best of quality and cost most of the time.
A lot of the consultants to be found in the world are varying in expertise and really prefer to not hang their hat at any particular place for too long. They like the intrigue and excitement of something new and challenging to work on and somewhere new to travel to all of the time. A lot of the times, they make a lot of money too because of their unique expertise and ability to effectively jump right into the code, do their job and jump back out. They are usually used to having to produce good code and good documentation to go with it. This is a plus for the company that hires them on occasion.
Usually, any outside service provider is subject to the requirements of the company paying them. This means that in reality, if you specify the requirement for the code to be reviewed by your internal programmers for quality, that the compiled code is able to be qualified and/or certifiable on the platforms you specify and that all steps to work with the code and/or compile it are documented to your satisfaction, you will have less risk of problems later.