Ukraine – more Agile than Rooney!
Most travelling supporters no doubt are focused on admiring the agility, skill and stamina of the likes of Wayne Rooney or Cristiano Ronaldo on the pitch, or of the local beauties and beverages in the numerous local bars and nightclubs.
Few will reflect, on returning home no doubt nursing a hangover and a substantially lighter wallet, that this mysterious and politically chaotic nation is rapidly becoming the world champion in outsourced Agile Software development.
IT outsourcing – the traditional ‘throw it over the fence' approach
The IT outsourcing industry has traditionally been all about leveraging the cost arbitrage between the high cost of computer programmers in developed countries and the lower cost in emerging economies. This has often led to a ‘cheap bums on seats' procurement policy that has resulted in most larger enterprises having development resources based in locations such as India, where an industrial scale conveyor belt of programmers are being churned out annually from various educational establishments.
By and large, this setup has been moderately successful in the past when the majority of outsourced projects have been large scale enterprise level solutions which have been managed using a traditional ‘waterfall' approach. In this case projects are normally defined by the client company in painstaking detail during an initial process where business requirements are translated into detailed architecture and design documentation which can then be thrown ‘over the fence' to the outsourcing company to develop.
When the specifications have been produced in sufficient detail and accuracy then in theory the development process, whilst often complex and time consuming, should not require a great deal of creativity or inventiveness and is more a case of ‘turning the handle' – albeit potentially a very large and expensive handle.
Changing IT development landscape - the move to Agile
However, this type of legacy development lifecycle is being used less and less in today's business world and nowadays the vast majority of IT development projects are being run in some sort of ‘Agile' manner. In the late nineties it became clear that the "traditional approach" (AKA waterfall) doesn't work in the rapidly developing internet economy and in 2001 the Agile brand was born. It was intentionally promoted as the philosophy of handling projects in constantly changing environment. Essentially where a project is run based on an Agile approach it means that the development is based around a number of short iterations or ‘sprints' and that the business owners are embedded as part of the development process.
The recognised definition of Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001.
There are a number of reasons for the growing migration to Agile. According to the ‘State of Agile' survey 2011 the top three reasons for adopting Agile are to accelerate time to market, increase productivity, and to more easily manage changing priorities. What's more, 77% or respondents highlighted the fact that the decision to champion Agile was taken by business management within the organisation. The overriding factor at play is that traditional software development methods were simply not working and the business owners have come to realise that.
SNAFU – the classic large IT project screw up
I'm sure that all IT professionals reading this article will have their own favourite IT project horror story, but according to Gartner around 75% of large scale IT development projects over the last 10 years have been considered a failure. A typical scenario for a large scale failure would be a business requirements, detail design and architectural process stretching over a year or more and taking up many tens of man years of effort without one line of code being cut. After all of this effort and at the stage where development was about to be kicked off the business sponsor would suddenly and with apparent surprise find out that in the intervening period the business environment had changed to such an extent that the system as specified would not, in fact, address the current business requirements and the whole programme would be canned or ‘mothballed'. At this stage there would traditionally be a purge of IT management (or ill advised legal action against an external vendor) and occasionally the odd business owner would have to fall on their sword. In rare occasions the financial ramifications of the project write-offs have been so great that the CFO and CEO end up carrying the can.
There are many flavours of this type of failure but a key element of Agile which mitigates against screw-up's of this type is that there will be a ‘deliverable' or prototype solution with basic functionality created in a very short timescale. This means that rather than get sucked into a cosy world of endless requirements gathering, CASE tool modelling and specifications signoff, the development team in collaboration with the business owner has to actually get something working and get concrete from an early stage. This is an important factor in crystalizing requirements and finding out sooner rather than later if something is going to work or not from a business perspective.
Digital Media leading the way
Returning to the top three reasons for going Agile from the ‘State of Agile' survey, one industry which has been at the forefront of the Agile revolution has been the global Digital Media industry. This encompasses businesses in area such as Digital Marketing, Online and Mobile Media, Web companies, E-Commerce, Mobile APPs, Computer Games and Online Gambling. In those businesses a typical project involves short project timescales and the requirements tend to be relatively fluid. It has been demonstrated that an Agile approach where rapid prototype development for customer review, and changes based on feedback and competitor action are commonplace, has been extremely successful in providing fast development of solutions. Those types of projects also tend to have tech savvy business owners embedded within the core team working closely with the development team in order to direct the overall solution.
Digital Media development is currently experiencing a relative boom and worldwide there is huge demand for developers in this area. In those businesses there is really little option but to develop apart from using Agile methods and typically and therefore pretty much every company in this group from Facebook through to Rovio currently use methodologies such as SCRUM or KANBAN for solution development.
Enterprises follow in the footsteps of Digital Media
More recently, many larger legacy IT development groups have attempted to replicate the success demonstrated by mainly smaller and medium sized digital media industries in Agile development. This can be a challenging task partly due to the fact that the projects tend to be large and complex and often involve integration with existing legacy systems. However, the major challenge tends to be in changing the ‘waterfall' mind-set that most developers within established enterprise level development groups have ingrained.
In fact according to the ‘State of Agile' survey, the top three reasons for companies failing to manage a transition to Agile are ability to change organizational culture, availability of personnel with right skill and general resistance to change. This issue is exacerbated by the fact that it is usually management which is introducing those type of changes and often there can be a level of suspicion and distrust over the rationale for the change which tends to be normal in larger and more cumbersome organisations.
One mechanism which can help to introduce Agile into legacy type organisations is by initiating an Agile outsourced project with a provider that specialises in running Agile development projects. This would normally involve building a development team with the Outsourced provider specifically to support the new Agile project and leveraging the experience of the vendors consultants to help set up the optimal processes, communication plans, sharing tools etc. For smaller projects the product owner would normally be located at the client company with developers based at the outsourcers location and development using SCRUM would utilise daily ‘stand-up's', short sprints and close collaboration with the business and developers on both sides.
By introducing Agile in this way, the IT development staff from the client company can be introduced to the methodology in a ‘safe' manner and in principle, assuming the project is a success, will buy into the process as it has been demonstrated to work.
The methodology and principles can then be rolled out internally throughout the organisation with positive enthusiasm or at least with less resistance.
Ukraine – the Agile Revolution
Going back to Ukraine, it so happens that as an IT development outsourcing destination the country has a number of important benefits compared to traditional outsourcing destinations such as India or China that really help position it for Agile support.
Those include:
- Communication - 1 hour time difference with CET: This makes management of communication/stand-ups very easy. There are also plenty of direct flights to Ukrainian cities from Western Europe and Ukraine does not require a Visa for Western visitors.
- High level of education in engineering, computing, science and mathematics: Rather than being put through a basic conveyer belt training in order to prep students for life as an IT developer, most developers in Ukraine have a solid education in the sciences and then specialise in whatever IT development interests them most. The general standard in higher education is high and Ukraine traditionally has been strong in engineering and sciences. Korolev, the father of the Soviet space programme, was Ukrainian and within the developer community there are many ‘rocket scientists'.
- Cultural alignment and common sense: Unlike dealing with Indian developers where no matter the question, the answer is always ‘yes' and instructions tend to be followed to the letter even when obviously wrong, typical Ukrainian developers will push back if asked to develop a solution that does not make sense or if there is a better way of doing things. Whilst running an Agile project, it is important that developers take responsibility and initiative and highlight any areas where there is a misunderstanding or disagreement.
- Attention to detail and quality: In numerous surveys of IT development projects, Eastern Europe and Russia have tended to rank highly in terms of customer satisfaction and quality projects, with Ukraine being a consistent top ranking player.
Compared to their Euro 2012 co-host, Ukraine is not part of the EU and with its current political shenanigans it's unlikely to be so in the foreseeable future. One of the issues that traditional Eastern European outsourcing destinations such as Poland, Romania, Bulgaria and the Baltic States have is that the best developers tend to migrate to countries such as the UK or Germany for more money, much in the same way as their footballers such as Petr Cech, the Chelsea and Czech Republic player, and therefore retention of the best developers within the new EU countries is extremely difficult.
Russia has traditionally been seen as an excellent destination for outsourcing but recently Moscow and St Petersburg have tended to price themselves out of the market and communications can be hampered by complicated Visa issues. In addition, Putin's dictatorial and vaguely anti-western approach has frightened off many companies who seen business in Russia as coming with too much risk.
Overall, Ukraine has a great combination of highly skilled available developers, a reasonable price point and a real buy-in to the Agile concepts and methods and it is no surprise that as an Agile outsourcing destination it's star is rising on the international stage. In fact, even for high tech Silicon Valley start-ups where 5 years ago Ukraine did not even register on the radar and India and Asia tended to be the destination of choice, today Ukraine and the surrounding area now account for over 30% of Agile development outsourcing. The Annual ‘Agile Eastern Europe' event in Ukraine is generally accepted to be the best attended one in the region and has been growing rapidly.
Summary
It is clear that over the last few years we have seen a seismic shift in software development toward Agile. Whilst this was initially driven by New Media and the Web, larger enterprises are now embracing the approach and are discovering that this methodology is often just not compatible with their existing ODC in India.
With a Perfect Storm of good communications and transport links, a young well educated and culturally aligned development community and an Agile oriented approach to development, Ukraine is fast reaching the top of the table in terms of Agile outsourcing destinations of choice.
For larger organisations where legacy and waterfall techniques are ingrained, introducing Agile via an initial project in partnership with a Ukrainian based outsourcing organisation can be an efficient way of demonstrating success and gaining wider acceptance within the organisation.
So after all the Euro 2012 excitement, when Rooney is back home in Manchester sitting in his mansion combing his hair, counting his money and playing on his PlayStation, little will he know that the computer game he is playing was actually developed by world class Agile developers in Ukraine!