Europe is in need of nearly 400,000 specialists, according to EU estimates, this problem will deepen and come next year, may reach half a million. In the western part of the old continent, vacancies for the positions in the ITC industry already constitute 60% of all vacant jobs. Software is now vital in every business. All types of equipment are controlled by intelligent software, business processes are also supported by applications and someone has to design, develop and implement these applications.
Does this deficit mean that Europe and the whole world is facing imminent business collapse? Are we expecting some big slowdown in activity of individual industries and services? The solution may come from contracting the processes related to the development of IT infrastructure to external companies. Doing so does not only solve the problem of insufficient staff but is also much more economically smart. So how do we implement such a solution and what do we need to pay attention to when choosing an outsourcing partner?
Consult the right people
It is worth to consult the developers themselves because they have the biggest say in establishing the working conditions, the salary and they choose whom they want to work for and obviously they choose companies in which they feel comfortable. Where, apart from being well paid, they are appreciated by the employer (healthcare packages etc.), where they can further develop their skills or simply like the technologies the company’s working with. For instance – in Neoteric we expend 80% of our employees work time on our clients’ projects. The remaining 20% gets spent on studying, team development, personal and open source projects.
Such an approach gives us the certainty that the company we choose won’t develop much technical debt which in turn will provide us with an edge over our competitors. Working with a company like that also gives us the confidence that besides technical support, we can also count on consultancy from their side. Every time we lean on them, our projects will be thoroughly discussed and if necessary, fresh approaches and profitable solutions will be suggested to us.
It’s also worth to pick a partner that not only employs exceptional developers but can also provide business process analysts who will quickly and efficiently assess if a given project is justified at the current stage of a company’s development level. Why create an application which won’t benefit our company in any way?
How do they work?
The methodology of work is also key. Like Agile, which combines the flexibility of the project with the best habits of software engineering.
Choose wisely, always taking into consideration the edge you want to gain over your competitors. While drafting your IT projects, have in mind the situation you want to be in a few or a dozen years. Leave some space for developing the software further, don’t constrain it into a single project.
In a dynamically changing environment where technologies, trends and business requirements are changing due to market preferences on a daily basis, success is almost reserved for crews of people who work in effective, small teams, which are able to learn and improve constantly while also being able to change the direction quickly. In order to follow those high standards, the best method to work with stakeholders is not based on a priori set schedule, but rather on prototyping, feedback loop, knowledge-driven decisions and adoption to those new conclusions. This approach is to maximize the work not done, to make the process effective and always focused on the next required step to make sure it was done in the right direction.
The methodology of work
At first steps, we usually collect the initial set of requirements. The first impression is usually very inaccurate, it is a projection of possible solution based on the previous experience, so it is very limited. We do not require from our clients to give us a complete and final version of product requirements. We gladly work with them to discover real workflows, the root causes of problems to solve them and usually the final product is co-creation of both sides. We make many little steps and verify them to adopt or change quickly. We are used to delivering the best products in given circumstances. It is our clients who say when they are happy enough to claim that the project can be closed.
Our clients’ business constraints plus the sketched project scope allow us to launch sprint zero, which is about forming a team, project kick-off and some internal work to set up environments, technology, repositories, project management tools etc. The team works to draw a big picture of the product using user story mapping technique, which allows us to identify scenarios and judge their importance. This is done with the client or at least confirmed by them. This lets us start development work and plan a few first steps.
Ready, steady, go!
At this stage, we have product backlog which is set of prioritized User Stories we can edit and pull into the following planned Sprints. Each Sprint is a 2-week period of maximum efficiency of work, which is followed by a live demonstration of the results to all stakeholders. As a result of the demo, we have a potentially shippable increment that is ready for early feedback. We should be ready to judge if the path we follow is beneficial and be able to fail very early in case the benefits are smaller than expected. Those tight milestones eliminate unnecessary features and give knowledge about the real condition of the product. The team does not focus on tasks, but on fulfilling the scenarios that add business value to keep the flow of it as wide as possible.
Planning every next sprint is preceded by a backlog grooming session when we judge the top items in product backlog with the client to verify priority and add clarification because we learn more about the expected results during the progression of the project. Backlog grooming is an ongoing activity.
Being tied to solid software craftsmanship practices on every stage of software development let us build predictive and accelerating teams, which allow us to plan more accurately every next iteration. The team is looking for constant improvement by observing the weak points and eliminating the bottlenecks one by one.
As a final result, we expect a synergy of all good ideas and fast elimination of wastes, to make the stakeholders happy and be sure that we have delivered only what was needed.