There often are misunderstandings between business and tech people. Either side has difficulties understanding the other point of view. Who doesn’t know the ‘us vs them’ problem?
Too often we tend to wonder why THEY have to make it so hard? In this article, I want to show how you can make your work with software developers easier and more efficient when you’re a business person to the bone.
To begin with, let me get this straight. There’s no ‘us-vs-them. Even though we speak and think in different ways, we all play in one team. Together we can create and improve better ways to run our business.
You know the main goal, but it’s the developers, who know how to make it happen. So get the most out of the cooperation and use their experience to boost your company.
But, first things first.
How to gather your team?
First, you need to know your purpose. Do you already know the type of software that you need, or do you merely know the problem you want to solve? Do you need someone (a team) to focus on research? Then your dream team will differ from a pure development team.
- I’d start with one expert who would evaluate the challenges. Their experience will let them create an initial draft and set priorities.
- When you really know what needs to be done, you can think about the team. There are quite a few ways to organize and manage software development. Waterfall v. Agile, outsourcing, freelancers, dedicated teams. If you want to learn more about that, read the article from Inspeerity.
- Most efficient software development teams need: 1 senior developer and about 4 independent developers, 1 tester, and 1 decision-maker responsible for prioritization. They don’t always need to be separate individuals. One person might play more than one role in the team.
- However, the more complex and difficult the task, the more senior programmers you need. That’s why it’s so important to start by analysing your goals and challenges before deciding on the team.
- You might need more than one team, even with relatively simple projects, if they have a wide scope. They’ll work in individual streams that deliver value to the project. But beware, don’t start with creating a whole bunch of teams. Begin with one, and gradually enlarge it. Then divide it, then create another team, and so on. Your teams shouldn’t be bigger than 9 teammates.
How to pass tasks to the development team?
In other words, how to tell your technical experts what do you want. It’s always difficult because business people usually think about sales funnels, customer journeys, etc. Developers, on the other hand, think about tech solutions or performance limitations and improvements. Luckily, they’re just different layers of the same project.
Let’s take e-commerce. Think about your customers’ journey. What should they experience? What options and solutions do they need? For example, I want to filter products according to such and such features. I want an option to compare chosen products. I want to decide if I want to create an account or to buy without it.
There are many more things to think about. What will they do if they can’t find the desired product? How will they ask for help, and who will be responsible for that? In a brick and mortar shop everything is more tangible, so maybe try to describe your ideas as if it was a traditional business?
To make things more clear you might want to map all the processes. What your customer can and cannot do.
Seeing what needs to happen, your developers will know what’s important and what tech events must occur in the system, leaving what artefacts. One of my favourite ways to discover and describe what the system is supposed to work like is Event Storming. It lets you understand what events brought users/customers to the point, where they interact with the system, and what can happen in the future.
When you deliver the idea of what the new system is supposed to work like, it’s time to tell your software development team about your business goals. Do you want to create an MVP and go live as soon as possible to earn money, or maybe competition on the market is so severe that you must have a complete product?
Programmers need to understand your perspective so that they know what are they striving for. Now you can break down all the work and create some kind of a backlog – a list of tasks in a prioritized order. Estimating time and costs will be more accurate now. But keep in mind that only after several completed tasks your team will know how challenging is the project. To learn more about estimation, check our article on the Inspeerity website.
How to work with software developers?
The question should be, how to organize the software development process. From waterfall to agile, to extreme programming, from SCRUM to Kanban, and many more, there are plenty of ideas regarding software development.
No matter which one you choose, it’s safe to say, that 2 weeks sprints are good (at least) for the beginning. It means you plan tasks for two weeks and then check what’s done, what’s not, what worked well for this team, etc. After 3 to 6 sprints both you and the development team will know how to schedule further works.
To make sure that business-tech cooperation goes smoothly you need a person who plays the role of a Product Owner (specifically SCRUM role, but you can use it for other types of projects too). Such a person needs to understand your business and goals and be able to make decisions for you. Usually, it’ll be the role for you or someone from your company. Often such PO will decide what feature needs to be done, and the programmer will decide how to make it happen from a technical (and technological) point of view. Then, step by step, according to your priorities, the development team gets things done.
Another good practice is to set up daily stand-ups. Short meetings that aim to get everyone on the same page and motivate them to work. Every day teammates inform each other what they’ve done, what problems they have, and what they intend to work on. Moreover, it’s a good opportunity to look for future pitfalls and challenges and address them earlier.
Finally, let your team do their job. Most people will strive to do their job well. If you’ve implemented all previous tips, there’s no need to interfere. Furthermore, software development is creative work. People are most creative and efficient (mainly) in the morning, let’s say the until lunch break. Let them use this time. If you need to meet your team and establish anything, it can probably wait until the afternoon.
Software development progress monitoring
So, once your project starts, you need to know, how it’s going, right? Of course, we have all the JIRAs, ClickUps, Trello’s, Kanban boards, etc. They’re great but for human beings, the best way to communicate is to talk to each other. After every sprint, you should have the opportunity to see the results and talk with the team(s) about the project.
The development team will brag about their job, but also inform you about problems and things that hadn’t worked. Such retrospective meetings let you adjust the priorities and direction of the project. Let you programmers complain about things that interfere with their work and the challenges that they see ahead.
Who should deliver such a presentation? Well, it’s on the team’s side to decide, but it’s best when this person is both communicative and has deep knowledge of the project.
Now that you know what’s happening in your project you can decide how and when a particular feature or functionality will be released to your users/customers. Unless you wait for the full system to be released, that’s the way it usually works. This way you can deliver value to your users earlier, and your programmers can see the effects of their work which is an additional motivation.
Do I really need all that?
I agree, that’s a lot to learn for one person. This is the reason why many business people decide to hire companies that deal with everything regarding the production of software. In Inspeerity, where I currently work, we believe that full outsourcing isn’t the best solution either. What do we offer instead? Hybrid software development management. This way you keep the perks of outsourcing and gain the best of an in-house development team.