Software development is a journey. Starting from an idea to a fully functioning product takes a lot of work. Involving a hand full of expertise, product development goes through phases in order for finished goods. It can be frustrating from time to time dealing with the stages of production, but a fun way to go through it is treat is a path full of challenges. Similar to those games where reaching the next levels provides a reward. Working with designers, programmers, software testers, etc. can also be educational to learn new buzz words, viewpoints, thinking. So here is how it goes:
Every software product starts with an idea, that can either be absent from the market or more to an existing solution. But the “IDEA” is the start for this journey.
You come to software developers like us with an idea for a product that does not exist in the market. You typically speak to a "requirement analyst" (buzz word for anyone who understands software products well). You explain the features and the advantages of the product.
Sketches and features
From the discussion, we make notes of the functionality and make sketches of the product. We use the sketches to make a list of features for the product.
We then develop a wireframe for the product that details the functionality of the product. Wireframes are nothing but a slightly better set of sketches where you can follow how your app will behave. The wireframe pictures go through a lot of to and fro where you say "nah, I am not sure that's how I want it" and us saying "but if you don't make that action button large people will not tap it" etc.
Once the we are all happy with the wireframes our designers turn the wireframes into colored pictures of what the actual application will look like. Designing mockups will help to visualize the outcome of the product, that will involve the colors, icons, identifying the different functional changes.
Using the wireframes and the mockups, the programmers come in to play, the development phase starts.
Software testing will improve the product, fixes bugs and helps to do more before the release.
After all of these, when the product is ready, it will be launched to your end users.
Ending with customer(s) appreciating an awesome solution that they have been waiting for.
Now is this a brief explanation for the phases for a software development process. There are more to it when it comes to real life production process. Just try to think of it in a fun and simple way to deal with, makes the whole production process a lot easier, collaborative and efficient.