How to build a professional development team in a few steps quickly and effectively – a case study

The current trends in developing and supplying individual software for companies have significantly moved towards the model based on outsourcing. This is a very convenient solution, as the customer (the ordering company) does not have to support the whole team of IT engineers. They can use an IT outsourcing service instead and hire external specialists and experts who will deliver them a ready product in a professional manner. This solution eliminates the problem of spending money on internal software engineers, testers, analysts or even IT managers. This is a convenient and flexible approach. The benefits are clear, which is proven by the constantly growing demand for outsourcing of IT specialists as well as by newly established software houses.

What if we do it otherwise than everyone else? Does the creation of a department responsible for software development in a non-IT company make sense and have a chance for success? Possibly, as there can always be qualified people hired who will develop all the processes and create a team. OK, let us set the bar higher now. What if we decide to create a team based entirely on staff that know very well the business of their company, but have never dealt with programming and IT sector before? Additionally, the goal is to create from scratch and deliver a shop floor management system within a few months. Does it sound like a mad plan? Perhaps, but what I want to demonstrate in this article is that sometimes there is a method in such madness. I invite you to read the case study of a company that decided to go that way and train their own IT development team.

Let us start from the customer’s profile introduction. It is a large organisation that operates in automotive industry and has got its branches in more than ten countries. One of its major operation areas is manufacturing of car equipment. The company has introduced a system for production monitoring, control and planning in one of its branches. It is a system written and maintained by one (!) of employees – a self-taught enthusiast of software development. The system works quite well, although it has been written without the use of any architectural patterns, good programming practices or even a version control system! In order to allow for the system’s development and implementation in another manufacturing plants, it had to be written all over again in a professional manner with the use of the best techniques and tools. The customer applied for such service to Transition Technologies PSC. In about 8 months we helped them achieve the goal to write a relevant system and transfer the know-how concerning the whole software development process. It is worth emphasising nearly all the work with the customer was carried out remotely. In the further part of the article I will focus on the description of how it was possible to train four developers from a practically zero level to strong juniors and, in case of one person, even to a regular developer.

Step 1 – trainings and workshops

The first, obvious step was to learn the necessary basics to start the work. The project was supposed to be created with the use of the .NET Core technology, Jira was selected for the project management and the source code was to be stored and managed by Bitbucket. Jenkins was suggested to ensure Continuous Integration. In the first place, we started a series of trainings covering the subjects mentioned above. During a week’s time we provided a substantial dose of knowledge through conducting the following trainings:

  • Jira user training,
  • Git developer training,
  • Bitbucket developer training,
  • Visual Studio training,
  • Development process workshop,
  • Jenkins developer training.

Workshops

Each of them had to be conducted from basics and took up to eight hours, thus they were only an introduction to the subjects. To learn more of the subjects, the team was supposed to learn on their own for 3-4 weeks, mainly being focused on: C#, ASP.NET MVC Core, Entity Framework Core, JavaScript and jQuery (yes, the good old jQuery – I came to the conclusion the modern js frameworks would have a too high entry threshold for complete beginners). The access to the platform with a large base of high quality online trainings played a significant role here. It is worth mentioning as well that just before starting the work on the proper project some of the developers worked independently over their own  evaluation projects which was reviewed by me later.. This enabled to put first remarks concerning the start of development on so called demo projects, so that the person entering the proper project was already richer in the experience gained during implementation of the demo.

At a later stage of the project, every 2 months we organized 2-3-day workshops on site in the client’s office. It was the time when we could precisely explain and train the participants of the project on the particular subject needed during development process. It is much more convenient to answer all the bothering questions and provide the necessary information during a face to face meeting when an overhead projector or a whiteboard is available, so certain problems can be illustrated and analysed.

Step 2 – controlling, mentoring, consulting

As in every project, sometimes it was necessary to analyse a difficult issue and find a good way to handle it. Such matters were usually planned as a subject to discuss during the on-site workshops at the customer’s. We were able to sit down together in one room and brainstorm to come up with a draft and then the details of the solution. It was also extremely encouraging and developing for the team. It taught them how to look for solutions for essential and complex business requirements, taking into account efficiency, scalability and security of the whole system. During the work on this process, they learnt to focus not only on the problem discussed, but also on the analysis of its influence on the system as a whole.

