Thursday, September 19, 2024

Global Factors Impacting the Software Development Industry

One of the great equalizers’ in the global economy is the Internet and other forms of modern telecommunications. Today, unlike just a few short years ago, programmers in one part of the world can work seamlessly on projects across the globe. Likewise, work may be distributed to programmers in many locations – unrestricted by time or distance – to be reassembled as working units back home.

What is actually more important than the pure communications aspects of software development and project management can be found in how the software development industry has changed in general during these few years:

  • Programming and general software development is no longer a highly specialized’ or rare’ skill – universities and colleges throughout the world have increased their output dramatically in these areas of focus for the past 5 to 8 years.
  • Private Colleges, business schools and commercial training institutes were even earlier adopters of the IT training and get-rich-with-an-it-diploma programs – flooding the market with truck-drivers-turned-systems-engineers, and network administrators who’s previous work provided them with a free paper hat.
  • Thanks to the dot-com bust in recent years – many web experts’ are now on the unemployment line. (Either unable, or unwilling to accept and adapt to the fact that the work they formerly received $100K+ per year for can now be done in Russia for 20 Euros per hour.)
  • In the reverse – the global economy also means that companies can sell their products and services to a global market – provided that their products and services can be developed and delivered effectively, efficiently, and for a reasonable price.

As well, many of the recent graduates are lacking in basic scientific, mathematical and analytical skills. They may know how to code’ – but they may not have a grasp of the creativity and science to develop creative and innovative solutions to business problems. These very skills are what have made the Russian educational system stand out. The Russian focus on fundamentals, science and logical thinking give their graduates the ability to develop creative solutions despite limited resources.

Unfortunately, the situation is unlikely to change in the nearest future. Although universities and colleges are cranking out computer science’ graduates – many are coming to the market with the hopes of making a lot of money very quickly. Despite the recent downturn in markets – salaries in North America and many European countries are still artificially inflated.

Another problem these days is rapid staff turnover – and a loss of company loyalty. In North America it has become frighteningly easy and popular for people to jump from company to company. Sometimes employees are lured away by money – other times it is perks and benefits or more exciting and challenging work. One would almost wonder when looking at some people’s resumes whether they will even be able to stay with one company for just one entire year.

This trend has led to an upward spiral of salaries, benefits and perks – reaching the point where even to attract mediocre staff – you have to give away benefits and salaries formerly only available to top managers and executives. As well, unless you are able continually offer more and more – people will quickly become dissatisfied and move on. This is simply the law of supply and demand at work. (Employees demand – you supply!)

In Russia, and many other countries abroad – the situation is quite different. Companies who are able to offer very modest benefits and salaries as compared with their western counterparts are highly sought after by job seekers. When a person lands a job at a stable Russian company with a good salary and benefits – they are going to put forth their best effort to keep the job – because they know that there are hundreds of people just dying to snap up their position if they leave.

This reversal of demand between the companies and job seekers means that offshore software development companies can pick and choose the best people possible from a much wider selection. Relaxed labor laws and a huge labor pool mean that it is much easier to replace workers who don’t perform.

The overall result is that Russian companies typically have a much lower turnover rate than their North American counterparts. People who work together over many years on many different projects tend to have much better communications between team members – teams become tighter, more dedicated and more focused. Working on many different projects gives each team member valuable skills and knowledge to carry through to future projects.

Today, the world is a very small place – and our competitors are no longer just those businesses within our own town or city – they may be anywhere in the world and in many cases are not restricted by time or distance.

During the dot-com boom period, companies used up all the local resources they could find, and used offshore resources to build staffs they couldn’t otherwise find. After the dot-com bust – companies are struggling to survive – and simply cannot afford to pay inflated salaries of internal staff, or local companies for basic work.

It is no longer a question of whether or not you want to have your software development done offshore – it is a question of survival!

How the Offshore Software Development Process Works

