Customer Responsibilities in a Software Project
Topic: Team Roles
August 15, 2023
"I'm really short on time. Could you make an app for my business without me being involved?"
Sometimes, an entrepreneur isn't too keen on regularly discussing matters with developers. They'd prefer it if we could just jot down all their wishes for the upcoming app and give them a call when it's all done.
In such instances, our reply is that this undertaking is bound to fall flat. This approach doesn't hold up, and that's the focus of this article. Why is it important to engage with customers during app development? We will demonstrate this using a specific project as an example. We'll narrate the customer's efforts to materialize their envisioned mobile app for soccer enthusiasts. It's up to you to decide what might have happened if the developers had been given full autonomy in this project.
Story Behind the Adding of One Single Button
The customer behind this project specializes in facilitating soccer field reservations for pick-up games. The upcoming app aims to automate their interaction with amateur soccer players. To illustrate, let's look at a small feature of this app and follow the complete process the customer went through with our team to bring it to its final state.
Let's imagine a user of our app. They've got a free evening this week - a great chance to enjoy some soccer. They log into the app, browse the schedule for the nearest field, and secure a booking for an hour. The app instantly creates a new game. Now comes the task of finding teammates. Our hero sends out invites to other users. Soon enough, requests from interested players start pouring in. The only task left is forming a team from these applicants.
This is the starting point of our journey - the user requires an "Add Player" button.
App Owner's Role: Communication with Developers
Writing Tasks for Developers
This is the foremost thing developers expect from a customer. They require written instructions describing the desired behavior of the new app feature.
Hence, the customer adds a new task to our project management system: to create an "Add Player" button on the game screen. They give us a sketch of the screen displaying the button and describe what should occur when it's pressed - a list of users who have applied to join the game should appear on the screen. To assemble the team, the game initiator will drag and drop users from here into the game players list.
Holding Weekly Planning Meetings
Sadly, in practice, depending solely on written instructions is inadequate. It's impossible to predict every detail, and developers invariably raise a range of questions, uncertainties, comments, and alternative suggestions.
Before getting started, developers always have detailed discussions with the customer during a specific weekly meeting. The objective is to clear up any uncertainties and establish a common understanding of recently assigned tasks. Many customers use these meetings to save time on task writing - it's easier to provide general written instructions and address specifics through verbal communication.
Regarding the "Add Player" button, we raised the following inquiries with the customer:
- Firstly, it would be a good idea to include a "Remove Player" button on the game screen too. Without it, a misstep by the game initiator could halt the entire team assembly process.
- Secondly, enabling the functionality to drag and drop players between lists would consume a substantial amount of time. Should we consider a simpler approach? The game initiator could simply use checkboxes to select the desired users for team inclusion.
The customer agreed to both proposals, and the task description was modified accordingly.
Checking Daily Reports and Texting Answers to Questions
With a clear task at hand, developers commence their work. On a daily basis, they share their progress on ongoing tasks within the project management system and raise any fresh queries to the customer. This setup is quite convenient - these reports assist the team leader and customer in smoothly steering the development speed.
In the next report, the designer presented two different styles for the new button. On the same evening, the customer expressed their preferred option. This swift decision enables the team to continue their work on the following day.
Holding Weekly Demo Meetings
In the second weekly meeting, the team showcases all the recently incorporated features in the app from the previous week. This enables us to promptly discuss if any modifications or additions are necessary.
Upon finishing the "Add Player" feature, we took the customer through a step-by-step demonstration of its functionality and the appearance of all relevant interface elements on the phone screen. The customer pointed out that the lists of applicants and game players appeared excessively bulky. We discussed various approaches to present them more conveniently and settled on one of the options.
Testing Newly Created Functions
Merely demonstrating the newly integrated feature to the customer is not the final step. Following revisions, we invite the customer to personally test this function. In other words, they install the updated app on their phone and carry out the same actions as a typical user. This achieves two objectives: confirming error-free performance and gaining an understanding of the new feature's user-friendliness.
As our customer assumed the role of a game initiator and went through the process of adding players, they had the opportunity to reevaluate whether users would truly find checkboxes convenient or if enabling drag-and-drop functionality might be more beneficial. In the end, the customer determined that checkboxes are indeed sufficiently user-friendly.
App Owner's Role: Features and User Needs Examination
At this stage, it looks like everything is in place – we have the button, and the player addition function is operational. Could we have achieved this outcome solely based on the initial written instructions, without any additional customer involvement in product development?
Yes, indeed. Without the means to ask questions, the developers would have taken decisions about unspecified details based on their own discretion. It's quite likely that eventually, it might have become evident that the customer had a different concept of this button - maybe in subtle aspects or even in an entirely different way. Nonetheless, the button would have been implemented and functional.
Yet, the feature's journey doesn't culminate at this point. Let's examine what happened to our button after that.
Addressing Bugs
In the next step, the newly implemented function is subjected to testing by a dedicated quality assurance engineer. They manually replicate all user actions, extending beyond the standard scenario to anticipate as many unusual circumstances as possible. For instance, they assess how the system handles an unexpected phone shutdown during the player addition process.
The quality assurance engineer detected an issue with the "Add Player" button - it remains active indefinitely, despite the rule that an amateur soccer team must not exceed 10 players. The developers offered several potential solutions to fix this issue.
- First option - eliminate the button from the screen once the team is complete.
- Second option - keep the button on the screen but disable it. Another consideration is to present a message stating that the team is complete, or choose not to show any messages.
Considering User Specifics
Which option is the preferred one? It varies based on the app's users and the context. In the presence of regular users who are well-versed with the interface, extra prompts might be redundant. In contrast, for sporadic users, the situation is different.
Might this small detail not matter at all? Perhaps it's possible. If the problem of soccer field reservations is extremely pressing and the app is players' main resource, they might not focus on such trivial details. However, in a competitive landscape with multiple similar services, even minor interface imperfections could carry notable weight.
Only the app owner can provide informed responses to such inquiries. Our customer has determined that this particular aspect holds minimal significance and has granted the developers the freedom to proceed as they see fit.
Considering User Needs
However, a bug related to adding extra players to the team triggered the customer's memory of a vital concern for soccer players. They often have to deal with last-minute changes in players availability, and swiftly finding a replacement proves difficult. Wouldn’t it be really helpful in such a situation to reach out to users who initially lacked space in the team?
Right away, the customer adds a new task to the project management system: to incorporate a "Reserve Players" function into the app. Redundant game participation requests must be retained in a dedicated list. Users who made these requests should automatically receive alerts if a slot becomes available in the game’s team due to any unforeseen situation.
Evaluating User Experience
While discussing the new task, developers inquired about the specific notifications the system should issue to reserve players. The app is equipped to send SMS, email, and in-game messages to users. Additionally, any of these three message formats could include either a simple invitation to review game details or a hyperlink that, upon clicking, triggers an automated submission of a participation request.
Yet another aspect needed attention. The app had an existing rule that limits messages to players to once a day, a response to user concerns about overwhelming notifications. How should urgent notifications about available team spots be dealt with? Should these be treated as a special case? And what if there's an abundance of players eager to participate again?
Only the app owner can address these and similar queries regarding user preferences. Moreover, conducting targeted investigations - talking with users, analyzing their feedback, and studying user behavior data within the app - might be an essential step to consider. Ignoring these nuances during app creation could significantly elevate the risk of users not holding it in high regard.
Final Thoughts
Developers can ensure that each button is operational, all functions adhere to logical rules, and sudden crises don't disrupt the app. However, the app's utility to specific individuals, the number of such individuals, and their willingness to pay for services are all subject to the entrepreneur's determined efforts. This is precisely where the importance of customer engagement arises.
The development process at our company adheres to the depiction presented in this article. We regard its main strength to precisely stem from its absolute transparency, providing customers with prompt communication with our developers. We have invested significant effort to mold it in this fashion. Our developers willingly dedicate any required amount of time for customer communication - whether that involves numerous messages exchanges or a variety of meetings. Some customers engage in daily calls, and, if necessary, even multiple times a day. The substantial benefits arising from this approach are clearly evident.
When we swiftly receive answers to our queries, the team works more efficiently, gaining greater value from the allocated time. The more an entrepreneur focuses on project details and user desires, the more favorable the outcome. Moreover, it creates a unique atmosphere. When the team is in sync with the customer and can immediately share their thoughts, everyone becomes immersed in the work, sparking a wealth of ideas.
Indeed, this requires a substantial time commitment from the entrepreneur. Considering the various customer roles and responsibilities we've outlined throughout the software development lifecycles, it is expected that allocating a minimum of 6-8 hours per week for crafting written instructions, engaging in meetings, and maintaining communication with developers is essential. Yet, this investment is absolutely vital for the project's success. It's an indispensable element, beyond any doubt.
If you are ready for this endeavor, all of our proven practices are at your service. Make use of the contact form below, and we'll explain the steps to materialize your project.