Pama Team: MVP

Alexander Ozerov
9 min readSep 25, 2023

--

Part 2 of 3. How the minimum viable product was created

As the ultimate goal was to provide the user with a full product development cycle toolkit (fig 7), which would allow small teams to stay within the boundaries of the Pama Team platform and not use third-party tools, it was a serious challenge for me to create a large number of new custom tools.

On the one hand, I was well aware that in order to compete in the platform tracker market, I needed to create a set of functionality close to the market leaders. On the other hand, research showed that small teams use only a small part of Jira’s functionality, and this opens up prospects for my product if I determine which functionality is most in demand.

fig. 7. Product lifecycle

Classification of functionality is not enough for transition to iterative development — it is necessary to break the functionality into small sections and prioritize it (fig. 4). At this stage of a product’s life, you can no longer use a $100 prioritizaton; you need a more sophisticated tool. In such cases I use MoSCoW (fig. 8), it is convenient not only for prioritization, but also for classification of functionality by categories of criticality for the user. Of course, it does not exist without UX research by itself, so it should be used with caution.

fig.7. MoSCoW Prioritization

Through the work on prioritization and JTBD, I extended UserStory Mapping to versions,v1.0, v1.3, and v1.5. (fig. 9), the last of which received MVP status.

fig 9a. User story mapping, ver. 1.0
fig 9b. User story mapping, ver. 1.3
fig 9c. User story mapping, ver. 1.5

Of course, for MVPs, Core Functional Jobs and Job Stories will be significantly augmented with new functionality for mobile platforms, while web applications will have a different composition because the focus is shifted to content work (table 4a, table 4b)

table 4а. Core Functional Job and Job Stories of MVP (Mobile)

Since version 1.3, the Pama Team platform has a web client (fig. 10) that uses different user mechanics than the mobile application.

fig 10. Backlog view

The main focus in the web app is on working with large text content — the kind of content that is inconvenient to work with in a mobile app. I would like to note that the platform is omnichannel, which means that the user seamlessly transitions between the stages of the digital product development lifecycle from different channels — web and mobile.

table 4b. Core Functional Job and Job Stories of MVP (Web)

Despite the fact that the user is met by the parent control — UI components of the product backlog in the form of a Kanban board, or a list of tasks, allowing to prioritize tasks using drag n drop, with the ability to quickly filter items, the main UX chips are hidden at the level below.

fig 11. Detailed view of the task

When the user selects a task, the detailed view panel opens (fig. 11), which includes several main elements:

1. Chat on the task with team members, supporting file transfer

2. Task details editor: description and executor assignment

3. Kanban board with subtasks with possibility to create new ones

4. Analytics tab, which is an advanced text editor that allows you to work with text styles, tables, graphic content.

In addition to working with product tasks, the web application provides functionality to display product increment, work with business tasks and product ideas.

As I mentioned earlier, all this functionality is aimed at creating a comfortable and self-sufficient area for the team to work on product tasks.

Description of app functionality

On the main Pama Team website you can find a very detailed description of all available mobile and web app functionality.

To give you a clear picture, here is the description of the apps functionality:

Mobile app

1. Structure of the mobile app with a description of the main sections

2. Onboarding a new team member

3. Retrospective ceremony

4. Sprint planning

5. PBR

6. Evaluating tasks in SP

7. Daly Ceremony

8. Product section, Job Stories MVP

9. LLM-based assistant

Web application

Of course, the best option is to try it yourself, so I created a demo space for the team, the details of connecting to it are described here.

Working with quality

Since in development I was focusing on the release of new functionality — low t2m, it was expected that it could not positively affect the quality of solutions: it was unstable and in many UX scenarios there was a lack of elaboration in cases of deviations from standard behavior.

During 2 years since the Proof-of-Concept+ version about 100 defects were fixed, blocking defects were brought to the release notes.

There is a separate section on the platform for creating and manually passing test cases, which allows to control the quality of products that are developed with the help of Pama Team (fig. 12).

fig 12. QA management

PamaStreams

Let’s imagine a situation: you and your PBR team are discussing the decomposition of a new task that a stakeholder has added to the backlog. And you need to discuss a task that you have worked on before — to remember and reproduce some details. To do this, you copy the link to that task into Jira, open, for example, Slack, find the team chat, and then send the link. This inconvenience, shifted to the user, comes from the fact that Jira is primarily a task tracking system, rather than a system that provides a single space for the user to communicate and collaborate to work on tasks.