Such work was greatly beneficial. The progress was visible for example on Sprint Retrospective meetings. The developers shared the new elements they learnt in the given sprint. In addition, it was visible how the following proposals of the project improvements from our ‘lessons learned’ document were implemented and what influence they had on the work quality and efficiency measured by burndown and velocity reports. We could also observe the number of code review remarks was dropping and pull requests were merged faster.

Step 3 – preparation for independent work

The last step was to prepare the team members for work as independent developers who know, understand and use the basic programming techniques and models in .NET. They should be able to handle most of the typical programming problems (or find the relevant tools for this purpose). It is also important that they are able to identify errors in another developer’s code upon the code review.

They have reached this level step by step. First, the moment a developer made fewer and fewer major errors, he noticed them and needed help only when dealing with more difficult tasks, he was promoted to a reviewer role. From that point he was allowed to do code reviews for others and accept pull requests, although they required an extra verification from another reviewer (so called double check). This taught him a different point of view, as from then on not only his code was subject to verification, but he had a chance to take a critical look at the code written by the team and report other developers’ errors. Moreover, he had an opportunity to look at the pull request again during the so called double check and see what other possible errors were reported by another reviewer which he did not notice himself. The code evaluation was easier thanks to the developer guide document prepared earlier, pointing out the principles of the correct development in a project. The moment the developer accomplished a considerable number of code reviews and their quality was satisfying, he became an independent reviewer. From that moment, his acceptance of a pull request resulted in merging it to the target branch.

This way we got to the point where the team reached the level of strong junior developers and in the case of at least one of them it was the regular developer level. That is why the team no longer required constant mentoring, control and learning. It was able to develop on its own. In case of serious problems that might require more knowledge and experience to be solved, the customer has left an optional  short training and consultation in the contract.

Summary

Has the experiment of building a team on unexperienced people without the necessary programming knowledge been successful? Yes, indeed! The project has been completed in accordance to the earlier assumptions. It passed the first security tests quite well during which only one serious incident was detected. The moment our cooperation and my role in the project was accomplished, the software was ready for the production deployment. Obviously,  a complete evaluation of the project and whether it is successful or not will only be possible after certain amount of time since it starts working on in production. I would like to point out, however, the fact the company gained the competences and know-how of software development was as important as the completion of the project itself. As a result, the customer can create and develop these competences through extending his team with another specialists – this time not only developers, but also testers, analysts and devops engineers.

_All posts in this category

blogpost
Articles

Third Party QA Testing with Xray

Hiring Third Party QA teams to verify a product has become a common practice - find out what Third Party QA Testing is and how Transition Technologies PSC approaches its implementation using the Xray tool.

Read more
blogpost
Articles

From Java to Go – scaling competences in the Software Development Centre team

Transition Technologies PSC experts talk about the 'Go Academy' initiative and the benefits of learning the Go programming language in delivering efficient solutions to customers. Find out why Go is becoming the language of the future in IT.

Read more
blogpost
Articles

IT staff augmentation – flexible way of scaling the IT team

IT staff augmentation increases the potential of your team. An additional specialist is support in completing daily tasks and meeting deadlines. The presence of this person allows to increasing productivity when new and challenging business opportunities arise.

Read more
blogpost
Articles

How to protect yourself from phishing using authentication?

We live in the age of big data - they are more valuable than money in the world we live in. Identity theft and loss of important data is problematic for any user, but businesses in particular should be aware of this threat. A cyber-attack is not only associated with temporary downtime, production delays or losses related to the need to mitigate the damage.

Read more
blogpost
Articles

What should you know about serverless computing?

Serverless cmputing still raises a lot of doubts, especially among those environments that are just starting to use cloud services or are just planning to migrate their systems to the cloud. We will try to answer the most important questions about this solution in this article.

Read more
blogpost
Articles

6 Common misconceptions about Scrum methodology

