SaaS development - how to get initial tech advising

Joined
Dec 21, 2016
Messages
11
Likes
10
Degree
0
Wasn't sure if this needs to go into the Newbie Questions' thread, hopefully, it can be removed if inappropriate.

Really simple question. Not even trying to get on the all start-up wagon madness or going public with that, but we have identified a tremendous need for a stand-alone service (SaaS) within our existing client base.

Obviously, we lack the dev skills and are looking to hire a company to develop this. My question is whether we can actually approach a consultant that could lay out our needs (really basic stuff like 'we want this to do that' etc.) and map them out into a technical resource that we can use to go to a dev agency, along with providing a basic estimate of the investment required.

I reckon most established dev companies wouldn't bother answering stupid questions like this, so is there an intermediate consulting service like this at all?

Thanks
 
This really isn't a simple question if you lack the dev skills. Here are some things to consider when going to a consultant and the eventual development company. There are 4 phases of a SAAS's development, Building, Launch, Maintenance, and New Features. ALL of them require developers. Whether you outsource the initial or the whole operation, at some point you'll want consider bringing an in-house developer to help maintain what you created - unless you really want to get invoiced for tweaks here and there.

Here are the phases and my comments:

Building
  • Development team should get a clear blueprint of what's to be built and then be able to relay it back to you in somewhat layman's terms. This should be set up in phases and you should be using a project management system that can track what's going on, you see the communication - and your coder (on your team) can understand and relay back what's going on. If you are going to be doing weekly meetings without timelines and visuals of what's going on, you are screwed. 2-3 weeks can go by like that and then you are 8 weeks behind cause someone didn't fully understand what a certain feature was really suppose to do.

  • Technologies used should be the lowest common denominator unless the SAAS has complex functions. The lowest common denominator in programming language can be php, python, or C++ for example. In terms of databases it can be MYSQL or SQL - or something relatively familiar to the masses of programmers. In terms of http server it is NGINX or Apache. The reason you use more common technologies is because when you take over from the development team or add a programmer it will be easier to find people that know the lowest common denominator technology instead of having to hire some mystical voodoo programmer that installs gems on your ruby on rails install to get the Eye of Agamotto to transport you through time correctly (unfortunately does not include traveling through space - just time).

    UC1u2bs.gif

  • I'm going to re-iterate this one more time - if you go with fancy coding languages and specialized solutions - remember you'll have to hire fancy coders and specialist to maintain and add new features. For example if your guy went old school COBOL you are looking at $90K salaries to start for a COBOL guy, versus some php guy at $30-45K. Maintenance can get expensive quickly with specialized fancy technologies - and scaling is always a problem with newer technologies.

  • Most important - How are you going to accept payments. Paypal (don't recommend), stripe (recommend), authorize.net? Will you accept wire transfers, or scheduled merchant withdrawals? What happens when you come across your target audience that wants net 60 invoices - what do you do then? All those questions need to be considered since if you accept Paypal and Stripe - you'll need to maintain 2 pieces of code for payments. Anything additional on top of that you need more code to maintain. Then throw in chargebacks, disputes, and more importantly how do you plan on handling fraud and stopping it before it happens?

  • Security - Your developers better know how to make sure your code is not XSS exploitable but more importantly CSRF as well as tons of other acronyms. And how you store data like password and credit card information can't simply be MD5 cause that algorithm was weak 10 years ago. What happens if you get broken into? Can you detect intrusion? DDOS attack? In the beginning you can cut corners, but as you grow and become more valuable you have to start concerning yourself with protecting your assets and customers.

Launch
  • Will there be an Alpha test? (internal launch using people that would be target customers) - This helps determine whether the build your team just came up with is even viable as a product/service in the marketplace. When doing task does it crash or go smoothly? Is the UI somewhat understandable - if not it has to be polished up for the beta test (public facing).

  • Make sure to have a checklist of the important aspects which are missing for "full functional beta test" - example "forget password" function, "account creation", "payment processing", "security features".

  • Readiness for scaling - How will it scale? If you have a single server and it's running on all cylinders 24/7 when and how do you scale to add more customers/capabilities? Can you easily add more servers (horizontally scaling)? Can you upgrade your way (vertical scaling)? And whether you chose to go horizontally until vertical, or vertical until horizontal - is your code capable of scaling without confusing itself?

  • Will there be a Beta test? - Whether it's paid or unpaid, when users start using the software and reporting feedback bugs that your Alpha tests couldn't imagine cause they were in a closely monitored environment, how will reporting be taken care of? How will bugs be fixed, how will "mission critical" features be added. Will anything cause a delay of the official launch date?

  • How are you going to communicate with your users? Emails can get out of hand quickly when you have to reply to dozens or hundreds of them daily. Who will reply to them? How will passing them to the development team work? What tools of communication work best? I recommend Intercom since it keeps everything in one place.

  • When will it officially launch?

  • Launch problems will happen, the development team needs to account at least 20-30% of their time to fixing problems that will occur.

  • Discuss how feature requests will be handled when customers give feedback.

Maintenance
  • Coding language and technology used need to be known and understood by in-house developers. Otherwise you'll need to constantly use and get billed by the outsource team when something breaks, goes wrong, or needs adjusting.

  • Scaling hopefully was built into the code, otherwise a coder will need to go in and surgically add that capability. In my opinion the biggest cost and chunk of time will be in maintaining the code out of the gate. As bugs are worked out, there will be less and less complaints and problems.

Adding New Features
  • It's impossible for you to get it right out of the gate the first time. Customers will request new features, non-customers will request new features. People will give you feedback that's bad and some that's good. How you deal with it matters. If 10% of free customers as for a features - should you do it? Maybe, maybe not - maybe they want you to become something else and are asking for features that have nothing to do with your core. If 10% of paying customers ask for a feature should you do it? Perhaps, perhaps not - there is no perfect answer to this, but how you decide on new features and add them should be considered and talked about with the development team.

--

Some of this can be glided over when you are 2 guys in a garage, and you can figure it out as you go. Unfortunately you cannot since you currently have a business that has a brand and if you launch a new service offer to your customers, they are going to want that same level of quality. IF your SAAS screws them up - then you could potentially lose customers on your main operation, so you have to come out of the gate polished and not like 2 guys in a garage setup - cause of your pre-existing customers.

I don't have the answer whether a SAAS consultant exist that helps you flesh out and develop your software - the development team should have a software manager that can do this - but I recommend a 3rd party or better yet hire someone to manage this project for you. Think about whether you'll be taking over development afterwards and therefore have to staff up in-house or not.

I can tell you that you'll definitely want to have someone that knows how to code managing and understanding where everything is at ON your team. It's like wanting to build a car without any car engineers on staff - or building a railroad with no engineers - or building a rocket with no rocket scientist - or doing a heart transplant with no surgeon on staff - it's going to be expensive and you will not like the outcome. Building software without software developers on your side is a recipe for disaster. The main reason being is you can't tell whether you are getting quality or horse shit. You can't tell whether the hours are being spent correctly or you are just getting billed.

The difference between software and a physical product, is you can hold the physical product and physically examine the end result; with code - and you not having coders on your side, you won't know whether you are looking at spaghetti code or Da Vinci level programming.

I would recommend bringing someone in-house to manage the project or at least can tell you in layman's terms what obstacles the development team is coming up against, whether they are legit or not, and what's being done to fix it.

Bugs and code fail ALL the time. There is no such thing as the perfect software, even Notepad.exe crashes every now and then, but the quality of the code will make it easier to find and fix bugs faster - saving you time and money.

In terms of "cost" I created a SAAS and am working on another - I wouldn't be able to tell you how much of a budget it took to get things off the ground due to the nature of how we work. So just remember, an "estimate" is just that, an estimate based on "perfect world scenario" - that NEVER happens. Account for at least 40-200%+ cost overage, even more if you went with cheap coders and now have to higher better coders to fix the bad coder's code.

Example, if someone tells you your SAAS can be built for $1,000 by 3rd world coders, it's going to end up costing you $20K in overage and it'll be buggy as hell. If someone tells you $5K cause it's a simple thing - maybe it'll cost you $7K-10K in the end. Unless the development company is willing to stick to the initial price and give you a detailed break down of what you want, just be careful - and I recommend you have someone on your team that can look over things and understand it.
 
I would recommend bringing someone in-house to manage the project or at least can tell you in layman's terms what obstacles the development team is coming up against, whether they are legit or not, and what's being done to fix it.

So much this. The project manager should have an IT background.
A non-IT person will not be able to see through the bullshit being thrown at you and your project and your timeline.
 
Obviously, we lack the dev skills and are looking to hire a company to develop this. My question is whether we can actually approach a consultant that could lay out our needs (really basic stuff like 'we want this to do that' etc.) and map them out into a technical resource that we can use to go to a dev agency, along with providing a basic estimate of the investment required.

You could absolutely approach a consultant and they could work through this with you and get down what you need to bring to another organization. It's actually a pretty good idea. What this person is though is a bit vague, I've never ran in to someone that was just a "consultant". You're looking for someone probably with a broad development background or someone who's spent time on projects kind of like yours. No two projects are the same and I would guess even 2 consultants / devs would give you different opinions. This is because there is a lot of ways to do things though.

I reckon most established dev companies wouldn't bother answering stupid questions like this, so is there an intermediate consulting service like this at all?

They might. From my experience you get a lot of people that come to you with a few sentences and maybe you chat for a half hour but they aren't you know willing to actually pay for your time to lay stuff out. Like a lot of other businesses you get a lot of tire kickers. If you're actually serious, and willing to pay for their consulting time I would think they would.
 
Back