We at Kaz Software focus mainly on custom software development for our clients from all over the world. We’ve been in this business for almost a decade now and a lot of people starting a new company ask us what they should be concentrating on when building a custom software development firm. I usually come up with ad-hoc answers, most of the time my replies are about what I was concerned about then rather than a good list.
It happened this morning again and I made up my mind to write a top 10 list that I can point to next time someone asks me. So here it is:
Top 10 things you must have to be a successful custom software studio according to the Kaz wisdom :)
1. Diversity of skills. You most likely to be doing all kinds of software projects (although some people don’t consciously and lose business). Different requirements need different technical platforms to get done properly. For example, you would probably do Python for a mobile API box whereas Java for an ecommerce site or Perl for a text extraction job. On top of that a lot of outsourced software projects tend to have a challenging aspect to it – which drives clients to seek outside help. Diversity of skills in your team is thus essential to keep the business going. So next time you see erlang in the CV don’t squint, you just never know when you might need it.
2. A restless mindset for the team (or at least part of it). Why? Because you’d probably be switching teams to different projects all the time and your teams need to see this as a good thing, as a way to try out new technology or domain. So a lot of job switches in a CV isn’t always bad – but take this last piece of advice with a pinch of salt – you need to investigate the reasons for the switching was for the right reasons!
3. Have regular in-house training about new upcoming technologies. You will soon need that and you cut down big on learning curves by doing these trainings in anticipation. So ask that guy who keeps raving about Cucumber to do a workshop on it.
4. Hire twice the systems guys you think you will need. Custom software projects mean development environments and servers that keep varying. So keep your extra systems guys busy preparing local cloud setup in spare time and wait for that new project to come in through the door.
5. Buy good spec clone machines and make them your servers! But buy many (with the savings you make by not buying that cool blade server). The reason is that in most custom software work you won’t need them in a year’s time. Clones are just easier to wipe and start afresh. But obviously if you are into long time contracts on single products then ignore this advice.
6. Hire designers who are really jack of all trades. There is no predictable design workflow in a custom software company. You expect them to be doing balsamiq in the morning, XAML in the evening and css the next day. Make sure she has a cool head!
7. Have a facilities team (I say team, but for start up this could be just you) all primed up for action. For a custom software company, moving people and teams around within the building and outside on client sites is the norm. You need to perfect this process so that it wastes very little time and your dev guys are operational within hours rather than days. Our facilities team guarantees overnight moves – so we specify whom to move where and find that in the morning they are there.
8. Make sure your accounting package is setup properly and the invoice process is smooth before even hiring your first software developer. It’s easily the first thing that get deprioritized (“nah, we will use a random excel spreadsheet for now”), but believe me it turns into a mess as soon as you start getting any business.
9. Hire a business development guy. I wish we knew this at the right time. Custom software game is all about keeping projects in the pipeline and you need someone working on that dedicatedly.
10. Culture, culture and culture. Need I say more? Custom software projects need teams to have a work culture that drives them towards innovations all the time. Without a proper workplace culture you are bound to come up with mediocre deliveries.
So that’s it from my infinite wisdom in custom software world. Good luck with your company, it is an extremely exciting, rewarding and challenging experience – enjoy it.
N.B. Just in case you are new here: we are a custom software company in Bangladesh making custom web, desktop and mobile apps for other companies and being very good at it! Check out this page to know more about our software development work culture and environment.