Back

In-house vs. Outsourcing Software Development Teams for a Startup

1621362246821.jfifKarolina Zielińska

Companies that are focused on offering custom software development, apart from providing programming services of the best quality and developing competencies in this area, are focused mainly on two pillars (and it’s always tricky to decide where to push more efforts): Recruitment and Sales.

These pillars affect everything that happens in the company.

When it comes to recruitment, we cannot limit it to the signing of a contract with a software developer; it’s all a long process aimed to hire well and for a long time. This entails many additional expenses.

If we want to know the advantages and disadvantages of hiring in-house vs. outsourcing software development, it’s important to get acquainted with the process of properly hiring and managing a software team.

The general difference between outsourcing team of developers from a software company and hiring a team of developers locally is that if you decide to go with the 2nd option you will need to be able to

  • manage software developers,
  • manage the office,
  • hire additional employees such as Scrum masters, an Office manager, a CFO, an accountant and a HR team.
  • start recruiting new software developers that is not an easy job to do
  • because of having additional employees your duties will be much more time consuming so you will have less time to spend on the business side of your product.

additionaly it won't be easy to scale your team up/down immediately each time you need to (i.e. scaling down while waiting for another round of funding or scaling up when you need to speed things up because you'd like to meet deadlines).

Modern office management

If you think that as CEO you will be simultaneously fulfilling your role, maintaining the product, supervising the developers, talking to clients, and at the same time taking care of the office, you are wrong.

The following is an example list of tasks that an Office Manager/Office Assistant may face in a day at work:

  • describing and preparing invoices for the accounting department
  • resolving an employee-related issue with the accountant
  • selecting and booking a place for a corporate event with such details as what to eat, drink, what attractions will be provided for the evening, etc.
  • selecting and ordering a gift for someone who is leaving the company this month
  • providing information about the corporate event to all employees
  • contacting the office building’s administrator regarding a leaking window for instance
  • ordering an air conditioning cleaning service
  • getting cakes for a work-related holiday
  • updating the weekly fruit order

Nowadays, constant improvement of working conditions is one of the focuses of general management in companies. Such a thing helps take the productivity of employees to the next level.

However, office management also involves many other responsibilities. Modern Office Managers take care of administrative tasks, the workplace, coordinating office supplies, organizing team events, booking trips, and creating internal communication.

Moreover, Office Managers should have top-notch soft skills — they often handle employees’ requests about office life, equipment, supplies, and all admin workflow.

Office management includes also handling the office space most professionally, as the headquarters often reflect company personality. If the office management is handled and funded effectively, then employees’ satisfaction and performance grow together.

Even with a flexible approach to the workplace during a pandemic, there are many people who prefer the benefits of working in the office — they like the company atmosphere, they want to separate work from home life, etc.

The fact that software development management is so time consuming is a disadvantage of an in-house software development.

Keeping employees motivated

Maintaining motivation levels might seem simple on the surface, but appearances can be deceiving. It is a very time-consuming job that requires both a lot of effort at the planning and operation stages and regular talks with employees.

When the world stopped for a second because of covid-19 and remote work started to become the only reasonable way of working in many companies and there was no other choice, people started to feel less motivated. According to the Harvard Business Review, when employees cannot choose where they are working from, motivation drops in a big way:

0_cB51b9gSfot3ywKb (1).png

So the key is to simply give people a choice. Not only with workplace matters either. It’s important to increase employee motivation by allowing them to choose the equipment they want to work with, their working hours (some people want to start earlier to have the rest of the day for themselves; some of them want to start later because, for example, they need to do something non-work related in the morning).

The perfect solution, as we have in Profil Software, is to set the core working hours for meetings, events, and any other daily occurrence that many people contribute to. With that kind of approach to working hours, stress and time off for illness will be reduced and it will pay off with higher employee performance.

To keep our employees motivated, we have also implemented a “thank you” system where employees can use a dedicated budget to thank their colleagues.

We also remember that employees sometimes get tired while doing the same job over and over. This requires a change of role, project, or area they are working on. So we need to talk with employees regularly and devote our time to them constantly. If we ignore doing this, they will quit and we will have to run the recruitment process yet again.

A properly created environment in which people will feel motivated takes a lot of time and attention. You have to be close to employees and devote your time to them, especially if we are talking about such a unique group as software developers.

Only then will you be able to keep talented people in your company for a long time, which will ensure high-quality work and its results.

It’s easy to spend time and money on a poorly organized process of hiring software developers and then hire random people that won’t fit your organization and stay with you for only a short period of time.

It is also not a good idea to think that you will keep a talented software developer for a long time just because your idea for a SaaS startup is extra innovative.

High turnover among employees results in higher costs related to onboarding new people.

Trust building

There is no easy way to build trust in a team, especially now, while managing remote teams.

Remote workers feel more isolated than people who come to the office everyday and work face to face with peers. Trust comes with team spirit.

If someone feels like an integral part of a team then, naturally, trust is created spontaneously. No matter how smart and effective your team may be, if they don’t trust each other and they have no trust in their supervisor either, they will not work well.

