Here is the workflow we at JSSolutions prefer when it comes to the development of a new project.
Discussing the project. The client describes what their application will be developed for and who its potential users will be. We discuss the functionality of the first version of the project. Often clients would come up with quite unique ideas for their applications. We ensure the safety of the information exchange by signing a Non-disclosure agreement (NDA).
Creating the mockups. We compose mockups of the main screens of the programme using https://moqups.com/. This allows us to get a more complete vision of the project requirements. Then we discuss each screen with the client, and make necessary changes. Here is an example of a mockup:
Rough project estimation. We make the development time and cost estimation of each feature that is relevant to the project. After the client provides the information about their budget, we together select the most suitable set of features according to it. This results in a rough estimation of the application, which includes the time spent on development, automatic and manual testing, bug fixing, and project management. If the client is satisfied with it, we sign a contract for the project development.
Designing the project’s architecture. After we have agreed on the set of features, we create the project’s backlog. It consists in defining the milestones, and setting up deadlines for each of them.
Project development. During the project development, we regularly communicate with the client. At least once a week we report on the development progress. It’s important that we get a timely feedback from the client, as they might want to add or change something. These are the main principles of communication with clients that we follow:
- be honest
- respond as soon as possible (no longer than within one working day)
- client’s interests have the highest priority
- common client’s interests
- make their users happy (good UX/design, no bugs)
- minimize price (reduce features complexity, avoid redundant/useless features)
- keep project maintainable over time (provide flexibility while adding/changing features)
- do “research” before answering a technical or non-technical question. If we don’t know the answer after the “research” then we write about that.
- give options (mentioning the advantages and disadvantages of each option) while solving problems.
- Testing. We test the application before the submission of each milestone.
Project deployment and support. After the whole project is developed and tested, we deploy the application. We also provide its support.