We will talk with Przemek PM Mikus - the COO of Frontend House and Liki MS. Get ready for a bunch of useful info about how to create a perfect software development team. In this episode about building a successful software development team you will find:
- 00:00 - Intro
- 00:32 - A few words about Przemek Mikus
- 01:52 - Why is the team so important?
- 03:34 - What are the steps of building successful software teams? In other words - what are the patterns in creating the right teams?
- 05:15 - Independence of the team members
- 07:39 - The software development team is always a cooperation of various specialists - UX/UI designers, projects managers, back and front end developers etc. Could the team functionate without one of these roles?
- 16:26 - How does Przemek define a good team?
- 18:51 - Different characters in the team.
Transcription
- Olga
- We live in the times where entrepreneurs focus on innovations which are always based on software or usually based on software. And here comes the question: how to build a right software development team? And today in our studio, we have Przemek Mikus, and he's the best person to answer this question. Przemek Mikus is CEO of Frontend House and ‘Hi Przemek’.
- Olga
- It's very nice to see you in our studio today. Could you please say a few words about yourself?
- Przemek
- Yes, of course. Hi Olga, hi, everyone. I'm really happy that you invited me to this episode. I'm Przemek Mikus, friends call me PM, and I’m Chief Operating Officer of Liki and I’m also taking care of the Frontend House. I will be happy to share some of my thoughts about how to create a good software development team and will be able to share some experience after that.
- Olga
- OK, so are you ready to start to reveal some secrets about building software development teams?
- Przemek
- These are not maybe secrets, I don't want to name it as a kind of secret. It is rather some bunch of good practices and a nice approach to that. And yup, I would be happy to discuss this with you.
- Olga
- Perfect. So let's go. And my first question is, everybody says that the team is the key to the success of the project, can you please tell me why? Why is it so important?
- Przemek
- So normally, when you start with some innovation and when you are an entrepreneur, who would like to introduce some product or service that should be changing the world… so normally people start with an idea, having an idea. This is one of key points to success with introducing innovation. For example, some digital products. The second important stuff, is an innovator or team of innovators. You have to have the right people, usually founders what stay behind the ideas, stay behind this innovation.But third really important part of that is a team who will bring these innovation live
- Olga
- And take care of all operations.
- Przemek
- Operation, development, introducing this just to the market. So this is one of three really important parts of the project. I mean, idea, innovator or innovators and the what that will bring this innovation into life
- Olga
- Could you please tell me what are the patterns of building a software development team?
- Przemek
- So, thinking about partitas for the creation of the software development team, you have to consider that from different angles. So, for example, you can start with team roles. You might consider what kind of people you might need inside the team. I mean, architects, project managers, front end developers, testers, devops - that kind of roles inside the team.
But this is one approach. The second is the technology approach. If you define what is needed, I mean, what is needed in your digital product, you might have into the consideration that you might need some bunch of front end developers, or back end developers, or mobile experts. So this is, let's say, a second approach or a second angle of what you can take into consideration creating the good team.
The third approach is that you have to take into consideration non-technical skills. I mean, that you might need people who are, for example, good communicators or who believe in the same goal or who can work together being at the same time independent. Thinking from a broad perspective about your product, about your vision and being able to discuss and even argue if it's needed for the success in the project.
- Olga
- So arguments could appear in the project, is it even good?
- Przemek
- Of course, if we argue all the time, this is really bad. If we don't work together and if we fight, this is really bad. But argues are really OK, if this is kind of a positive critique. So I mean that you have to have a team that is independent enough and have enough power inside to talk with you as a founder or as a product owner, freelly, and go to you with the ideas in an open way. Since then, you may count that the product will be better created. Let's say you should not expect that every team member will follow your instructions all the time. Of course, this is important, but to have the possibility to discuss and maybe argue, it's a strong work, but...
- Olga
- The suggestion of their own ideas and communicating.
- Przemek
- Exactly. If you are talking about digital products, what is changing the world constantly... You know, the world is changing so fast that never one person can follow every change. And you don't have the possibility to be an expert in every field. You have to work as a team. This is a kind of secret sauce.
- Olga
- While coming back to the team roles like project manager UI/UX designers, back end and front end developers... Do we need all of them in the team?
- Przemek
- Of course you can define the different roles and different types depending on the project. But, let's say, one of the most important might be, for example, architects or tech leaders or product owners, project owners, project managers.
- Olga
- So you name all of them because every role is important?
- Przemek
- I mean, I've been thinking that the team might consider different roles. Also bearing in mind, for example, software developers both back end, front end, mobile, quality assurance, I mean, tester or UI/UX designers, devops, and more and more. But depending on the project you might need to have inside, some sophisticated project, the team will consist of pretty different people, I mean, different roles. So, for example, if you're making some scope of work for the project or if you define the goal, then on the very beginning you might need to ask some architect for some support to give you a possibility to take high level decisions about the structure of the project or about some techniques what will be used internally, inside. Then, of course, if we are talking about the software project or the project where software component is one of important part inside, then you have to think about the software development itself, with, of course, different expertise and sometimes you might need if the project is more customer related, then you might need some support of your UX or UI designers for you. For example, if you are talking about some app, for example, a mobile app or something like that, then UX designers should take care about the customer feeling, the customer experience for the app. But it depends, if the project is really big, then you need to have a team that consists of these roles. So, for example, I can imagine a project that you have one architect, one tech lead, one UX designer , one UI designer and some bunch of software developers and testers, that kind of stuff, if the project is big enough. But if you have some smaller one, then sometimes one person can play more than one of those roles, the software developers and tech leads, for example. So sometimes this can be the same person, I mean, taking care about software development, but also about some high level issues like scaling for an application or something like that. So sometimes you need a really huge bunch of people inside the team. And sometimes the team can be just smaller. And sometimes, for example, if we are talking about the visual part of the project, then UI and UX designers sometimes can be the same person. Of course, it's better when you have the bigger team, but sometimes the project is not that huge. For example, if we are talking about some of our last experiences, if we are talking about some application for life saving, then the team was small, I mean, not that many people were involved in it. So it was not like 15 people in the project, but like five or so.
- Olga
- And sometimes five people is enough to build a great project. Yeah? Just again, it depends on the team.
- Przemek
- It depends on the team. Taking this decision you have to consider two aspects. One is just the exact scope of the project. If the project itself needs to have the really big team. But sometimes this might be better to focus on the right selection of the people. I mean, not only taking into consideration if the people know the exact technology, of course.
So if you want to create some mobile app, for example, then the consistency of your team has to be mobile developers or, for example, fronton developers that can code in some cross platform technology, like React Native, Flutter or so. Yeah? So there are basic things which are needed. But also, you have to take care about the consistency of the team to have internally a really open minded people. You know, who are eager to follow not only instructions, but also to bear in mind the goal of the project. That kind of person would like to discuss it freely, you know…
- Olga
- To make something bigger than just…
- Przemek
- To make some innovation and maybe not only put as many lines of the code, what is needed, but to really think how to solve the issue, how to really change the world using this digital product, what we create.
- Olga
- How to make this world better. Sounds so great.
- Przemek
- OK, this might sound so great.
- Olga
- No, it really sounds great :)
- Przemek
- But let's imagine, for example, think about a product that everybody of us knows. For example, Facebook. Do you know how many people work at Facebook from the technological standpoint? How huge is this project?
- Olga
- I think... just really huge. Just thousands of people…
- Przemek
- That it's thousands. Last information we got was like seventeen thousand inside an app what seems pretty simple, to be honest.
- Olga
- Maybe.
- Przemek
- Seventeen thousand. But sometimes, yeah, sometimes of course you don't need to have a seventeen thousand team to create some innovation. For example, if we are talking about Skype, what has been introduced to the market some time ago. When they started the consistency of the team was three people, at the very beginning. But after that, if you want the project to be scaled and if you want the project to be better prepared for the different environments or different markets, then you might need some additional roles or additional people who will take care of that. If we are talking, for example, about Skype, if you have the foundation with the team of three people, you can see easily that you can’t cover those ten roles that we've been naming before if we don't put these different roles into the same people, into the same person. Yes? Sometimes an architect can be also a tech lead and also front end developer, for example.
- Olga
- OK, that's very interesting. Thank you for that. To sum up, how do you define a good software development team?
- Przemek
- How do I define the good software development team? We've been talking about the roles inside of the team, but this is only one group. Second is the technical approach. You have to build the team with the right tech competencies, the people experienced with the technologies, what are needed in the project, when we define the technological stack for the project. So this is the second approach, the technical expertise. So, for example, if inside of your project you need some more JavaScript experienced people, you cannot put inside or engage the inside people who have expertise with Java. Java plus script, this is not a JavaScript. You have to have a team built in a way that gives you possibility to gain success with your project. So apart from the roles, apart from the tech skills, you have to combine the team this way to give the possibility to first, you know, go in the same direction, to give them a possibility to understand the goal of the project. Understand what patterns we have to follow. This is really important. The second is that you need to have a team that can communicate freely. You have to prepare for them with really nice communication channels. I mean, different tools, different approaches, but to give them possibility, to talk freely, to share thoughts, to share minds and to give them possibility just to work together and not to have any communication barriers.
- Olga
- You said that you combine people with different approaches and different technologies, but different characters too...
- Przemek
- Yes, that's true. Sometimes, inside the project you need to have a really brilliant minds. People who can easily solve technological issues, but also you have to have inside your team people who communicate freely. And sometimes good tech skills don't come together with really good communication skills.
- Olga
- But sometimes it goes together.
- Przemek
- Sometimes it goes together, sometimes not. But the good team is a team with different characters. You cannot have only all kinds of scientists. You also have to have communicators. You also have to have the ability to mix the team and to give the possibility for the team to share ideas and to work together.
When you create the team, you have to support them with their areas of responsibility. You have to set up some goals for the team members, but also you have to think and somehow prepare what areas of responsibility they will have. I mean not only from the technological standpoint, but for example, I know this person should be responsible for this part of application, or this part of digital product, or even some communication aspects, or documentation, or different roles. And you have to offer to the team some independence. They have to have not that really heavy structure, but rather top-down structure to give you a possibility to work more agile, to deliver innovation.
- Olga
- … and to suggest new ideas.
- Przemek
- Yes. Not only follow the rules, follow the points, but give the possibility to come easily with their ideas and then you might be really surprised how your product, or digital product, might flourish. This is to be honest, this is not so really easy. We pretty often support our partners when we are thinking about the creation of a good team. We base our expertise on the previous projects. But this is really, really important - taking care not only of the technological aspects, but also about the cultural aspects, and that kind of soft skills and soft demands.
- Olga
- Thank you so much.
- Przemek
- Pretty often our partners and customers are asking us how to create a really good software development team and we are just supporting them with our expertise. And you can easily find the bottom on our Web page, “Free consultation, click it and we'd be happy to support you with our expertise and give you a possibility to bring your digital ideal life.
- Olga
- Thank you so much. It was a really nice interview and it was really interesting. Subscribe to our channel and give thumbs up, as always on our podcasts and see you on the next Experts Zone Talks. See you!.