Deciding what not to do is as important as deciding what to do. – Steve Jobs
I have divided project process into 2 phases, in which requirements gathering, management of change and communication are different:
- Preparation (initial requirements gathering)
- Project Evaluation
Initial requirements gathering in a Software Development Company
Once you decide for cooperation with the best software house, after signing up a contract or just before that - it’s time for making a detailed specification of requirements.
Firstly, try to get to know chosen software development company: learn about their expectations, the workflow, and their development process. The most important question you should be asked during the project preparation is the goal of the project and who the end users are. Did they ask you this kind of questions?
Try not to lose yourself in your own idea. Very often Clients are so much fixated on their idea and go deep into so much that they tend to forget about the main goal (unfortunately, it happens a lot :/). Do people assigned to your project have the real purpose in their mind? No matter how obvious it may seem, it is a question which needs to be constantly asked! The software house’s team is experienced in running scoping sessions, but you’d better know what to expect.
The specification can be done just after few calls with your software provider (mostly if the project is rather small, you have some tech background, and you know exactly what you hope to achieve and how your digital product should look like).
Much better way to make a fully-fledged specification is to go for workshops/scoping session preceding the development stage. Its aim is clarifying the product requirements.
How we do it at Merixstudio? Such workshops usually take two days. During the first one, the scrum team analyzes the vision of the project, using different UX tools (customer journey map, personas, user stories, etc.). In the second day developers come into play (both frontend and backend). They analyze your project from a tech viewpoint (what needs to be coded later on).
I have described the workshops (their aim, organization, and methods) to give you a better understanding of the whole workshops’ process and its outcome.
Have a look at the list of aims of the workshops:
- getting to know the project team,
- detailed analysis and understanding of project’s needs,
- detailed discussion and clarification of the scope of a project,
- drafting and discussing initial conceptions and propositions (freehand sketches/wireframes),
- technical analysis of tech aspects (CMS/e-commerce platform, dedicated solution, tools, technologies, integrations/external services),
- determining project challenges,
- creating a TODO list (so-called “backlog” in Agile Methodology),
- gathering requirements, which will enable cost estimate and schedule creation.
The workshops are based on Design Thinking, which is the secret ingredient for a great web project. It is a cooperation method, which is based on a deep understanding of Client’s needs - within the meaning of both the end user and your company who is contracting the project.
- Duration: 1-2 days of active discussions,
- Participants: your company’s representatives and dedicated team for your project (Project Manager, User Experience Designer, Developers).
Solutions prepared during Workshops:
- Desired by users,
- Technologically feasible,
- Economically justified.
I’m sure that now you want to know how to measure the workshops and specification quality. Take into consideration a few points and questions below:
Do you feel that dedicated scrum team is fully engaged? Do they understand you and your needs?
Mutual understanding is the key to achieving the success. The way software house communicates with you, as well as their business values will definitely help adjust the final product to the company’s expectations. What’s even more important is if they understand the end users of your application/website?
- Do THEY often ask WHY?
This question often reveals the true goal of what is really desired. It is an open question, so it may also show some issues we would never ask about, but which may turn out to be the key ones.
- Do YOU often ask WHY?:)
Now it’s your turn :) You will invest your money in your vision and the software house that will be working on it, so don’t hesitate to ask them anything that makes you awake at night or at least could do :D
- Time and Material
Most IT companies choose Time and Material model for calculating the cost of the project. They often give you the estimate of the money and time frames, as well as kickoff date and project duration. Most software houses prefer T&M method with rough estimations at the beginning because it turns out to be more realistic in the development process. In addition, it doesn’t limit you and your ideas, as far as the project requirements are concerned. Also, in this case, I would recommend securing some extra budget for unexpected ideas or issues.
- Get familiar with tools the developers’ team use
They may give you an insight on the further software you will be given access to.
- Your sales and marketing strategy (after the project’s launch)
Even if you haven’t started with the project yet, you probably have a marketing and budget plan. Share this information with the software development team, so they can advise you in this case as well as adjust it to your future sales and marketing activity.
Believe me, our dev experience tell us that there is always something unexpected in the project. It is important to double check whether all the functionalities you wanted are included.
Now when you have approved the wireframes and specification, the scrum team can get down to work. Many software companies who apply Time and Material model, follow Agile Software Development Methodology (such as Scrum). So you can expect that the Project Manager will set tasks for the coming Sprint as well as add probably a long list of them in a backlog.
Some facts about Scrum:
- It is flexible - during the whole product development process, you can change your mind if it comes to what you want and need.
- Due to short sprints, it is easier to cope with the changes.
- Daily meetings make it possible to measure the productivity of each team member. This leads to the better productivity of each person engaged in the project.
- It is easier to deliver a high-quality product at a scheduled time.
- The overall cost regarding the process and management is leading to a quicker, cheaper result.
- Scrum methodology engages Client (which is you:)) in the evaluation process, so you can participate in possible concerns and can get back with feedback instantly. It is very useful because you are up to date with what is happening in the project as well as with the risk that can appear. Because you are a full-fledged member of the scrum team, it is crucial that you reply and give feedback as soon as possible. Your decisions and opinions matter and may influence the final product, both moneywise and timewise.
Communication in the project:
Good communication keeps project members informed and engaged. It also keeps the Scrum team focused on completing all the tasks for the sprint with the best quality.
Forms of communication, which are used, during the project (involving Client):
- Status meetings/calls, eg.once a week (typically they are every Friday). Get prepared for this sum up meeting and book some time for it. It gives you the opportunity to ask any question and share ideas or concerns. On the other hand, you can check the commitment of the team to your project or find out about the progress of the implementation. In addition, the Project Manager will guide you through all tasks assigned for the current sprint. Be open to it. Ask about the progress: if it is a scrum process, you would probably be shown the final version of the functionality /-ies made during the sprint.
- Everyday communication - always find time for daily communication and answering questions which may appear underway.
Good luck with all your projects and choosing the best software house! :)