If you’ve been in software development for a while, you know that there are certain “known” and “unknowns” in the industry. By known, I mean things like languages, frameworks, tools, and so on. You can get a job if you know stuff like this. Unknowns, on the other hand, are harder to define and categorize because they usually don’t have just one answer– it often depends on the person or team trying to solve a problem or create something. In this post, I will share with you 5 important unknowns that people in factories must know before starting the journey through the software development factory model.
Their technology stack is less of a concern than they think
They will likely change their technology stack several times over the next couple of years anyway. They should pick something that’s easy to learn (Ruby on Rails) and get started.
The real value is not in the code that they write, but in their process of getting it done
New clients don’t care how good your code is, they care how much time it takes to get delivered. They want to know that you have a process for delivering results and managing projects effectively
There are three key metrics: Client satisfaction, employee satisfaction, financial health
If they can keep their clients happy while keeping employee turnover low and making money at the same time, they’ll be doing well.
The main benefit they’ll get is learning to work together as a team
Factory-model software development, or doing something similar to what a factory does but with software code instead of physical products, has been a popular trend in recent years.
While the idea of mass production may be tempting, factory-model development isn’t for everyone. Here are some things’ people who’ve tried it wish they’d known before getting started:
Be prepared to work on multiple projects. Because you’ll be working in a team environment, you’ll be expected to take on whatever project you’re assigned. This may mean working on something that doesn’t interest you very much, or that doesn’t use your strongest skills.
The main benefit they’ll get is learning to work together as a team. While the individual jobs can still be repetitive and monotonous, the workers will learn how to work together in ways they wouldn’t have if they’d worked alone.
It’s not a competition
I’ve developed software in a factory model, and I’ve seen others follow suit. It’s not for the faint at heart.
You’ll work with people who are different from you. You will be challenged on your assumptions about product development and yourself. Here’s are some things that I wish I knew before getting started:
It’s not a competition. Everyone is working on different teams, so there is no need to compete with them or feel like you have to be better than them.
The goal is to get better at what we do every day.
There are many ways to solve a problem and get the job done, so pick the right tool for the job at hand. Don’t try to make a nail out of everything you see (hammer it into shape).
You can’t force innovation or creativity.
Here are some thoughts from these companies
You can’t force innovation or creativity. We’ve tried. We’ve had cases where managers have gone to the extreme of saying, “You need to come up with an idea, and you need to present it by the end of the weekend.” The ideas that get presented are not good ideas. They’re not disruptive at all; they’re just safe.
If you want people to be creative, you have to create an environment for them, give them time and space to work on it, and trust them. We’ve created innovation labs in different parts of the world and we put a small team of people together who are motivated and passionate about coming up with ideas, presenting them, and working on them.
It has generated amazing results. It might sound counterintuitive because you can think that if everybody is doing innovation and creativity, then surely someone will come up with an idea, but the reality is that this doesn’t happen in a big company. You are really need to carve out an area where people actually work on it.
Bigger isn’t always better.
I have been doing factory models in software development for more than 10 years.
I would like to share some experiences with you.
I wish I knew the following tips before I got started.
There are 3 main points that I want to talk about.
First, Bigger isn’t always better. In the case of factory model, when your team gets bigger, you need more resources to maintain it. You may say that being big is a good thing, however, being too big can cause some issues such as miscommunication, slow development speed etc.
Second, use the right tools for the job. There are a lot of tools you can use for factory model. However, not all of them are good for you or your team members. Before you start developing your product, you should figure out which tools work best for your team members and choose one that is easy to use.
Finally, Be prepared for change. It is common to encounter issues when people work together on a project. But if we learn from our mistakes and change ourselves accordingly instead of blaming others, we will be able to develop better products in less time and with fewer hassles in the future.
These are the things to know before deciding on the type of factory model.