In our last blog post we started our discussion about the importance of a thorough discovery process which defines the software users’ needs. When done correctly this will lead to a more accurate estimate with a realistic timeline of deliverables. In this post, we’ll focus on what those major milestones are in the software deliverables timeline.
Once you and your developers have defined the software users’ needs, it’s time to make sure you have a roadmap that will bring to life all of the features and functionality the user will engage with. Below I discuss the 5 main phases in bringing your software to life. There are several mini phases, steps and nuances within each of these high-level project phases. However, it would be beyond the limited scope of a single blog post to discuss all of them here.
Storyboards & Wireframes
The first step in the timeline of deliverables is the storyboarding and wireframing phase. During this step in the project, your developer will begin visually laying out the user flow within the app or website. This is what is known as “user experience” or simply UX. While storyboarding probably doesn’t require any explanation, wireframing however, can be thought of as a much more detailed storyboard which serves as the final software blueprint. In the wireframes, there are nuanced requirements and instructions on each of the software screens that will be designed and coded.
Nothing in the project’s timeline will be as important for you to understand, question, test and iterate with your developers than these wireframes! It’s a relatively easy (read, “inexpensive”) exercise to iterate and perfect the final wireframes. However, once front-end coding begins on your website or mobile app, if you later decide that there is a better UX than what is in the wireframes you signed off on, this could get very expensive! Not only do the developers have to backtrack and code screens again from scratch, but often times there is no room in the development production timeline to even accommodate such changes.
On average, this UX phase will take 2-3 weeks. If you have time, and really want to successfully convey your vision to your developer, bring your own crude sketches of key screens to the collaboration table at the beginning of this phase. It will fast-track the process to nail down how you envision the core user experience. We have lots of entrepreneurs and enterprise clients that will even mock up more advanced wireframes on free, or near-free, prototyping software systems that are widely available, e.g., Invision, Sketch, and AdobeXD. Of course, developers can also create graphical mock-ups and prototypes for you, depending on your budget.
Once the key web or app screens have been finalized on your wireframes, your developer’s graphic designers will start creating the final user interface (“UI”) which overlays the underlying code. This phase represents the second half of what we refer to as the UX/UI phase of a software project.
Typically, the designer will create at least two different design directions, starting with the key home screen of the mobile app or website. Once you’ve signed off on this key screen, most of the other screens’ designs flow fairly quickly from there. On average, this entire UI stage takes about 2-4 weeks. Once the designers complete the initial one or two key screens of your software, the developers will usually start integrating the UI into code, so as to decrease the ultimate time it will take to complete your project. During this UX/UI stage, developers will usually concurrently start their pre-production / pre-development tasks. These include setting up the Staging environment on the server where your app will reside, creating your platform’s Admin/Client Panel (Content Management System – or, CMS), and beginning to architect the database/back-end of your software.
Development / Coding
Once the UX/UI stage is mostly complete, the heavy-lifting begins. This part of the timeline is where the developers write the code which will bridge the software users’ actions on the software’s front-end with the functionality that gets carried out between the middleware and database back-end of the software. The time period involved to complete the development / coding phase can vary widely, depending on the complexity of your particular app or website.
During the development stage, your developer will be releasing completed portions of work in 2-3 week intervals known as sprints or builds. Typically, your developer will have you thoroughly review each sprint. Any necessary revisions or tweaks to the build will be implemented quickly, in order to close out that particular portion of the app or website, and move on to the next sprint. When all the sprints have been signed off on, you will move into the final testing stage.
QA & Testing
During each sprint/build there is typically a dedicated quality assurance (QA) person assigned to your project. This person tests and ‘scrubs’ each build before it is released to you for final review. While there are some key, technical differences between QA and testing, there’s enough overlap between them that we’ll discuss them together. In a future blogpost, I’ll get into the weeds about some of the key testing methodologies and techniques.
At a high level, QA involves testing your software for overall performance, quality, reliability, security and usability. QA is looking for ‘bugs’ and other things that might not be working as they should. QA also compares the build to the UX/UI which you signed off on during the wireframing and graphics phases.
Depending on the scope of your project, additional functional testers may be assigned in order to try and replicate every possible user experience that someone might undertake using your app. By “pressing” on your software, they are looking to see if anything doesn’t make sense in the user flow. Testers also look to see if they can “break” the app — making it crash, or creating unintended error messages, freezes, or hang ups. This includes phone device testing for mobile applications and browser testing for websites.
As each build is released, the developer’s team is usually doing some form of regression testing. Regression testing is checking for breaks in previous builds that the latest build may have caused. When all of the builds have been completed, a very lengthy, final regression testing period will also be conducted.
Once all regression testing is complete, you may want to involve at least a handful, if not many more, of beta testers. This involves playing with the app or website, putting yourself in the shoes of someone that’s never engaged with the software before and uses it for the first time. During beta testing, you’ll track user engagement levels based on different scenarios.
Content Seeding & Publishing / Go Live
Once your app or website is built and tested, it’s time to seed content through your CMS or directly into the database behind the app. Often times, your content will be curated by users once it goes live. In either case, prepare the software with whatever images, videos or information that you want your initial user base to experience once it’s live.
If your software is a mobile application, your developer will help you prepare all of the information that the respective app stores require in order to be published. Apple, in particular, can have some very stringent, ever-changing rules that your app must follow in order to get approved. This publishing process can take up to two weeks, depending on any change requirements that come back from Apple.
Now it’s time to start gathering initial user feedback and implement the adjustments necessary to make your software a success. We’ll dive deeper on this topic in a future blog post. In the meantime, you should also be thinking about your marketing plan to obtain user growth, before even bringing your idea to life!
— Written in conjunction with Dympna Williamson, Senior Business Systems Analyst, Epic Apps