IT teams working in the Scrum methodology are focused on self-organization, and responsibility plays a key role in such teams. Thanks to this type of organization of work, it’s easier to build a high-quality product. However, such a product will not be created when there is no trust among the teamit is the most important component of a high-performance team.

So how do we build trust in a team?

  1. Focus on open communication — your employees must feel that they can share their honest feedback with you and bravely collaborate in team meetings while explaining their point of view, proposing their ideas, and taking part in decision—making processes
  2. Give honest feedback — show the company’s goal that your employees should strive for, and interact with and support them
  3. Unite people — engage people in corporate ventures, empower them, and share information with them
  4. Be consistent — make consistent decisions, and be sure that your words match your actions
  5. Appreciate colleagues — implement a tool that will allow coworkers to thank each other

Effective Performance Measurement

Effective team management means that you need to keep your employees engaged in their work, drive them, but also measure their performance.

Having a highly effective team improves your business.

Thanks to this, project management is more efficient and better products are created.

So how do we measure performance? Scrum teams focus on providing maximum value for the end-user in closed units of time (sprints), from idea to implementation.

That’s why teams working in the Scrum methodology should have a wide spectrum of competencies for product development. Only such a team can take full responsibility for the end result.

In such conditions, we focus not on measuring the output of individual roles, but on the effect of the product that reaches the end-user.

Processes and tools dedicated to Software Project Management

Not every good tool available on the Internet is good for every type of business, for every startup, or for every department in a large company.

Below we present the possibilities of specific tools. Similar functionalities also exist in other software such as Trello, Asana, Monday, and Microsoft Teams to name a few.

What distinguishes them is their approach and the way they solve a given problem.

The most popular Issue, Project, and Bug Software is JIRA, included in the Atlassian software package. Depending on the version of the program, JIRA also allows us to manage the documentation of individual projects, thanks to the Confluence application that is compatible with it. Data from JIRA can also be exported to Microsoft Office programs (Excel, Word). JIRA users can choose the project management methodology — Scrum or Kanban.

JIRA offers its users agile project management through such functionalities as project boards, sprints, time intervals in which specific tasks are assigned to developers. Those are especially useful when conducting larger projects where tasks need to be distributed in a timely manner. JIRA allows you to also manage application releases.

0_h4eGCLK_DBZYAkNc (1).png

JIRA is an excellent tool for both team management and motivation in project execution. It is not only used by teams of software engineers- JIRA is also used by marketing, financial, and Human Resources departments.

JIRA software users can manage user permissions and at the same time assign them project roles (according to their competencies and employment in specific areas).

In an IT project, there are software developers, testers, project managers, project owners, DevOps, and IT administrators.

Each tool should be matched to the processes that exist in your company.

JIRA allows a very advanced configuration of the Development Workflow and is flexible enough, but it may not work well in very small projects.

Operating and configuring a tool like JIRA requires an employee who is well trained in using this tool. Workflow configuration should not be handled by a person without knowledge of Agile methodologies (Scrum, Kanban).

0_UKbVoysUZp7OLyNd (1).png

Another important tool when working on an IT project is GitHub — a repository for code storing.

GitHub works like a cloud and it’s also one of JIRA’s integrations. Code repositories are the locations where all code-related files are stored. The basic version of the code of a given application is transferred to GitHub and, additionally, any modifications to it, so that each team member can return to the state of the code before adding a specific functionality.

It provides a controlled distribution of changes and reduces the risk in creating new software. In addition, GitHub has repositories that all users of the platform have access to.

Software developers from different parts of the world can simultaneously work on improving an interesting project, which not only serves the development of competences but can also benefit potential users for whom such an application could be intended.

Basic operations in GitHub are quite standard, but work that is based on the appropriate GitFlow anticipating other features as branches is, unfortunately, still something that companies or start-ups often forget about while dealing with the development of SaaS tools. This feature allows you to avoid future conflicts in the code, speeds up the implementation of new versions of the software for production, and reduces bugs.

In addition to Jira and Github, there are also other tools necessary for work that can speed up the software development process by several hundred percent or more. What is most important and what is the measure of success is the experience of using them and the level of knowledge about these tools.

Therefore, it is necessary to organize regular, valuable training about the usage of these platforms and to have specialists in the team who will then be able to train others.

0_hIRMuQohmN8OeSoD (1).png

Another tool worth mentioning is Trello. Many small IT teams use Kanban boards, which enable assigning tasks, setting deadlines, team communication, and including all the necessary attachments.

In the Kanban methodology, tasks are shifted between three boards — to be performed, in progress, and ready. This uncomplicated way of managing tasks, extended to the testing stage, has become an extremely effective way of managing IT projects. Trello is a product of Atlassian — the producer of JIRA software.

Part. 2 of this article… coming soon!

Outsourcing Software Development
In-house Software Development
Managing a Software Development Team
In-house Development vs Outsourcing
1621362246821.jfifKarolina Zielińska
Profil Software stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember you.We use this information in order to improve and customize your browsing experience and for analytics and metrics about our visitors both on this website and other media. To find out more about the cookies we use, see our .