6 of the most common myths and misconceptions around Scrum so you can spot and avoid them.

Read more
blogpost
Articles

Scrum Guide 2020. TOP 5 changes and what should I do?

Scrum Guide – what has changed? 2020 November update With all the events that happened in 2020 worldwide it’s not difficult to miss the latest update to the guidelines of the most popular agile framework – the Scrum Guide. In this article I outline the most important changes and assess their impact on teams’ everyday […]

Read more
blogpost
Articles

Agility. All you need to know about the agile methodology

What actually is agile? How did it all start? What are the principles that characterise this working method, how does it differ from the traditional approach and how to manage projects in an effective (and agile) way? We present a set of information that every person associated with technology in any way should become familiar with. We hope you will find it valuable and recommendable. Feel free to comment or contact us if you have any specific questions

Read more
blogpost
Articles

WCAG 2.1 – what should you pay attention to?

Imagine that you are a blind or visually impaired person and would like to log into your own bank account via a website or mobile app. You enter the password, select further options, go to the next page, but at some point you can’t do anything more... You don’t have access to the full functionality of the application. Why?

Read more
blogpost
Articles

On-line accessibility following WCAG standards and its impact on the company’s image.

Now is a perfect time for a thorough analysis of our online activities while taking into account a broader perspective than before. Implementing WCAG standards, created with users at risk of digital exclusion in mind, can be a great place to start.

Read more
blogpost
Articles

WCAG – why it is worth having an accessible website, web systems and mobile app

Have you ever wondered how blind and disabled people use websites? Standard activities that we perform on a daily basis on the Internet are difficult or even completely inaccessible for people with disabilities. That is why WCAG criteria for digital services are crucial. Making a bank transfer, searching for information on official websites or making an online medical appointment lasts only a while, but only if the page is accessible. What does it mean in practice? This means that the site has the appropriate features that allow each user - including people with disabilities - to navigate.

Read more
blogpost
Articles

What is WCAG and how to meet compliance?

The Modern society is very computerized. We want to have access to our music, books or movies wherever we are, regardless whether we’re in dentist’s waiting room or on a bus. To satisfy this demand, private companies and public institutions offer their service on the Internet. Despite that, there are a lot of barriers in using the web for disabled or elderly people, preventing them from enjoying the benefits of Internet.

Read more
blogpost
Articles

New features in Java

A lot has changed in Java. A few years have passed since the release of its most popular version 8. All the time version 8 is the one that developers use most. What is the reason for this? After all, Java 13 have been already released.

Read more
blogpost
Articles

Proxy Product Owner role in software development nearshoring and R&D augmentation

Today it is an imperative to be able to quickly build and deliver innovative and advanced software products not only to keep the business growing, but simply functioning just above the tide. The business virtually always demands the increments of the products to be delivered as soon as possible for many obvious reasons. In order to do that software development companies can use an old as dirt concept of outsourcing a part of the work to contractors.

Read more
blogpost
Articles

Nearshoring – more opportunities for your business

The IT sector is one of the most dynamically evolving business industries. It is not only due to the technology it offers but also thanks to the wide range of services it is able to deliver to other businesses.

Read more
blogpost
Articles

FIDO – safer or more convenient?

We have been trying for a long time to devise safer and more effective ways of identifying a user than by using a login and a password. Along with the development of technologies such as fingerprint readers or retinal scanners, we can verify identity as well as with the use of a login with a password.

Read more
blogpost
Articles

The advantages of ”code review” – only for programmers?

Just a few years ago, code review was perceived more as some kind of curiosity or idealistic programming practice than an element contributing an added value to the commercial projects. Although the term has been clear for both developers and managers, and most of them praises the idea of mutual code analysis by programmers, this […]

Read more
blogpost
Articles

How do I resource IT projects?

The rapid development and technological boom we have been experiencing in the last years has left many companies in desperate need of qualified IT specialists. With technology transforming the economy and the scope of IT roles constantly developing most countries are facing a serious workforce issue. And despite outsourcing and offshoring dating back to at […]

Read more

Let’s get in touch

Contact us