This is a bulleted list and questions about creating a software product.
I am a programmer myself, so I will try my best to share whatever I can share in my 18 years experience in software product management.
This is not a how-to post about programming, agile methodology or any technical subject.
This post is intended for technopreneurs or programmers who has a software product idea to develop and sell.
1.) What software should I create?
This depends on your goal or passion. It can be a business software, a game, or a mobile app. Try to look for people problems and solve it.
2.) Should I learn a programming language?
If you want to do it yourself, yes it is a must. Or just hire a programmer to do it for you.
3.) Should I seek for a consultant?
Find friends who are an expert on the subject matter. If you want to develop an accounting software, then find an experience accountant. If you want to solve a problem about project management, then find a good project manager.
4.) What programming language should I use?
If you are creating a mission critical application, I suggest to go for Enterprise Java. If you prefer an easy rapid development environment, then go for Microsoft C# .Net. If it’s just a small web application or an eCommerce then go for PHP, Python or Ruby on Rails.
5.) What OS should I use?
Mac, Windows or Linux will do. It depends on your preference.
6.) What database tools should I use?
MySql or PostgreSQL if you don’t want to pay for an Enterprise MS SQL license for your client.
7.) How do I design the database?
Just layout the table names and its columns on your first iteration. The next day, try to normalize and eliminate redundant tables by fine tuning the entity relationships.
8.) Where do I start the development?
a. Start with an outline of features and user stories.
b. Draft a use case whenever applicable.
c. Convert those outline into detailed menu items and windows.
d. Draft the database design.
e. Choose a programming framework e.g. MVC, there’s a lot of de facto standards, you don’t need to re-invent the wheel.
f. Run a hello world program and CRUD sample.
g.Draft the UI/UX wireframe, Start with the login, dashboard and menu layout.
h. Create a prototype for reporting.
i. Code each window accordingly or delegate to a programmer.
9.) What programming methodology should I implement?
Nothing beats Agile.
10.) Should I hire a programmer?
As much as possible, do not hire. Hire only when necessary and/or time is of the essence.
11.) How should I get a programmer?
Post from job boards and online freelance platforms.
12.) How do I train the programmer?
Train only programmers if your budget is limited. Do item 8.) first then train the programmer based on it.
13.) How do I design the UI?
Copy from templates and/or existing applications. Just do minor tweaks on the color and layout accordingly.
14.) Should I hire a UI/UX expert?
Ideally yes, if you have a budget.
15.) Should I worry about technology upgrades?
Yes, you don’t want your product to be obsolete soon.
16.) Should I work overtime and overnight?
Practice the 40 hour week. I suggest to work overtime if there are backlogs from previous sprint. But never overnight.
17.) I saw a bug, should I fix it right away?
If there’s a version already released, yes do a hot fix. Otherwise, just fix it on the next sprint.
18.) There are tempting features to include, should I add it to the current release plan?
19.) How do I market the software?
Start with friends and colleagues. After a good word of mouth and traction, then invest on SEO and PPC.
20.) Should I get an investor?
Not right away. Get traction first. Value your product 4x your total cost to-date then add value on existing customer base.
21.) What is the best Sprint period?
I prefer two weeks.
22.) What do I do if the team don’t meet the timeline?
Digest reasons why during sprint retrospective, normally because of under estimated tasks or programmer’s habits. Lead the team by coaching.
23.) How do you estimate research and knowledge acquisition?
You cannot. Just put 3 days and adjust accordingly.
24.) How frequent should I release a new version?
25.) When should I give up?
Dont. Only give up if no one wants to provide you loan or invest.
26.) Should I go traditional installed license model or SAAS?
SAAS is the future. But if you want immediate cashflow, try selling it as installed-based while working on your SAAS.
27.) Should I implement automated testing?
Yes. You don’t want to hear issues from previous features every time you release.
28.) Should I implement continuous integration technologies.
29.) Should I use a versioning system?
Yes. You don’t want your code overwritten by another programmer.
30.) Should I document my software design?
Its a waste of time.