Big News: FounderDating is joining OneVest to build the largest community for entrepreneurs. Details here
Latest Notifications
You have no recent recommendations.
Name
Title
 
MiniBio
FOLLOW
Title
 Followers
FOLLOW TOPIC

Question goes here

1,300 Followers

  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur
  • Name
    Entrepreneur

Preparing a Software Product for Release

I am a self-taught programmer and am planning to release software targeted to business. The program was written in Visual Studio. I intend to hire someone to prepare it for distribution, but am not sure what needs to be done (subscription enforcement, prevent code from breaking at input fields, etc.). What needs to be addressed?

10 Replies

Gabriel Magaña Gonzalez
0
0
Systems Architect
First, congrats on finishing your product!

As to your questions: I'd say it depends on how much you want to protect your product from piracy (totally depends on what your product is and how likely people are to want to share it). If you want to be really stringent, then you need to protect your code from reverse engineering (particularly if written in .NET). You might also want to make the system "phone home" in order to activate for use. The executable encryption is important so that crackers find it difficult to disable your security system.

I'll say the mandatory: "No encryption is perfect, there is no way to truly prevent people from reverse engineering your product, blah blah". The point is that you make it much harder to crack your product, too hard for the casual guy.

I cannot say more without knowing more about your product, other than I'd make the system phone home to verify a license, and I'd encrypt the compiled code to make it harder to reverse engineer your system.
Jared Owen
0
0
Jared Owen Entrepreneur
SDET at Microsoft
Any input fields open yourself up to a SQL injection security attack. You want to use regular expressions to "clean" the input before saving data into db at the very least. There many code examples online...
Lorraine Wheeler
1
0
President at Redstoke, LLC
Regarding subscription enforcement, I would only put very basic subscription enforcement in the first revision. Focus on the features and making it easy to use. If you find your software is so popular that it gets stolen a lot, then include more enforcement in future updates. In some respects, it is a "good problem to have" in that it means your software is popular and people are trying it out.
Daniel Marques
2
0
Daniel Marques Advisor
Director of Application Development at Pragma Securities LLC
Ronald,

From the sounds of it, it seems like you aren't a professional programmer (self-taught, or otherwise). As such,I think you need to re-think what you are hiring for.

Instead of hiring someone to "prepare it for distribution" (which makes it sounds as if the project is almost complete), consider what you have done as the proof of concept (POC). It might be great, but it is still (likely) far from complete.

Look for someone who is an experienced developer in the language (you don't say which one) and platform (presumably Windows as you are using VS, but not certain). For the first phase of the selection, explain the general idea of the software (or demo it to them), and ask them to describe exactly how they would production-ize it.

This should involve dealing with error handling (both input validation, but also writing/reading files, or making network connections), configuration (and saving configs), database access, piracy prevention, etc. This should be a conversation to open your eyes as to the effort to go from POC to production. The right candidate should bring up many, many, things that you haven't thought of. Of course, write this all down and take the opportunity to research if what they are saying passes the smell test.

The next step would be to have them evaluate the code for a day or two and come up with a definitive list of the work that needs to be done, and effort involved.

Good luck.


Art Yerkes
0
0
Art Yerkes Entrepreneur
Computer Software Professional
"Any input fields open yourself up to a SQL injection security attack. You want to use regular expressions to "clean" the input before saving data into db at the very least. There many code examples online..."

Input validation is always a good idea, but when dealing with a SQL database, SQL queries should not be composed as strings with embedded values. SQL queries with out-of-line parameters should be used along with the APIs that support them. Using a regex on the input to "clean" it gives a false sense of security and is often more complicated than just doing it the right way.

Also, ensure that serializations of the data are escaped in a way appropriate to their use (for example, that text composed in a web browser control is fully escaped as html entities).
Ronald Rich
0
0
Ronald Rich Entrepreneur
Investment Banker | M&A and ESOP Specialist | Corporate Finance Advisor
Thanks very much for the great answers. I will follow-up with some questions under another heading.
Faisal Memon
1
0
Faisal Memon Entrepreneur
iOS Department Technical Lead at Citrix ShareFile Quick Edit
What does it take to move from a prototype to a released product? -- the answer is well documented by the Mythical Man Month -- an old but classic book which I think you would appreciate as it tells the story of the other aspects of software development is needed to get to a real product. A contemporary resource is the apple app distribution guide -- yes its a different ecosystem but it calls out many of the kind of things that need consideration -- beta testing, marketing, artwork, legal contact, support site, etc. It gives good food for thought -- the wider picture. Equipped with that perspective, you have to tools to dig into your specific product domain and ecosystem.
Scott Harrison
0
0
Scott Harrison Entrepreneur
Principal Software Development at Insightful Business Technologies, Inc.
Ronald, The person you are looking for will have the skills and bandwidth to get your product published and be there to fix bugs and respond to your clients' feedback. The relationship must be mutually equitable and long term as getting your product into your clients' hands is only 10% of the journey. Your clients want to see you grow and having a good, experienced developer available is essential.
Siraj Hussain
0
0
Siraj Hussain Entrepreneur
Software Engineer at Macrosoft
Hire a best software quality assurance engineer. I am offering my services.
Liza Taylor
0
0
Liza Taylor Entrepreneur
Communication Specialist at Keyideas Infotech
Great job Ronald. Subscription enforcement is the best method for product release. As long as you have the quality, you would always have the end users and enterprises to use your product. It is one of the models where it can be used as per requirement. And the subscription can be extended further. I do feel that monthly plans might be a bit expensive than quarterly plans and yearly plans but I still prefer the monthly plans so that I don't spend a huge sum on one go.

Good Luck Ronald Rich.
Join FounderDating to participate in the discussion
Nothing gets posted to LinkedIn and your information will not be shared.

Just a few more details please.

DO: Start a discussion, share a resource, or ask a question related to entrepreneurship.
DON'T: Post about prohibited topics such as recruiting, cofounder wanted, check out my product
or feedback on the FD site (you can send this to us directly info@founderdating.com).
See the Community Code of Conduct for more details.

Title

Give your question or discussion topic a great title, make it catchy and succinct.

Details

Make sure what you're about to say is specific and relevant - you'll get better responses.

Topics

Tag your discussion so you get more relevant responses.

Question goes here

1,300 Followers

  • Name
    Details
  • Name
    Details
  • Name
    Details
  • Name
    Details
  • Name
    Details
  • Name
    Details
  • Name
    Details
  • Name
    Details
Know someone who should answer this question? Enter their email below
Stay current and follow these discussion topics?