The basic steps in taking your idea from concept to reality are actually very well structured and fairly simple. Depending on your personal level of sophistication in the software development process, and how well you are able to prepare your specifications, the process may go one of two ways:

  1. If you have only limited internal software development resources, and are unable to prepare a detailed technical specification yourself.
  • You develop a statement of concept, or a proposal that outlines your idea.
  • You locate a suitable offshore partner to work with. You may find them by searching the Internet, but better is to have referrals and references from satisfied customers. (This part of the process could be a research document of its own.)
  • Your partner should provide you with a signed Non-Disclosure Agreement – either of your design or theirs. You would then provide all information about your intended project to your partner.
  • Your partner should be able to give you a very rough idea how long your project should expect to take, and roughly the amount of resources (person-hours/days/months of development)
  • If you have a budget for your project – you may be at odds with yourself on whether or not to release the figure to your potential partner. If you are worried about the partner padding up’ the estimate to meet the proposed budget – then you’ve picked the wrong partner! In my experience, if a potential client gives me at least a ballpark’ figure on the proposed budget, I can almost instantly give a yes or no answer as to whether it is feasible or not. This saves everyone a lot of time and effort.
  • REMEMBER: At this point, the best you will receive is a VERY ROUGH estimation – however, you should be able to judge whether your project is feasible or not and whether or not to proceed to the next step. (DO NOT expect to receive a fixed-price contract unless you are able to provide detailed requirements specifications as in the second case below.)
  • The next step is to contract the partner to work with you to develop the idea into a concept document, and then eventually into a software specification. The partner will normally be paid for this. The end result is that you should have a detailed enough specification to either attempt to recruit better prices for the development work, or to proceed with your current partner.
  • NOTE: This is often the point where you may be tempted to take the lowest bidder’ rather than to continue with your current partner – use extreme caution if you take this route because:
  1. the lowest bidder may not have the skills, expertise or experience to complete the project – and you’ll be left with nothing, and
  2. you will alienate your current partner, who has already invested a lot of time and effort above and beyond what they have been paid – don’t expect them to want to work with you again.
  • At this point, you should have a formal proposal, which should include a schedule and specification for the desired result. Upon your approval to proceed, many offshore development shops will require a start up payment’ before work begins. This is typically 5% to 30% of the total budget for the project.
  • Here is an example of a typical progress payment’ schedule:
    1. 25% payment at the beginning of the project
    2. 50% payments distributed through the course of the project – tied to major project milestones and sign-offs
    3. 25% payment with 30 days of project completion and acceptance.
  • This type of schedule benefits you by ensuring that at no point you ever have more than 25% of the project funds at risk’ – it also ensures that the developers have an incentive to meet milestones and achieve signoffs – and finally it ensures that they have an incentive to deliver good, high-quality, bug-free code to achieve the final payment.
  • For the development company, this kind of schedule is also of benefit. It ensures that no project is started and receives resources until there are funds available. It helps keep developers and project managers on-track and accountable, and it helps ensure that test and QA staff have high incentives to do excellent work.
  • In short – it is a win-win situation!
  • If you are a more sophisticated’ client, have existing software development resources in-house and can prepare a detailed software specification.
  • Perhaps you are considering offshoring your project to obtain the benefits of time or skills you may not have available, the scenario is typically accelerated as follows:

    • You and your team will have a well-developed product design and specifications. You may have a detailed project plan, and time/resource estimates.
    • You locate a suitable partner; exchange NDAs and your project package.
    • The offshore partner will prepare a detailed project estimate that either is in agreement with your own, or the differences would be pointed out. It may be possible for the partner to provide a fixed-price contract, or possibly not without further paid estimation and revision.
    • At this point, you will either agree to proceed or not – and if so, then agree upon a progress payment schedule.
    • Project proceeds to completion.

    Benefits of Offshore Software Development

    Virtually every client has slightly different needs and expectations about how Offshore Software Development can benefit them. I have broken it down into these main categories:

    • Cost reduction
    • Time to market
    • Experienced team members
    • Skills and development
    • Access to the latest, hard-to-find skills
    • Flexible teams, team scalability and employment terms

    Cost Reduction

    Many people believe that the sole motivation for using offshore software development services is merely as a means of reducing cost by taking advantage of lower general salaries and living costs abroad. Although this is certainly one factor – there are a number of other equally important benefits you may not have thought much about. These will be covered further below.

    Regarding issues of cost reduction, you always need to think about the “Loaded Labor Rate”. Although slightly different for full-time employees, contract employees and local contractors – they may include many extras’. For example, for a full time employee your list of costs starts at the recruiting stage. Professional recruiting companies typically charge 30% to 100% of the annual salary – sometimes more! Recruiting cycles for top specialists can be from 3 months to over a year. Can your project wait that long to begin?

    Other factors in the loaded’ labor rate include not just the salary’ or per-diem’ rates – but must also factor in employee benefits such as training, medical, dental, vacation, pension plans and co-contributions, stock options and stock plans. Then there are fixed costs such as office space, computers and office equipment, telecommunications, furniture, and more. So, your $75K/yr employee, in general, has now cost you a minimum of $150K to $200K just for the first year.

    Another point to consider: how many employees are truly productive’ and contributing’ to the project from the first day?

    When you hire a new employee, you’re typically looking at several months of training and indoctrination to get them up to speed on your company, your policies, procedures, products, services and standards for documentation, coding and more. This adds typically
    3 to 6 months to the date when they can actually become fully productive’ and a member of the team’. How much extra does that cost?

    Compare this against the price of an offshore employee – just 20 Euro per hour (on average), including all benefits, administration and loading. Plus – if they don’t work out – just replace them with another – no questions asked!

    Time to Market

    Every product or service has a “window of opportunity” – the span of time where it must reach the market and become the leader. Missing the window means that at best case – your product or service is a second-best wannabe’ competing with the leader – in worst case, it falls into the who cares’ category of also-rans – and quickly into oblivion.

    Time to market is probably one of the most important advantages that offshoring your software development work will give you.

    Let’s take a simple example: if you and your company wished to launch the development of a new product using the latest software tools available and you wanted to start tomorrow – could you do it?

    In most cases – (if they are honest) the answer from your project and project managers would be a resounding “Not A Chance!”

    The reasons are simple: if your company has managed to even survive the past 5 years – from dot-com-bust through wars and soft markets – terms like downsizing’, staff reduction’ and focusing on core competencies’ should certainly be familiar to you.

    In most cases this means that the dead wood’ has long since been cut away – and the people who are left are stretched to the limit with all the work they can currently handle.

    Add on the factor that probably none of the few remaining staff have had the luxury of frequent high-end, vendor-provided training such as offered by Microsoft certified training centers to improve and upgrade their skills in the latest technologies – both for reasons of cost and time constraints.

    This means the people who are left, are not only too busy and overworked to begin new projects – they are also severely lacking skills and experience in the latest new technologies like .NET, J2EE, CORBA, SOAP and many others.

    Lastly, even if you wanted to hire top developers with the latest skills – you’d have the problems of finding them, recruiting them, and being able to afford them! Top talent is always expensive. As discussed earlier, recruiting costs can easily exceed the annual salary for these kinds of professionals. Top professionals can take many months, if not years to find and recruit. Even in Russia, top professionals with the latest skills are becoming more and more difficult to find – so companies here are now beginning to grow their own’ internally.

    Your choice is very simple – start your project quickly and have a chance of beating your competitors – or try to do it yourself using local resources and miss the critical window of opportunity.

    Experienced Team Members

    In most offshore software development shops that have been in business for any length of time, you will find that the developers have gained tremendous experience with all kinds of different business systems and with all levels of code – from binary and assembly languages for real-time controllers and dedicated microprocessors – all the way to the largest international distributed financial systems, Internet and intranet portals.

    This vast pool of experience means that you have an excellent chance of getting exactly the person you need, exactly when you need them. Another advantage is that these skills readily translate into better quality, and more rapidly developed solutions for your projects. Many times, tips, tricks and tools developed on one project can speed up the development of other projects.

    (Naturally, project-specific code is excluded under terms of non-disclosure agreements – however, tools and utilities are reused wherever possible.)

    In addition to the experience of the team members – you are able to call upon the experience of the team, and the company. Many offshore software development companies have highly optimized productions systems and process flows already established. They make their money from turning projects around quickly and efficiently. This is in stark contrast to some IT shops that must justify increasing budgets with increasing staff and increasing delivery times.

    The experience of the company is further documented by CMM and ISO certifications. These third-party evaluations are an excellent indicator of the maturity of the company, the quality of their processes and levels of documentation.

    Skills and Development

    I spoke a little about upgrading and maintaining the skills of your developers if you are doing development projects in-house. This is incredibly important these days because of the speed with which technologies are changing and evolving. For example, your developers with many years of Visual Basic experience will find themselves virtually useless when attempting their first project in VB.NET – it is a whole different beast!

    Does your company want to spend the money, and lost productivity to continually train, and re-train your top developers – only to find that they’ll jump ship at the next higher paying job offer? This is the risk you take when developing software in-house.

    Another factor is experience – if your top developers are only used to developing one type of code, with one type of coding style, with one set of tools and technologies – how will they even know there are better ways to skin that cat!

    In contrast, by offshoring your development work, you benefit in a number of ways. First, most offshore companies, who have been in business for many years, have no doubt worked on many, many different projects – with many different tools, techniques and technologies. Some developers become multilingual’ and comfortable on both C++ and VB, for example – others become comfortable on both UNIX-based and Microsoft based operating systems – others tend to specialize more.

    Offshore companies have a vested interested in using the fastest, best and most efficient combination of tools, techniques and resources to solve your problems – this means that the best people for the job are assembled to form your team. In some cases, clients may be presented with a list of resumes and be able to assemble their own team as well.

    Speaking of skills and development, in addition to offshore companies having employees with a wide variety of practical experience, their people also have a wide variety of the latest skills at their disposal. The reason is simple: how many new clients would come to them and ask for new projects to be developed with old tools and techniques? In fact, in some cases, there is such a high demand for the latest skills that some offshore companies have had to create their own dedicated training and certification departments in-house.

    Even in the offshoring world – you may find that the best companies already have a backlog of several months for work in certain hot technologies – it always pays to plan ahead if you can!

    Access to the Latest, Hard-to-Find Skills

    When evaluating offshore software development firms, you can almost break them down into three distinct categories. The first, are those focusing on maintaining and enhancing legacy applications – typically in COBOL, PL/M, FORTRAN, etc. The second category is those firms focusing on migrating legacy systems to modern technologies. The third category is those firms focusing on developing new systems with state-of-the-art tools, techniques and systems.

    In this article, I tend to focus more on those companies in the third category, as these are the ones representing the most exciting opportunities and advantages for new, unique and innovative systems – ones that are able to leapfrog the competition and enter new markets.

    Even with just the Microsoft family of products and operating systems alone, there are dozens of tools and multiple releases every year to deal with. This represents a recruiting problem, but also means that companies must focus on internal training and re-training on an ongoing basis.

    For example, in our company, we have a full-time Microsoft Certified Trainer on staff – part of his duties to include training and re-training developers on the latest Microsoft technologies. When researching offshore software development firms, do ask about how they keep their people updated – the
    answers may surprise you!

    Finding people with the latest skills such as .NET, J2EE and other high-end skills is still difficult – even in Russia. In addition to internal training programs, our company, for example, has set up our own on-line recruiting firm (http://itpersonnel.ru/eng/customer/index.html)

    Although there are literally dozens of high-end universities and private institutes locally, there is still a stiff competition for the best people. However, between our contacts at the institutes, our own IT Recruiting company, and leads we receive regularly – we are able to generally satisfy all our typical needs. Other firms may not be so lucky.

    Another advantage of being in the St. Petersburg region is that our company, along with many others, are members of the “Fort Ross Consortium” http://www.fort-ross.ru – a consortium of offshore software development firms – each with somewhat different skills and focus areas. When one company has requirements it can’t meet internally, it may call upon the services of other consortium members.

    Flexible Teams, Team Scalability and Employment Terms

    As with most contract-based arrangements, offshore software development offers a great deal of flexibility in selection, reallocation, reduction and growth of the team assigned to your project. This flexibility ensures that you are billed only for the resources you need, when you need them.

    Flexible teams also mean that work may sometimes be scheduled to run during hours of your own choosing. For example, an offshore team may be called upon to provide 24/7 support for a product or service.

    Teams tend to be highly scalable’ – meaning if you desire to change deliverables or schedules, you can quickly and easily allocate additional resources – or perhaps conduct additional research with a sub-team to investigate a hot new technology that may have great impact and/or benefit to your project.

    Conversely, in the event of project termination, or in cases where budgets must be reallocated or reduced, flexible teams and employment terms mean that your liability for penalties is generally significantly less than if you had contracted the job locally – and certainly much, much less than if you hired full-time resources.

    In most cases, the problems and legal issues regarding firing employees or downsizing in general is simply not your problem. Compare this with employment laws in some countries where once you hire someone – it is almost impossible to fire them or downsize without severe legal and social consequences.

    Marty R. Milette is president of Maverick Media, and has served in
    management positions for some of Canada’s top IT and training
    firms. Marty is currently Director of International Business Development
    for Arcadia Inc. and works as a Microsoft Certified Trainer and
    International Business Consultant. marty@milette.com of
    http://maverick-media.com or visit http://www.arcadia.spb.ru
    to view a PDF or Microsoft Word Version of this document.

    Related Articles

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here

    Latest Articles