I wanted to change this, and to find the communication problem I formed the following constraints:

1. Often we can’t quickly find work correspondence on a task — we have to flip through the work chat with the team with all the discussions jumbled together

2. Even if a team is having a 2-day discussion about only one task, it is quite normal to have multiple context switching discussions, and this causes problems navigating between them

3. For task communication we use messengers to pass links to tasks in trackers

Based on the constraints formed, I have worked out the hypotheses:

hyp 2a. In order to quickly find information, as well as to discuss the task, the team will use a special dedicated chat room tied to the task, rather than the general chat room.

hyp 2b. The team will use nested chats so that it can separate necessary topics from other discussion

hyp 2c. Pama Team’s internal platform tool PamaStreams will be used as the team’s primary communication tool during working hours

In order to implement a solution to test these hypotheses we initially need rules on which to base the UI and UX, I got them as follows:

1. For each task, the platform automatically creates a dedicated chat room where the team communicates on that task

2. Within any chat, the team can create nested chats to be able to separate discussions — to structure correspondence so that it doesn’t turn into a pile of garbage

3. In addition to dedicated chat rooms tied to tasks, the team has Team chat — the main chat room of communication, where chats are added chronologically by task for easy navigation + rule 2.

And support functions:

4. Users can edit and delete messages

5. Users can share files in the chat room

6. Users can see notifications about new messages in chat rooms

Of course, I didn’t immediately get the PamaStream implementation shown in the screenshots of the Pama Team mobile iOS app (fig 13), but through Lean — incremental improvements in functionality, UI and UX.

fig 13. PamaStream

Despite my efforts, after each product increment I conducted user research, but the result was the same, despite the qualitative improvements: they did not want to give up using their usual messengers in favor of PamaStream.

The reasons were obvious: for such kind of products as messengers or, for example, social networks, a new competitor should not only give the user something new, but also provide the whole set of familiar functionality.

I went back to MoSCoW and compiled a set of functionality that the PamaStream subproduct should have (Table 5).

table 5. PamaStreams features prioritization

In the next iterations of PamaStream I will be focusing on search, voice conferencing, p2p chats and plugins.

Assistant based on Large Language Models

We live in a time when almost every year there is a small technological revolution: 2022 introduced us to ChatGPT 3.5.

The year 2023 was also no exception, but not because of the new ChatGPT version 4, but because local large language models became available to machine learning experts — almost anyone could run an LLaMA model on their home PCs.

Thanks to LoRA (Low Rank Adaptation) and PEFT (Parameter-efficient fine-tuning), ordinary developers had the opportunity to train large models on their own examples to solve highly specialized problems. As for me, I was patient and in 2 weeks I prepared a training sample of 1100 examples describing Agile work and trained an MPT network with 13 billion parameters on them.

Despite the fact that I’ve been working with neural networks for almost 10 years, more specifically time series prediction and big data clustering, I couldn’t get good results for a long time. The problem turned out to be PEFT, namely the error introduced by 4bit quantization. When I started using 8/16bit quantization, the accuracy increased to 68 and 74% respectively, but I had to use an RTX3090 with 24Gb of video memory.

I implemented a module in python to run the pre-trained model, and Hugging Face allowed me to use this model from my mobile app.

I decided to make a generic module for the mobile app that received multiple instructions and context as input, and dynamically output the response to the PamaStream UI component.

Due to the severe limitation of the context size of this model — no more than 500 characters, I was forced to limit myself to the following applications:

1. “Question to scrum master” — you can call the chat with the AI on the main screen and ask any questions, but it knows more about scrum than the average scrum master.

2. Daily standup — after all team members have spoken, the AI can summarize the meeting based on the data in the tasks

3. the AI can help formulate a benchmark 1sp task for the team

4. the AI can evaluate the task: it first decomposes the task and then performs an sp estimation given the reference task

5. In the last steps of the retrospective, the AI can be asked to find a solution to the problem that the team has formulated

6. Decomposition of the task into subtasks

7. Generating product ideas

8. Creating a custom survey with options based on the description

All these points are implemented — you can evaluate their work yourself. As I said before, the main problem now is insufficiently long context, and when LLM will support 10k characters context, it will be a convenient and indispensable tool for product management.

fig 14. Assistant based on Open Source LLM

In the next part, we’ll dive into the technology, implementation nuances, and architecture of Pama Team.

The first part is available at this link.

--

--