How a team setup a software project

How can we get a high performance team for a software development project to get started? It may take a long time to get a team of like-minded individuals to work together – all on a higher level. However, with a good set-up right at the beginning it will be faster. Here are five simple noteworthy things to consider when building a team of software developers.

0. Working method

This is very  important to have in the beginning. At the start, we just have a group of individuals who are just working together on the same project. It is important to establish similar goals for the team so that their working method and process are clearly understood.

Mission & vision: To be successful, a project must have a vision and objective. This will help streamline everyone’s ideals and direct their goals. It is the glue that holds the team together.

Working agreement: What is your commitment to the team? When working, do you try to complete all the tasks of the day?  Or do you just clock-in your 9 to 5, no matter the status of your tasks? These must be agreed upon in the team.

Establishing the mission & vision and working agreement is a way to remind everyone in the team their goals and place.  It should be discussed and collectively agreed upon by the team beforehand.

Choose a working method: Everyone in the team has to understand how they work together. It’s good to pick a standard method or framework to start with such as digital tools Scrum or Kanban. This will help everyone easily understand, follow, and see the progress of the team. Not everyone will understand the tools immediately, so make sure to train each and every team member.

Working method (or process) must be visualized

1. Team collaboration tools

When a working method is set, the team needs a tool for collaboration. Whether the team chooses Scrum or Kanban, the team board should be given more importance. It can be the physical board or online board such as Jira, Trello, or Pivotal Tracker.

Choose a single official toolset. There are many good communication tools today which makes it difficult for the team to decide. Slack or Skype? Google Docs or Zoho? The team may never be fully content with one tool. There will always be comparisons between the tools. For example, Slack is easily manageable but Skype has better video call quality. Can we use both? No. It is important to choose a single official tool so that the dissemination of all main information, decision, and solution can be easily accessed in one place. Extra discussions can be worked over other platforms where the team members feel comfortable with using. This simply helps the group simply find a singular decision.

Choose a single official tool to easily access all main information, decision, and solution in one place.

2. Source code version control

There’s no more need to delve into the needs of source code version control as we all know its value. Go with the version that all your team members are familiar with to avoid any headaches. Today, the most preferred is Git but some argue that it is uncomfortable without Diff Tools. The best tools that work for most Git clients are Meld, Kdiff3, and WinMerge.

Choose which?

3. IDE & team environment settings

If codes are dragons, then a good IDE / text editor is your sword. Find the best one. It’s easy to work and agree on the project when the team is using .NET or iOS with the vendor tool. However, it is a bit harder to decide on the language or technology as there are plenty of choices. TextMate or Atom? Sublime or InteliJ for PHP? Which is the best for Android; Eclipse or Android Studio?

Once the team chooses a standard IDE, set the team environment settings and make sure to manage it in the right place. The good ones are usually source code repositories. Having team environment settings reduces the conflict issues that are usually in the overhead. It also helps for continuous integration and continuous delivery.

Environment shouldn’t be a place for personal creativity at beginning. Do it later.

4. Continuous delivery pipeline

Today, Agile is becoming the  standard working method, therefore continuous delivery and continuous deployment is crucial. As the age of continuous integration passes by, the team needs more powerful toolsets near production or staging. That’s why DevOps is becoming important in developing software services.

That’s a pattern for setting up a software project that should be longer than 2 months within a team with three people or more. It’s very important with the initial setup that a specific method or toolset is used by the team — as it becomes a material for improvement after each iteration. Lack of agreement on a single method or toolset will make the road to success harder.