Background:
It is very good practice for all software engineers to build and then launch their own application in market. From build to launch the application, it is an opportunity to not only complete the whole software development life cycle but also go through the market strategy. There are a lot of difficulties will meet during software development life cycle, a lot of problems need to solve before launch the application to market and a plenty of preparations need to do during the marketing life cycle. This article shares my development experience when I launched the application aSearchy.
Terminology:
Software development life cycle (SDLC) cover 1. Planning, 2. Requirement analysis, 3. Designing, 4. Implementation, 5. Test and Integration, 6. Deployment and 7. Maintenance. Client life cycle cover 1. Evaluation, 2. Purchase, 3. Retention, 4. Awareness and 5. Advocacy.
Development check list:
There are a lot of considerations and selections need to pay attention. Well planning before launched the application can help to reduce painful:
- Any uniqueness? Any improvement on the existing products?
- Any attractive features?
- What kind of platform to do the development? This is an important step before coding, select properly platform can save times on further changes.
- What kind of application wants to develop? The application is for PC, server, web site or mobile? Simple console or GUI or framework?
- What kind of language to implement the code? Select a suitable, comfortable, and favorite programming language is another important step before start.
- What kind of the build tools or development tools (if any) need to setup? For C/C++, there are gcc, g++, clang, cmake, qmake, nmake etc. For Java, it is the javac, runtime library. For Python, install necessary libraries.
- Which IDE suitable for editing the code? Visual studio code, Visual Studio, Xcode, Eclipse, Vim, Notepad++, Ultraeditor etc. The IDE support debugging? Syntax highlighting? Auto-complete?
- How about the UI? Command line interface: DOS prompt or Powershell (Windows system), sh or bash shell (linux, mac). Graphical UI: wxWidgets, Qt, MFC?
- How to debug? Which debugger is better? The lldb for mac, gdb for linux, visual studio for windows etc
- Any logging system? Any logging selection? Log debug, info, warning, error? Is it possible to switch on or off the logger?
- Any method to keep track on code changes? Any versioning? For example, using Jira, Git etc?
- After completing the code at different phase, how to test the code systematically?
- Any test cases?
- Any assertion? Any exception handles?
- After release built, dynamic or static linking?
- Any backup on the code? Is it separate staging and production version?
- How to deploy? The msi installer or msix installer in Microsoft Windows? Or Apple app bundle method? Or Mobile App release build?
- Where is a best place to allow user to download and try? In Microsoft Store, Apple Store, Apple App Store, Google App Store?
- Any download website? Any crashed report? Any reviews? Any bug reports?
- Any user guides? Any user helps?
- How to acquire the user experience?
- Any marketing plans?
- Any channel to promote the application?
- Any budget to do marketing?
Software development which is lengthy and sometimes endless process. Actually, launch the application is beyond the software development life cycle.
Joined life cycle:
From preparations to launch the application, it involves plenty of tasks. Most likely during the deployment cycle, it needs to coincide with the client life cycle.
Figure 1. Software development life cycle joined with client life cycle.
Conclusion:
Start the marketing after deployment is more persuasive than at earlier development period. It is easier to do the survey and observe the feedback from target audience with actual product.
At the beginning, marketing channels can ask from family, then friends, then peers, and then promote on the online communities and social media.