7 Steps To Accomplish A Software Project
Software development is an art in some way. Although each project has its own peculiarities, every good company has a structured way of accomplishing them. Here is our generalized vision of this process: from getting acquainted with the Client - up to deployment of high-quality product and conducting post-release services. This is the optimal process that we choose. 7 steps - nothing lacking, nothing excessive.
• Companies usually get acquainted with clients through consulting managers to see whether they have the same vision and approach to efficient collaboration in the future. The initial dialogue leads to getting and discussing the first pieces of information on the future product: goals, monetization means, required platforms and devices, etc.
• If the client requires professional consultations, they can be started right away (for example, if the client is yet to form thoughts and ideas into a more or less coherent document to start with).
• Then the available information/scope of work is analyzed by a project manager and an architect/developer in order to get the preliminary estimate.
• At the end of this step, if the company and the client come to an agreement, the contract is signed.
• It's worth noting that the initial step should be generally accomplished as fast as possible. This serves for the interests of both the client and the company.
Results: the client chooses the company as the suitable professional contractor for the project. The work begins.
• The importance of this step can hardly be understated. It's here that the cost of error for the client is at an all-time low - at each subsequent step changes in requirements get more and more hard to tackle. All the possible problems and risks must be discussed here under the guidance of a dedicated project manager. This step takes time, but eventually saves much more and prevents mistakes and misunderstandings, which is far more important for accomplishing the project.
• Features and requirements of the system are structured and documented. The team is assembled. When the client and the company agree on the solutions and requirements, the team proceeds to estimating the required time for the next steps more precisely.
• If the client requires further consultations, creative experts of the company suggest possible solutions and alternatives to increase the quality and viability of the product. Testing of requirements is usually conducted during this stage.
Results: the majority of further mistakes is prevented here. The selected team gets acquainted with the requirements and tests them.
• The designer starts working on user interaction scenarios. Sketches are created to check the ideas and interaction contexts, and find solutions to possible problems and limitations. This also allows to understand the required number of screens - and how they are structured and how they interrelate to fulfill the functional requirements. Therefore can be created wireframes and a prototype, under the guidance and approval of the client.
• All the necessary interface adjustments are made. The client understands how the UI of the product will work. The requirements as for design and functionality are finalized and approved by the client. Afterwards an estimate for building mockups is provided.
• Meanwhile the team works on the specification of the product. If the prototype is insufficient for understanding, additional documentation is created. This is where the requirements must be finally approved. All the documentation must be useful and relevant in case the client decides to change the contractor. That's one of the main principles of work - the client receives continuously useful outcome at the end of each step.
Results: specification, wireframes, prototype of the product, full understanding of how it works.
• The first three steps are essentially preparations. This one allows to work out the visual concept, style, colors, and additional visual elements. Everything is done according to the client's preferences, market/branding requirements and limitations. The client is provided with several variants of visual representation of one or several screens. The approved one becomes the basis for the remaining screens.
• The necessary adjustments are made and the client approves the design of every screen. The team has mockups and is ready to begin the preparations to implementation.
• All changes in functionality and chartflow become costly and less efficient from this moment on.
Results: full visual representation of the product.
• The team prepares to implement mockups as approved and gives a more realistic estimate for development and testing, iteration by iteration. Risks are also significantly reduced here, ensuring good accuracy of the estimate. The whole scope of work is divided into tasks and parallelized for better efficiency of iterative development. Each task is planned and solutions are chosen.
Results: accurate estimates for development - it is fully understood how the product is going to work and how it must be implemented.
• The main advantage of iterative development is the ability to build a continuously relevant product, adapt to changes, launch the MVP of high quality as soon as possible. A highly crucial quality for startups - and for the whole mobile market in general.
• Each iteration has a concrete result which is discussed with the client (for example, a new feature). The result of each iteration is an implemented build, tested by a dedicated engineer from the QA department. It is provided to the client as a demonstration of results. The client also receives reports after each milestone of the project.
• Agile development does a good job at responding to changes in business requirements of the client and technological changes (such as rather frequent changes in third-party APIs, or radical changes in new mobile platform versions, which do not depend on the client or the company). The software requirements are constantly checked as for relevance, and the documentation is updated in case of need.
• Remember that these changes may vary and it's next to impossible to generalize them. Each one is a high risk of exceeding the deadlines.
Results: at the end of each iteration the client receives a report on the work done, a build of the product and the estimate for the next iteration. After the whole scope is done, the product is deployed to application stores by the company.
• The seventh step concerns final testing and release of the software by the company. The source code is the client's property, as is the deployed product and all the documentation. Very often at this step the collaboration between the client and the company doesn't stop - they discuss new opportunities, further work and post-release services.
• Post-release services include support and maintenance of the software product. It's natural to develop the product further, release new versions, improve and maintain user experience within the ever-changing mobile world.
This approach is the optimal way for startups and other business owners who value their available resources and want to distribute them wisely, without spending the whole project at once, and with all the risks reduced and divided between steps.
Their software product has the virtues of relevance and usefulness for the target audience, which are vital for the mobile market.
We practice this approach at MobiDev to ensure the benefits for the Client, efficiency of work, and high client satisfaction with the process and the results.
Many business people don't fully understand the complexity of a software development process. It's natural, since specialized... more →
June 12, 2014
So you are a business person who's planning to launch development of an app for whatever business purpose. Sure you want... more →
March 17, 2014
The IT sphere is firmly into business nowadays, and it is business in itself. Some entrepreneurs try to enter the blooming... more →