If you’re handy with a bit of code and you find it a breeze to create software and systems, then congratulations. You have perhaps one of the most marketable skills on the planet right now. But if you want to really excel and earn what you should be, you should be starting your own business. Building software as a service isn’t as easy and knowing how to code, however. You need to develop a whole range of management and commercial skills to go with it. Skills like some of the following.
Build the team you need
The first thing you need to do is identify who you’re going to need on the team. Much like it takes more than a software developer to run a software development company, it takes more than a coder to work in it. They need to not only be technically good. They need to show that they can work in a professional environment alongside other professionals. One of the best tricks for seeing how team oriented people are is to interview them in pairs. If someone seems too competitive or even disdaining to their interview partner, you don’t need them no matter how skilled they might be.
Learn how to market
Part of your team is going to need to be able to manage your marketing, too. But that doesn’t mean you can slack off on it. Anyone who runs a business needs to understand the commercial appeal of it. Not just so they can better bring in customers, but so they know what directions to take the company in that will make it even easier to market. Marketing in SaaS is all about showing expertise as well as user friendliness. You need to rely on testimonial and portfolios to show that your business is equipped to not only build software but help users use it. It’s a good idea to learn how to give away free services, too. If a potential client is interested, put together a mockup plan for how you would tackle their needs.
Go with the monetary flow
As with any business, your finances are a key to keeping the lights on and the bellies of your employees full. So you need to understand just what you need your monetary output to be. This means measuring all expenses and overheads. Any loans, building costs, payroll, and services need to be accounted for. Then use this as a base to decide what your pricing will be. But make sure you’re being fair to customers, too. One way to not scare customers off with pricing is by being flexible with it. Offer more than one service package. Strip services away from the smaller ones to give them a choice. Make sure that you communicate the packages properly with a price table design as well.
Put all your ducks in a row
When you’re coding and developing software for yourself, it’s easy to explore as you go. To build where you think you need to build in that moment. That experimental side helps a lot of people develop their skills. When you’re developing for customers, however, you can’t afford to be quite so loose with it. You need to plan every step of the way. Then you need to make sure that everyone is on the same page. To that end, it can be a good idea to implement project management software as a means of communication across the business. Don’t just set them to work. Know the tasks that need done today, tomorrow, next week and even further on. Then make sure they understand their part in the process at any given moment.
Having them understand their workload is one thing. You need to be able to understand how they’re coping with their workload, too. To remain profitable, you need to maintain certain levels of productivity. It can be hard to measure that without key performance indicators, however. Don’t measure them by the amount of bug found or lines of code written. Measure their productivity by the value of their contributions on any given day. Judge them on a case by case basis. List what they contribute, using individual meetings to look over the work they’ve done over the past days. Pair that up against their assigned tasks and prioritize them.
Take a ticket, please
Prioritizing tasks is a huge factor in making sure that any company is running smoothly. That goes double for software development, where there are a hundred things to do at any one moment. Those tasks can pop up in an email and derail someone who is already progressing well in some vital work. So the key is to find the system that doesn’t interrupt them unless it’s necessary. That system is the ticketing system. Tickets are transferred from one person to another with tasks. They’re graded on priority. The top priority needs to be done right. It’s an emergency or it’s helping someone clear up a roadblock in their own workflow. Lesser priority tasks are things that can be done later. Ticketing is normally used for customer support, but can be equally as effective for internal task sharing. Setting up this kind of system is going to make it a lot easier to communicate tasks. It’s also making it a lot easier to measure employees. If someone has five or more top priority tickets unaddressed on their screen, it’s time to have a frank chat with them.
Set milestones in development
Progress is important but not always easy to measure on the day-to-day. But you need to know how far along things are. It matters in terms of profitability as well as in communicating to customers. Improving your software development process is about knowing when tasks are done. About setting milestones, closing one door in the project to open the next. Have a Definition of Done. Set long term goals everyone can follow. No-one moves on until this feature is implemented. You don’t finalize documenting until all the unit tests are passing. You don’t deploy until you’re documented and passing QA. Setting up proper milestones and a Definition of Done is crucial to make sure you’re not skipping steps.
The next level of testing
Skipping steps is what’s going to leave you with broken systems and dissatisfied customers. So you need to do absolutely everything you can in your power to stop that from happening. This all comes down to being a lot more rigorous with testing. Check out resources like the ultimate list of software testing tools. Use more than one tool to test your software. Make sure your company has a policy of testing after each and every bugfix or change to the code. Not testing thoroughly significantly increases your risk of hitting brick walls in the future. Skip the step of having to run back along your development timeline. Ensure testing is watertight.
You’re selling software, not just making it
Marketing has a lot to do with bringing customers in. But it also has a lot to do with how you keep them satisfied. When you’re adding features and fixing bugs, you need to make sure you’re not just talking about the technical. Ensure that you’re able to communicate the economic value the changes have to your customers. Will it make their team more efficient? Will it save them time? You need to make that the priority in telling them about your work-in-progress. You need to sell your services to them well after they’ve started paying.
You say potato, they say tomato
Indeed, communication is the vital skill you have to learn if you want to be able to succeed in software development. All too often, a client will have a problem in that they’re not able to understand half of what their SaaS provider is telling them. Make sure that anyone who is talking with customers talks about their work in terms of its impact on the customer, not the system. Avoid being too heavy with the jargon unless they show they have the proficiency to understand it.
Be transparent in your progress
You’re not only going to be talking to customers about what features you’re adding, too. You’re going to be talking to them about timeframes and progress. Avoid the mistake that too many providers make in smoothing things over with white lies. Don’t omit that there’s a holdup because testing is finding bugs. Don’t tell them you’re going to make that deadline if you’re not going to. If they’re asking to implement a feature late in the game, don’t blow a gasket. Tell them in plain terms, but graciously, that you’re going to have to do a lot more work to implement it. Be transparent with the work that goes into developing software effectively. The better they understand your workload, the easier they’ll understand that it’s a task with a lot of variables. Keeping them in the dark keeps them ignorant of the demands a task has on your team and can help them develop unrealistic expectations.
We know that all of the information above is quite a lot to take in. But make no mistake, it takes a team to really make a software development company. Start putting together the people you need and the skills you need. Then you’re good to go and start making some money.