kurtcms.org

Thinking. Writing. Philosophising.

Email Github LinkedIn

Product Management and Agile Development

Posted on March 12, 2021 — 63 Minutes Read

The capstone project of the Software Product Management Specialisation by the University of Alberta was perhaps one of the most engaging remote learning experiences I have had lately. Applying the Agile development methodology learnt in the previous 5 courses of the specialisation, the capstone project consisted of 6 weeks of intensive exchanges in a number of interactive video simulating in-person iterations with the customer, the engineering team and the other stakeholders; and of peer-reviewed works from building and prioritising the product requirement backlog, writing acceptance criteria and tests, managing the risk plan, and all the way to release planning and burndown. At the end of the 3-sprint development journey, an evolving prototype of a reading cum literacy improvement mobile app product, for children of 7 to 12, that suggests engaging and accessible content appropriate to the literacy level of reader, and connects readers of similar literacy level for a peer reading and learning experience, was delivered for a public demo at a trade show for Inukshuk Books, a well-established retail bookstore with 56 physical locations around Canada who was rapidly expanding into the digital market. Aimed at improving literacy in young children, the product aligned with Inukshuk Books’ commercial goal to increase the sales with young readers over the next 5 to 10 years.

Requirement Elicitation

Code-named the Bodleian Project internally for it was envisioned to deliver contents upon request to users similar to the Bodleian Library in the Oxford University, the interactive exchange with Lisa Talbot, the Chief Operations Officer at Inukshuk Books revealed that envisioned was a product that encourages children to find enjoyment in reading, and enables children to improve their reading ability by delivering high-interest content personalised to each user. The long-term goal was for people to experience a lifelong enjoyment of reading and the way to achieve this was to increase first of all children’s literacy and to make literature more accessible to them. Needless to say that the market was not lacking e-reader products and it was definitely not what was in mind. Unique to this product was the educational and the reading improvement dimension that suggests materials of appropriate vocabulary and length to keep children interested. A digital database of both classic and modern materials at different degrees of difficulties was licensed and ready for access.

Further eliciting the product requirements with Daniel Andrews, the in-house literacy consultant for Inukshuk Books, confirmed that the product was to target children of around age 7-12 with a solid foundation in phonics for otherwise teaching phonics would be beyond the scope and purpose of the Bodleian Project. A discussion on the recent research and findings in children psychology and education suggested also a feature for video or audio chat with a peer of similar literacy for idea bouncing while reading. For keeping children engaged as their literacy level improves, reading suggestions appropriate to their reading level were also necessary, which in turn required a way to assess and keep track of the children’s literacy level, that would ideally be done by having the children to do, at a regular interval, multiple-choice reading comprehension test, and fluency assessment graded by a voice recognition engine. A built-in and child-friendly dictionary accessible from right within the reading page was also a high-priority requirement. Also discussed were a user interface design that resembled as much as possible the experience of discovering and reading a children book in a bookstore, as well as other nice-to-haves such as being able to view books that were previously read in a sortable list with personalised to-read and favourite lists, that perhaps could contribute to the reading suggestions given these were indicators of the children’s preferences.

Meeting with the three-person development team was to follow and in agreement with Daniel all of them accepted that due to mobile data usage concern audio only chat should be implemented as a fallback to the video chat. Kat, a senior developer with years of experience in software programming and as a Scrum Master, was leading the team consisting of two other developers, Josh and Alexa. Of the rest of the features requested, voice recognition for reading fluency assessment was considered to be among the most difficult ones, with which only Josh had had some previous experience. The team was also concerned if the development resources should be spread thin by developing right away for both iOS or Android platforms instead of developing for one of the two for starter, before moving on to the other platform as the product matures, considering especially the work required to provision two different development environments at once and to ensure compatibility for all versions of iOS and Android releases, not to mention the range of tablet and smartphone hardware devices that these releases operate on. A few ideas regarding the user interface design that would allow the overall look and feel of the product to resemble as much as possible a real-life bookstore visit and book reading experience were discussed, along with a way to allow children to seamlessly inquire for a word definition while reading. Considering that the size and amount of the reading materials that Inukshuk Books had secured the license for, was without doubt beyond the storage that a typical user would allow for a single app, the team decided to decouple the book title and metadata from their contents and store only the earlier to allow for offline searching and browsing, while downloading and storing the book contents only on their opening or on user request.

Sprint 1

User Story

Central to Agile software development is iterative product release that is adaptive to the changing world and requirements through continuous and interactive collaboration between everyone with a stake in it. With the product requirements elicited, first among all was to break them down into user stories, that may be developed in one of the two-week sprints ahead. Not all products are created equal and neither are the features represented by the user stories underlying them. Man-hour, that is the amount of time with respect to the size of the task force as a traditional measure of the time and effort required for a particular feature or user story is tried and true, its problem is that in the world of Agile development, that often requires the development team boldly wading into uncharted territories and learning as the development goes, a traditional measure of man-hour in the unit of time does not leave room for trial-and-error, nor does it account for the rest of the uncertainties associated with creating what the world has never seen before. Adopted instead to measure user stories with full account of the adventuring room they need is as such story point, as a neutral unit of measure that allows for ranking the amount of work, with the required room for navigating uncertainties embedded, between user stories of various depth and difficulties, that is nonetheless not solely tied to the unit of time, and as such provides a layer of abstraction between the unit amount of time needed for delivery and the development effort required to deliver. Crucial to note also on a requirement document is the dependency between the user stories, needless to say that certain features are conditioned on the others. Without being able to create an account and login to the account, case in point, there is no way to identify the user and as such no way to keep track of the user’s reading and literary improvement progress. Prioritisation needs to respect this development and logical dependency. For estimating the story points as well as examining the dependency relations between the user stories, the development was engaged, and a requirement document was subsequently prepared.

Requirements Document – Sprint 1
US# User Story Story Point Dependency
US1 As a reader, I want the product to be mobile, so that I can use it anywhere. 1  
US2 As a reader I want the application to access the reading content remotely, so that it does not require a large amount of storage on the mobile device. 3 1
US3 As a reader, I want to save selected reading materials locally on the mobile device, so that I can access these materials offline or without incurring mobile data usage. 3 2
US4 As a reader, I want to browse all available reading materials, so that I can find the specific reading material I have in mind. 2 2
US5 As a reader, I want to see the covers of the materials while I am browsing through them, so that I can experience the discovery of reading content as in a physical bookstore. 2 4
US6 As a reader, I want to select reading material, so that I can access it. 2  
US7 As a reader, I want to sort reading materials by comprehension difficulty or genre, so that I can find the specific reading material I have in mind. 1 4
US8 As a reader, I want to search for reading materials by author name, title or genre even if I have no internet connection, so that I can find the specific reading material I have in mind. 3 2
US9 As a reader, I want to register for an account, so that I can login, access and be recommended reading materials. 2  
US10 As an account holder, I want to login to my account, so that I can login, access and be recommended reading materials. 2  
US11 As an account holder, I want to reset my password, so that I can access my account even if the password is lost. 1 10
US12 As an account holder, I want to rate materials that I have read, so that I can be recommended reading materials most fitting to my preference. 1 10
US13 As an account holder, I want to browse the reading materials that I have read, so that I can keep track of and go back to them. 3 10, 26, 32
US14 As an account holder, I want to add reading materials to my to-read list, so that I can access them offline at a later time. 1 10
US15 As an account holder, I want to remove reading materials from my to-read list, so that I no longer have access to them offline. 1 14
US16 As an account holder, I want to add reading materials to my favourite list, so that I can access them offline and be recommended reading materials most fitting to my preference. 1 10
US17 As an account holder, I want to remove reading materials from my favourite list, so that I no longer have access to them offline and no longer be recommended reading materials with it considered as my preference. 1 16
US18 As an account holder, I want reading materials to be suggested to me based on the reading materials I have rated positively and on the materials that I have on my favourite list, so that I can discover reading materials most fitting to my preference. 2 9
US19 As an account holder, I want reading materials to be suggested to me based on the materials I have read. 2 10, 13
US20 As an account holder, I want my reading fluency and my reading comprehensive level to be tested once a month, so that I can be suggested reading materials appropriate to my literary level and keep track of my improvement. 2 10
US21 As an account holder, I want reading materials to be suggested to me based on my reading fluency and my reading comprehensive level, so that I can discover reading materials most fitting to my preference. 3 20
US22 As an account holder, I want my reading fluency and my reading comprehensive level to be kept track of, so that I can be suggested reading materials appropriate to my literary level. 3 20
US23 As an account holder, I want my reading fluency level to be graded by voice recognition, so that I can assess my reading fluency anytime. 3  
US24 As a reader, I want the page view to resemble the fidelity of a physical book, so that I can experience the full story impact regardless of the medium. 3  
US25 As a reader, I want the background of the page to be off-white, so that I can read comfortably. 1 24
US26 As a reader, I want to read material without a peer, so that I can read at my own pace. 2  
US27 As a reader, I want to read material in both portrait and landscape orientation, so that I can read comfortably. 3 1
US28 As a reader, I want images associated with the content to appear with the text, so that I can experience the full story impact regardless of the medium. 2  
US29 As a reader, I want to adjust the font size, so that I can read comfortably. 2  
US30 As a reader I want to see the pages turn with an animation, so that I have a reading experience as close to reading a physical book as possible. 3 24
US31 As a reader, I want to see the definition of a word in context as I select it, so that I can learn new words and advance my reading comprehension. 3  
US32 As a reader, I want to connect with a remote user, so that we can read together. 3  
US33 As a reader, I want to read with a connected peer using audio, so that we can read together. 2 32
US34 As an account holder, I want to connect remotely with a friend, so that we can read together. 3 10, 32
US35 As a reader, I want to connect with a nearby device, so that we can read together. 3  
US36 As an account holder, I want to have a friend list of people that I know, so that we can connect remotely and read together. 2 34
US37 As a reader I want to be connected with a remote reader of a similar literary level, so that we can read together. 3 20, 32
US38 As a reader, I want to read with a connected peer using video, so that we can read together. 3 32

Risk Management Plan

Every project has risk and so should it have a risk management plan that forecasted, analysed and prepared the project for any uncertainty that might hinder the project success.

Risk Management Plan – Sprint 1
Risk Risk Ranking Indicators Actions
Technology risk on implementation difficulty with voice recognition. 2 (Medium Impact with a Medium Likelihood) Results from the unit tests with voices of different gender, age (in the range of 7 to 12 of the intended audience) and accents. Considering this is a non-essential feature, it could be scheduled for a future release. A dedicated third-party voice recognition engine could be evaluated and sourced for the voice recognition accuracy and for continuous accuracy improvement.
Technology risk on implementation difficulty with remote user connection. 1 (High Impact with a Medium Likelihood) Results from the unit tests on remote user connection stability and quality. A dedicated third-party remote user connection engine or video conferencing platform could be evaluated and sourced for the remote user connection and for continuous stability and quality improvement.
Technology risk on compatibility issues with different versions of mobile (iOS and Android) Operating Systems (OS) 1 (High Impact with a High Likelihood) Results from the unit tests of compatibility with different versions of mobile OS. In order to meet the delivery target, the availability of the app shall be limited to a number of selected OS starting from the latest ones on the most popular mobile tablets.
Scope risk with changing requirements 3 (Low Impact with a Medium Likelihood) Feedback and new requirements from stakeholders at each of the Sprint reviews. This risk is ranked with low impact because the Agile process is specifically designed for this. Changes are welcome and new requirements will be prioritised and scheduled for a future Sprint as appropriate.
Personnel risk with the development team on leave for health related reasons 1 (High Impact with a High Likelihood) Development team members requesting leave for health related reasons. This risk is ranked with high impact for the development consists of merely 3 developers that personnel risk affecting one individual will constitute a 33% change in the workforce. The contingent fund that was set aside shall be tapped into for additional development resources should one or more developers have to be on leave for a considerable amount of time.
Technology risk on stability issues with the reading material database 1 (High Impact with a Medium Likelihood) Results from the unit tests on integrating the app with the database. The database is the heart of the app. The contingent fund that was set aside shall be tapped into for enhancements of the database should it affect the user experience.
Commercial risk on the project being out of budget 2 (High Impact with a Low Likelihood) The amount of out-payment for personnel and development tools and platform compared to the expected development expenditure. A contingent fund is set aside should additional spending occur. If the contingent fund runs out, Inukshuk Books being a company with 20 years of history and a footprint of 56 stores around Canada should be able to raise additional capital at a reasonable interest for this digitisation initiative aimed at future revenue growth.
Regulatory risk on the random peering component for peer reading feature 3 (Low Impact with a Low Likelihood) Regulation that prevents any network or platform to connect minor e.g. user of age 7-12 that is the intended audience for the app to a previously unacquainted individual fur to digital safety concern. This risk is ranked with low impact because the random peering feature is merely one component of the peer reading feature. A minor also has a number of ways today to be connected with a previously unacquainted individual digitally, a regulation that prevents this will be impossible if not difficult to implement with rippling consequences. Should a regulation occur that prevents random peering for minor, this component could be removed, keeping peer reading between the user with its friends or anyone else the user is familiar with

Release Plan

The requirement document allowed the team to to examine the development risk associated with each of these user stories, and to come back to Lisa and Daniel and to deliberate on their priorities. Among the items discussed, a decision was made to focus the development effort on having a minimum viable product (MVP) on iOS tablets before expanding to iOS smartphones and to other Android devices. With the priority, risk, user point and dependency associated with the user stories elicited and deliberated, a release plan for the sprints ahead was prepared. High-priority user stories with high-risk were arranged to be combated head-on right in sprint 1 in an attempt to identify any high-impact roadblock as early as possible, whereas low-priority and high-risk items were to stay on the backlog unless their priorities change for otherwise the risk were not adequately rewarded. The rest of the user stories were prioritised by their priority and risk accordingly.

Task Breakdown

Given the release plan, in preparation for the sprint ahead, the development team broke down the user stories planned for the sprint into actionable tasks that could be completed in a few hours for self-assignment as the sprint went along.

Task Breakdown – Sprint 1
US# User Story Tasks Hour Estimate Responsible
US1 As a reader, I want the product to be mobile, so that I can use it anywhere. Design wireframe for the application 6 Team (2 hours each)
Setup iOS development environment 8 Kat
US24 As a reader, I want the page view to resemble the fidelity of a physical book, so that I can experience the full story impact regardless of the medium. Design page layout 6 Team (2 hours each)
Generate wireframe for page layout 2 Product Manager
Write source code for page layout 8 Alexa
Review source code for page layout 1 Kat
Write acceptance criteria for page layout 0.5 Kat
Write acceptance tests for page layout 0.5 Kat
Execute acceptance tests for page layout 1 Product Manager
Write internal documentation for page layout 1 Alexa
US25 As a reader, I want the background of the page to be off-white, so that I can read comfortably. Write source code for off-white background 0.25 Alexa
Review source code for off-white background 0.25 Kat
Write unit tests for off-white background 0.25 Alexa
Write acceptance criteria for off-white background 0.25 Kat
Write acceptance tests for off-white background 0.25 Kat
Execute acceptance tests for off-white background 0.25 Product Manager
US26 As a reader, I want to read material without a peer, so that I can read at my own pace. Write source code for reading without a peer 0.5 Alexa
Review source code for reading without a peer 0.5 Kat
Write unit tests for reading without a peer 3 Alexa
Write acceptance criteria for reading without a peer 1 Kat
Write acceptance tests for reading without a peer 1 Kat
Execute acceptance tests for reading without a peer 1 Product Manager
Write internal documentation for reading without a peer 0.5 Alexa
Write user manual for reading without a peer 0.5 Alexa
US27 As a reader, I want to read material in both portrait and landscape orientation, so that I can read comfortably. Write source code for portrait and landscape orientations 6 Kat
Review source code for portrait and landscape orientations 0.5 Alexa
Write unit tests for portrait and landscape orientations 1 Kat
Write acceptance criteria for portrait and landscape orientations 0.5 Alexa
Write acceptance tests for portrait and landscape orientations 0.5 Alexa
Execute acceptance tests for portrait and landscape orientations 0.25 Product Manager
Write internal documentation for portrait and landscape orientations 1 Kat
US28 As a reader, I want images associated with the content to appear with the text, so that I can experience the full story impact regardless of the medium. Write source code for images with text 4 Kat
Review source code for images with text 1 Alexa
Write unit tests for images with text 1 Kat
Write acceptance criteria for images with text 0.5 Alexa
Write acceptance tests for images with text 0.5 Alexa
Execute acceptance tests for images with text 0.5 Product Manager
Write internal documentation for images with text 1 Kat
US29 As a reader, I want to adjust the font size, so that I can read comfortably. Write source code for adjustable font sizes 3 Alexa
Review source code for adjustable font sizes 1 Kat
Write unit tests for adjustable font sizes 1 Alexa
Write acceptance criteria for adjustable font sizes 0.5 Kat
Write acceptance tests for adjustable font sizes 0.5 Kat
Execute acceptance tests for adjustable font sizes 0.5 Product Manager
Write internal documentation for adjustable font sizes 1 Alexa
Write user manual for adjustable font sizes 1 Alexa
US32 As a reader, I want to connect with a remote user, so that we can read together. Write source code for connecting with remote user 16 Josh
Review source code for connecting with remote user 2 Alexa
Write unit tests for connecting with remote user 0.5 Josh
Write acceptance criteria for connecting with remote user 0.5 Alexa
Write acceptance tests for connecting with remote user 1 Alexa
Execute acceptance tests for connecting with remote user 2 Product Manager
Write internal documentation for connecting with remote user 1 Josh
Write user manual for connecting with remote user 1 Josh
US33 As a reader, I want to read with a connected peer using audio, so that we can read together. Write source code for audio connection 16 Josh
Review source code for audio connection 0.5 Alexa
Write unit tests for audio connection 0.5 Josh
Write acceptance criteria for audio connection 1 Alexa
Write acceptance tests for audio connection 2 Alexa
Execute acceptance tests for audio connection 0.5 Product Manager
Write internal documentation for audio connection 1 Kat
Write user manual for audio connection 1 Kat

A total of 116.75 hours were required as per the task breakdown for sprint 1. The Agile methodology encourages self-organising team and foundational to which is task self-assignment as a self-directed method of work allocation. Instead of having all tasks self-assigned at the start of a sprint however, a more agile approach would be to have the team self-assign tasks as the sprint went along. This would allow team members finishing early to help others with their tasks as appropriate by virtue of self-organisation, and would be enforced from sprint 2 onwards.

Wireframe

Along with executing acceptance tests for all of the user stories, as the Product Manager, I was responsible also for generating wireframe for page layout.

Product Management and Agile Development - Wireframe - Browsing

Product Management and Agile Development - Wireframe - Reading

Acceptance Criteria and Tests

As the sprint progressed, some of the development tasks required more work than planned and as such the team needed an extra pair of hands with writing the acceptance criteria and tests for some of the user stories. As the Product Manager, I was more than willing to help by writing the acceptance tests written in the tried and trusted Given-When-Then format.

Acceptance Criteria and Tests – Sprint 1
US# User Story Acceptance Criteria Acceptance Tests
US27 As a reader, I want to read material in both portrait and landscape orientation, so that I can read comfortably. Reading materials can be viewed in portrait mode. Given an iOS tablet in portrait mode, when I open the Bodleian Project app on the tablet, then I can use the app to view reading materials as it is intended.
Reading materials can be viewed in landscape mode Given an iOS tablet in landscape mode, when I open the Bodleian Project app on the tablet, then I can use the app to view reading materials as it is intended.
US28 As a reader, I want images associated with the content to appear with the text, so that I can experience the full story impact regardless of the medium. Text associated with the reading content is displayed properly when the reading material is accessed. Given that I have reading material available on my Bodleian Project app account, when I select to read a reading material, then I can see the text associated with the reading is displayed properly.
Images associated with the text are displayed properly when the reading material is accessed. Given that I have reading material available on my Bodleian Project app account, when I select to read a reading material, then I can see the images associated with the reading are displayed properly.
US29 As a reader, I want to adjust the font size, so that I can read comfortably. Font size of the text associated with a reading content is increased when the font size is adjusted larger in the font size dialog. Given that I am reading on the Bodleian Project app, when I select the font size to be larger in the font size dialog, then I can see that the font size is increased.
Font size of the text associated with a reading content is increased when the font size is adjusted smaller in the font size dialog. Given that I am reading on the Bodleian Project app, when I select the font size to be smaller in the font size dialog, then I can see that the font size is decreased.
US32 As a reader, I want to connect with a remote user, so that we can read together. Connection with a remote user can be established. Given a remote user is available for connection, when I select to connect to a remote user, then I can be connected with a remote user.
Remote connection is intact when a reading material is accessed. Given that I am connected to a remote user and that I have reading material available on my Bodleian Project app account, when I select to read a reading material, then I can view the reading content with the remote connection intact.
US33 As a reader, I want to read with a connected peer using audio, so that we can read together. Audio can be transmitted to a connected remote user. Given that I am connected to a remote user and I have audio device on my tablet, when I speak, then the audio can be transmitted to the connected remote user for playback.
Audio can be transmitted from a connected remote user. Given that I am connected to a remote user and I have audio device on my tablet, when the remote user speaks, then the audio can be transmitted to me for playback.

Product Demo

With sprint 1 coming to an end, it was time for a demo of the working product, and for a backlog refinement with respect to the feedback on the demo and the changing requirements. It was also time for a review and retrospective of the sprint – the good, the bad, and the areas for improvement. Two weeks of hard work from the development team pulled off a brilliant demo. All of the user stories met the definition of done as agreed by the team before the sprint.

Sprint Burndown

For a graphical illustration the development progress in the sprint, there is no better tool than a burndown chart.

Product Management and Agile Development - Sprint 1 - Iteration Burndown

A total of 20 story points were completed in a sprint of 116.75 hours by the development team. There seemed to be burning across from April 11th to 12th i.e. little to no work being done or hour being recorded during this period. Typically this could be a result of hours not being logged by mistake which, on ground that it had never recurred in sprint 1, was considered a minor issue that required no action other than perhaps a friendly reminder. Alternatively the burning across could be a result of work being postcrastinated early in the sprint, in which case action and precaution would need to be taken to ensure that the same behaviour did not recur from sprint 2 onwards. Further examining the iteration nonetheless revealed that the burning across was likely a result of one task, namely ‘writing source code for connecting with audio’ of user story 33 requiring 16 hours to complete, which would typically span across 3 working days, and as a result being recorded done only on April 14th. The burning across was as such likely not a problem with the development pace in the sprint. It was rather a matter of having one task requiring work hours of multiples of the rest. Breaking down task requiring more than 6 hours into multiple smaller ones would avoid burning across for the same reason from sprint 2 onwards.

Additional Requirements

As Lisa and Daniel were shown the working product, Lisa had some additional thoughts that would enhance the user experience, such as being able to highlight text on a page and a bookmark that tracks the reading progress. Some of the requests for example playing audio book required a database of which that was to be acquired and constructed and as such were to be explored at a later time. The rest of the additional requirements were deliberated of their priorities and were put on the requirement backlog for story point estimation and risk assessment by the development before re-planning of the sprint ahead.

Additional Requirements – Sprint 2
US# User Story Story Point Dependency
US39 As a reader, I want my progress with a reading material to be saved, so that I can pick up where I left off at a later time 3  
US40 As a reader, I want to be able to highlight text from a reading material, so that I can direct attention to important passages. 1  
US41 As a reader, I want the highlights I created to be saved to the book, so that I can view them again when I return. 2 40

Sprint Retrospective

Before jumping into the next sprint, it is crucial at the end of each to reserve a time with the rest of the development team for a retrospective exchange. Brilliant it was that the team was able to complete all user stories with respect to the team’s definition of done in sprint 1, that the story point estimates for the user stories turned out to be rather accurate measures of the time and effort needed which by experience is rare in first sprint, that the daily standup was adhered to which without a doubt played a crucial role in completing all the planned user stories in the sprint, and that a working prototype was produced at the end of the sprint for a product demo; there was for sure room for improvement. At one time the unit test for a user story was not written before the source code which risked having the end being influenced by the means. The same went for the acceptance criteria and test for one user story as well. The task board on which the development progress was tracked within a sprint was not as frequently updated as it should have been and as such did not accurately represent progress at some point during the sprint. The team also agreed that pair programming could be implemented more often if possible to allow for knowledge sharing and peer learning. All of these were areas for improvement that would be watched out for, and if properly implemented, should contribute to the success of the next sprint.

Sprint 2

User Story

With the additional requirements from Lisa upon seeing the product demo at the of sprint 1, three user stories were added to the product requirement backlog.

Requirements Document – Sprint 2
US# User Story Story Point Dependency
US1 As a reader, I want the product to be mobile, so that I can use it anywhere. 1  
US2 As a reader I want the application to access the reading content remotely, so that it does not require a large amount of storage on the mobile device. 3 1
US3 As a reader, I want to save selected reading materials locally on the mobile device, so that I can access these materials offline or without incurring mobile data usage. 3 2
US4 As a reader, I want to browse all available reading materials, so that I can find the specific reading material I have in mind. 2 2
US5 As a reader, I want to see the covers of the materials while I am browsing through them, so that I can experience the discovery of reading content as in a physical bookstore. 2 4
US6 As a reader, I want to select reading material, so that I can access it. 2  
US7 As a reader, I want to sort reading materials by comprehension difficulty or genre, so that I can find the specific reading material I have in mind. 1 4
US8 As a reader, I want to search for reading materials by author name, title or genre even if I have no internet connection, so that I can find the specific reading material I have in mind. 3 2
US9 As a reader, I want to register for an account, so that I can login, access and be recommended reading materials. 2  
US10 As an account holder, I want to login to my account, so that I can login, access and be recommended reading materials. 2  
US11 As an account holder, I want to reset my password, so that I can access my account even if the password is lost. 1 10
US12 As an account holder, I want to rate materials that I have read, so that I can be recommended reading materials most fitting to my preference. 1 10
US13 As an account holder, I want to browse the reading materials that I have read, so that I can keep track of and go back to them. 3 10, 26, 32
US14 As an account holder, I want to add reading materials to my to-read list, so that I can access them offline at a later time. 1 10
US15 As an account holder, I want to remove reading materials from my to-read list, so that I no longer have access to them offline. 1 14
US16 As an account holder, I want to add reading materials to my favourite list, so that I can access them offline and be recommended reading materials most fitting to my preference. 1 10
US17 As an account holder, I want to remove reading materials from my favourite list, so that I no longer have access to them offline and no longer be recommended reading materials with it considered as my preference. 1 16
US18 As an account holder, I want reading materials to be suggested to me based on the reading materials I have rated positively and on the materials that I have on my favourite list, so that I can discover reading materials most fitting to my preference. 2 9
US19 As an account holder, I want reading materials to be suggested to me based on the materials I have read. 2 10, 13
US20 As an account holder, I want my reading fluency and my reading comprehensive level to be tested once a month, so that I can be suggested reading materials appropriate to my literary level and keep track of my improvement. 2 10
US21 As an account holder, I want reading materials to be suggested to me based on my reading fluency and my reading comprehensive level, so that I can discover reading materials most fitting to my preference. 3 20
US22 As an account holder, I want my reading fluency and my reading comprehensive level to be kept track of, so that I can be suggested reading materials appropriate to my literary level. 3 20
US23 As an account holder, I want my reading fluency level to be graded by voice recognition, so that I can assess my reading fluency anytime. 3  
US24 As a reader, I want the page view to resemble the fidelity of a physical book, so that I can experience the full story impact regardless of the medium. 3  
US25 As a reader, I want the background of the page to be off-white, so that I can read comfortably. 1 24
US26 As a reader, I want to read material without a peer, so that I can read at my own pace. 2  
US27 As a reader, I want to read material in both portrait and landscape orientation, so that I can read comfortably. 3 1
US28 As a reader, I want images associated with the content to appear with the text, so that I can experience the full story impact regardless of the medium. 2  
US29 As a reader, I want to adjust the font size, so that I can read comfortably. 2  
US30 As a reader I want to see the pages turn with an animation, so that I have a reading experience as close to reading a physical book as possible. 3 24
US31 As a reader, I want to see the definition of a word in context as I select it, so that I can learn new words and advance my reading comprehension. 3  
US32 As a reader, I want to connect with a remote user, so that we can read together. 3  
US33 As a reader, I want to read with a connected peer using audio, so that we can read together. 2 32
US34 As an account holder, I want to connect remotely with a friend, so that we can read together. 3 10, 32
US35 As a reader, I want to connect with a nearby device, so that we can read together. 3  
US36 As an account holder, I want to have a friend list of people that I know, so that we can connect remotely and read together. 2 34
US37 As a reader I want to be connected with a remote reader of a similar literary level, so that we can read together. 3 20, 32
US38 As a reader, I want to read with a connected peer using video, so that we can read together. 3 32
US39 As a reader, I want my progress with a reading material to be saved, so that I can pick up where I left off at a later time. 3  
US40 As a reader, I want to be able to highlight text from a reading material, so that I can direct attention to important passages. 1  
US41 As a reader, I want the highlights I created to be saved to the book, so that I can view them again when I return. 2 40

Release Plan

With one new requirement, that is user story 39 of bookmarking, having a priority that commanded a place in the next sprint, which implied one or some of the user stories originally planned for sprint 2 would need to be bumped to the sprint after, the release plan needed to be updated to reflect this change.

Task Breakdown

Given the updated release plan, in preparation for sprint 2, the development team again broke down the user stories into actionable tasks that could be completed in a few hours for self-assignment as the sprint went along.

Task Breakdown – Sprint 2
US# User Story Tasks Hour Estimate Responsible
US2 As a reader I want the application to access the reading content remotely, so that it does not require a large amount of storage on the mobile device. Write source code for downloading reading content from the remote database 10 Josh
Review source code for downloading reading content from the remote database 2  
Write unit tests for downloading reading content from the remote database 6 Josh
Write acceptance criteria for downloading reading content from the remote database 1  
Write acceptance tests for downloading reading content from the remote database 1  
Execute acceptance tests for downloading reading content from the remote database 1 Product Manager
Write internal documentation for downloading reading content from the remote database 2 Josh
US3 As a reader, I want to save selected reading materials locally on the mobile device, so that I can access these materials offline or without incurring mobile data usage. Design how a user saves selected reading materials locally 2 Kat
Write source code for saving selected reading materials locally 10 Kat
Review source code for saving selected reading materials locally 1  
Write unite tests for saving selected reading materials locally 4 Kat
Write acceptance criteria for saving selected reading materials locally 0.5  
Write acceptance tests for saving selected reading materials locally 0.5  
Execute acceptance tests for saving selected reading materials locally 1 Product Manager
Write internal documentation for saving selected reading materials locally 1 Kat
Write suer manual for saving selected reading materials locally 1 Kat
US4 As a reader, I want to browse all available reading materials, so that I can find the specific reading material I have in mind. Design how to render all reading materials available for browsing 1 Alexa
Write source code for rendering all reading materials available for browsing 6 Alexa
Review source code for rendering all reading materials available for browsing 1  
Write unit tests for rendering all reading materials available for browsing 3 Alexa
Write acceptance criteria for rendering all reading materials available for browsing 0.5  
Write acceptance tests for rendering all reading materials available for browsing 0.5  
Write internal documentation for rendering all reading materials available for browsing 0.5  
Execute acceptance tests for rendering all reading materials available for browsing 0.5 Product Manager
Write internal documentation for rendering all reading materials available for browsing 0.5 Alexa
Write user manual for rendering all reading materials available for browsing 0.5 Alexa
US5 As a reader, I want to see the covers of the materials while I am browsing through them, so that I can experience the discovery of reading content as in a physical bookstore. Write source code for seeing book covers while browsing 5 Alexa
Review source code for seeing book covers while browsing 1  
Write unit tests for seeing book covers while browsing 2 Alexa
Write acceptance criteria for seeing book covers while browsing 0.5  
Write acceptance tests for seeing book covers while browsing 0.5  
Execute acceptance tests for seeing book covers while browsing 0.5 Product Manager
Write internal documentation for seeing book covers while browsing 1 Alexa
US6 As a reader, I want to select reading material, so that I can access it. Write source code for selecting reading material 4  
Review source code for selecting reading material 1  
Write unit tests for selecting reading material 2  
Write acceptance criteria for selecting reading material 0.5  
Write acceptance tests for selecting reading material 0.5  
Execute acceptance tests for selecting reading material 0.5 Product Manager
Write internal documentation for selecting reading material 1  
Write user manual for selecting reading material 1  
US7 As a reader, I want to sort reading materials by comprehension difficulty or genre, so that I can find the specific reading material I have in mind. Design how reading materials are to be sorted 1  
Write source code for sorting reading material 4  
Review source code for sorting reading material 1  
Write unit tests for sorting reading material 2  
Write acceptance criteria for sorting reading material 0.5  
Write acceptance tests for sorting reading material 0.5  
Execute acceptance tests for sorting reading material 1 Product Manager
Write internal documentation for sorting reading material 1  
Write user manual for sorting reading material 1  
US8 As a reader, I want to search for reading materials by author name, title or genre even if I have no internet connection, so that I can find the specific reading material I have in mind. Design search feature 2  
Write source code for searching for reading material 6  
Review source code for searching for reading material 1  
Write unit tests for searching for reading material 4  
Write acceptance criteria for searching for reading material 0.5  
Write acceptance tests for searching for reading material 0.5  
Execute acceptance tests for searching for reading material 1 Product Manager
Write internal documentation for searching for reading material 1  
Write user manual for searching for reading material 1  
US39 As a reader, I want my progress with a reading material to be saved, so that I can pick up where I left off at a later time. Design how progress in a reading material is saved 2  
Write source code for bookmarking 6  
Review source code for bookmarking 1  
Write unit tests for bookmarking 4  
Write acceptance criteria for bookmarking 0.5  
Write acceptance tests for bookmarking 0.5  
Execute acceptance tests for bookmarking 0.5 Product Manager
Write internal documentation for bookmarking 1  
Write user manual for bookmarking 1  

A total of 124 hours were required as per the task breakdown for sprint 2. Learning from the iteration burndown from sprint 1, a task that required more than a day e.g. 10 hours to complete would likely give a false impression of burning across given that it would take at latest a few days to move the task to done and the rest of the hours would be logged altogether on the day of its completion. Work for sprint 2 were broken down into tasks of up to 10 hours each and some tasks were left to be self-assigned as the sprint went along to allow team members finishing early to move on to unattended tasks or help others with their tasks as appropriate.

Risk Management Plan Update

As the sprint progressed, the team realised the development difficulties with ‘writing source code for downloading reading content from the remote database’ of user story 2 were beyond their original expectations. This user story was a cornerstone in this sprint for a number of other user stories depended on its completion. While the team mustered all the strength and help they could harness to pull through the development, as the Product Manager, I needed to update the risk management plan to reflect this risk and to prepare for the worst.

Risk Management Plan Update – Sprint 2
Risk Risk Ranking Indicators Actions
Technology risk on implementation uncertainties with the database connection feature (US2). 1 (High Impact with a Medium Likelihood) Result from the unit test on the database connection. Given that a number of other features are dependent on this one, it is without doubt a high-impact risk. Its likelihood remains medium until more information about the progress and difficulties are revealed as sprint goes along. Should this feature require more hours than planned to complete and the if hours needed are still within the total hour available within the sprint, then other features and their associated tasks shall be postponed considering the impact and priority of this feature. If however the hours needed to complete this features are more than that of availability of this sprint, then no more than the hours planned for the database feature shall be invested in its development with the rest of the other tasks in the iteration plan to be proceeded as planned, this feature will remain undone at the end of sprint and a review discussion will follow to determine the plan for completing it forward. In case this feature is technically impossible given how the database is architectured for example and will not be rendered feasible without a database redesign, then no more than the hours planned for the database feature shall be invested in its development with the rest of the other tasks in the iteration plan to be proceeded as planned, this feature will remain undone at the end of sprint and a review discussion will follow to determine the plan for it forward given the unforeseen dependency on a database re-architecturing.
Personnel risk on Josh being the a crucial member of the development team 2 (Medium Impact with a Low Likelihood) Whether Josh is distracted or demotivated from work. If Josh was pulled away by a more lucrative offer at another company, the contingency fund should be tapped into for a counter offer for staff retention. The team should also be on the lookout for talented developers should the counter offer fail.

Product Demo

Another sprint passed and it was again time for a demo of the working prototype, and for a backlog refinement with respect to the feedback on the demo and the changing requirements. Another two weeks of hard work from the development team pulled off another flawless demo. All of the user stories again met the team’s definition of done.

Additional Requirements

As Lisa and Daniel were shown the working product, Daniel was thinking of having a synopsis page for the selected reading material before the reading page, that would help the reader determine if the content would be of interest, without having to dive into its content. One user story based on this requirement was added to the requirement backlog as such, for story point estimation and risk assessment by the development before re-planning of the sprint ahead. Lisa also expressed the intention to show a working prototype of the product at a trade show in two weeks, that is at the end of sprint 3, and given that the educational and reading improvement features were the key differentiators of this product, priorities for the remaining user stories and subsequently the release plan for sprint 3 needed to be adjusted to reflect this new reality.

Additional Requirements – Sprint 3
US# User Story Story Point Dependency
US42 As a reader, I want to see a synopsis page for a selected reading material, so that I can determine if it is something that I want to read. 2 6

Release Burndown

With two sprints passed, it was meaningful to do a release burndown for a graphical illustration of the development progress thus far and to project the path forward given the observed velocity.

Product Management and Agile Development - Sprint 2 - Release Burndown

A total of 18 story points were completed by the development team in sprint 2, which, together with 20 story points in sprint 1, brought the observed velocity to 18.4 story points per sprint. 6 story points were added to the product requirement backlog at the end of sprint 1, and 2 at the end of sprint 2. At this pace with 3 more sprints the rest of the user stories would be completed in a total of 5 sprints.

Sprint Retrospective

Like sprint 1, sprint 2 was a success. It did not mean however that a retrospective would be of no value for there is always room for improvement. In sprint 2, all the planned user stories were completed yielding a fully functional working prototype at the end. Learning from sprint 1, all the unit tests were written before the source code. Daily standup stayed as productive as it could be, evidenced of the development progress thus far. The team remained positive despite development difficulties with ‘writing source code for downloading reading content from the remote database’ of user story 2 and pulled through the task eventually. All of these contributed to the success of this sprint and were worthy of praises. In hindsight though, given the importance of user story 2, in the sense that a number of other user stories planned in sprint 2 depend on it, ideally it should have been planned and developed in sprint 1 instead to allow for an early discovery of any potential roadblock. Pair programming was not implemented as much as planned party due to the mentioned struggles with user story 2. Story point estimates for some of the user stories were not as accurate as they were in sprint 1 either. All of these were attributes that could have been done better and would be areas to improve and to watch out for in the sprint ahead.

Sprint 3

User Story

With the additional requirement from Daniel upon seeing the product demo at the of sprint 2, one user story was added to the product requirement backlog.

Requirements Document – Sprint 3
US# User Story Story Point Dependency
US1 As a reader, I want the product to be mobile, so that I can use it anywhere. 1  
US2 As a reader I want the application to access the reading content remotely, so that it does not require a large amount of storage on the mobile device. 3 1
US3 As a reader, I want to save selected reading materials locally on the mobile device, so that I can access these materials offline or without incurring mobile data usage. 3 2
US4 As a reader, I want to browse all available reading materials, so that I can find the specific reading material I have in mind. 2 2
US5 As a reader, I want to see the covers of the materials while I am browsing through them, so that I can experience the discovery of reading content as in a physical bookstore. 2 4
US6 As a reader, I want to select reading material, so that I can access it. 2  
US7 As a reader, I want to sort reading materials by comprehension difficulty or genre, so that I can find the specific reading material I have in mind. 1 4
US8 As a reader, I want to search for reading materials by author name, title or genre even if I have no internet connection, so that I can find the specific reading material I have in mind. 3 2
US9 As a reader, I want to register for an account, so that I can login, access and be recommended reading materials. 2  
US10 As an account holder, I want to login to my account, so that I can login, access and be recommended reading materials. 2  
US11 As an account holder, I want to reset my password, so that I can access my account even if the password is lost. 1 10
US12 As an account holder, I want to rate materials that I have read, so that I can be recommended reading materials most fitting to my preference. 1 10
US13 As an account holder, I want to browse the reading materials that I have read, so that I can keep track of and go back to them. 3 10, 26, 32
US14 As an account holder, I want to add reading materials to my to-read list, so that I can access them offline at a later time. 1 10
US15 As an account holder, I want to remove reading materials from my to-read list, so that I no longer have access to them offline. 1 14
US16 As an account holder, I want to add reading materials to my favourite list, so that I can access them offline and be recommended reading materials most fitting to my preference. 1 10
US17 As an account holder, I want to remove reading materials from my favourite list, so that I no longer have access to them offline and no longer be recommended reading materials with it considered as my preference. 1 16
US18 As an account holder, I want reading materials to be suggested to me based on the reading materials I have rated positively and on the materials that I have on my favourite list, so that I can discover reading materials most fitting to my preference. 2 9
US19 As an account holder, I want reading materials to be suggested to me based on the materials I have read. 2 10, 13
US20 As an account holder, I want my reading fluency and my reading comprehensive level to be tested once a month, so that I can be suggested reading materials appropriate to my literary level and keep track of my improvement. 2 10
US21 As an account holder, I want reading materials to be suggested to me based on my reading fluency and my reading comprehensive level, so that I can discover reading materials most fitting to my preference. 3 20
US22 As an account holder, I want my reading fluency and my reading comprehensive level to be kept track of, so that I can be suggested reading materials appropriate to my literary level. 3 20
US23 As an account holder, I want my reading fluency level to be graded by voice recognition, so that I can assess my reading fluency anytime. 3  
US24 As a reader, I want the page view to resemble the fidelity of a physical book, so that I can experience the full story impact regardless of the medium. 3  
US25 As a reader, I want the background of the page to be off-white, so that I can read comfortably. 1 24
US26 As a reader, I want to read material without a peer, so that I can read at my own pace. 2  
US27 As a reader, I want to read material in both portrait and landscape orientation, so that I can read comfortably. 3 1
US28 As a reader, I want images associated with the content to appear with the text, so that I can experience the full story impact regardless of the medium. 2  
US29 As a reader, I want to adjust the font size, so that I can read comfortably. 2  
US30 As a reader I want to see the pages turn with an animation, so that I have a reading experience as close to reading a physical book as possible. 3 24
US31 As a reader, I want to see the definition of a word in context as I select it, so that I can learn new words and advance my reading comprehension. 3  
US32 As a reader, I want to connect with a remote user, so that we can read together. 3  
US33 As a reader, I want to read with a connected peer using audio, so that we can read together. 2 32
US34 As an account holder, I want to connect remotely with a friend, so that we can read together. 3 10, 32
US35 As a reader, I want to connect with a nearby device, so that we can read together. 3  
US36 As an account holder, I want to have a friend list of people that I know, so that we can connect remotely and read together. 2 34
US37 As a reader I want to be connected with a remote reader of a similar literary level, so that we can read together. 3 20, 32
US38 As a reader, I want to read with a connected peer using video, so that we can read together. 3 32
US39 As a reader, I want my progress with a reading material to be saved, so that I can pick up where I left off at a later time. 3  
US40 As a reader, I want to be able to highlight text from a reading material, so that I can direct attention to important passages. 1  
US41 As a reader, I want the highlights I created to be saved to the book, so that I can view them again when I return. 2 40
US42 As a reader, I want to see a synopsis page for a selected reading material, so that I can determine if it is something that I want to read. 2 6

Release Plan

In light of the public demo at the mentioned trade show in two weeks that is at the end of sprint 3, priority in the educational and reading improvement features that constituted the unique differentiations of the product was renewed. The release plan needed to be updated as such.

Task Breakdown

With the updated release plan prioritising the educational and reading improvement features of the product, in preparation for sprint 3, the development team again broke down the user stories into actionable tasks that could be completed in a few hours for self-assignment as the sprint went along.

Task Breakdown – Sprint 3
US# User Story Tasks Hour Estimate Responsible
US10 As an account holder, I want to login to my account, so that I can login, access and be recommended reading materials. Design how a user creates an account 2 Kat/Daniel
Write source code for creating an account 4 Kat
Review source code for creating an account 1  
Write unit tests for creating an account 2 Kat
Write acceptance criteria for creating an account 0.5  
Write acceptance tests for creating an account 0.5  
Execute internal documentation for creating an account 0.5 Product Manager
Write internal documentation for creating an account 1 Kat
Write user manual for creating an account 1 Kat
US11 As an account holder, I want to reset my password, so that I can access my account even if the password is lost. Write source code for logging into an account 2 Kat
Review source code for logging into an account 0.5  
Write unit tests for logging into an account 2 Kat
Write acceptance criteria for logging into an account 0.5  
Write acceptance tests for logging into an account 0.5  
Execute acceptance tests for logging into an account 0.5 Product Manager
Write internal documentation for logging into an account 0.5 Kat
Write user manual for logging into an account 0.5 Kat
US14 As an account holder, I want to add reading materials to my to-read list, so that I can access them offline at a later time. Write source code for adding material to a to-read list 5 Alexa
Review source code for adding material to a to-read list 1  
Write unit tests for adding material to a to-read list 3 Alexa
Write acceptance criteria for adding material to a to-read list 0.5  
Write acceptance tests for adding material to a to-read list 0.5  
Execute acceptance tests for adding material to a to-read list 0.5 Product Manager
Write internal documentation for adding material to a to-read list 1 Alexa
Write user manual for adding material to a to-read list 1 Alexa
US15 As an account holder, I want to remove reading materials from my to-read list, so that I no longer have access to them offline. Write source code for removing material from a to-read list 1 Alexa
Review source code for removing material from a to-read list 0.5  
Write unit tests for removing material from a to-read list 1 Alexa
Write acceptance criteria for removing material from a to-read list 0.5  
Write acceptance tests for removing material from a to-read list 0.5  
Execute acceptance tests for removing material from a to-read list 0.5 Product Manager
Write internal documentation for removing material from a to-read list 0.5 Alexa
Write user manual for removing material from a to-read list 0.5 Alexa
US16 As an account holder, I want to add reading materials to my favourite list, so that I can access them offline and be recommended reading materials most fitting to my preference. Write source code for adding material to a favourite list 5 Alexa
Review source code for adding material to a favourite list 1  
Write unit tests for adding material to a favourite list 3 Alexa
Write acceptance criteria for adding material to a favourite list 0.5  
Write acceptance tests for adding material to a favourite list 0.5  
Execute acceptance tests for adding material to a favourite list 0.5 Product Manager
Write internal documentation for adding material to a favourite list 1 Alexa
Write user manual for adding material to a favourite list 1 Alexa
US17 As an account holder, I want to remove reading materials from my favourite list, so that I no longer have access to them offline and no longer be recommended reading materials with it considered as my preference. Write source code for removing material from a favourite list 1 Alexa
Review source code for removing material from a favourite list 0.5  
Write unit tests for removing material from a favourite list 1 Alexa
Write acceptance criteria for removing material from a favourite list 0.5  
Write acceptance tests for removing material from a favourite list 0.5  
Execute acceptance tests for removing material from a favourite list 0.5 Product Manager
Write internal documentation for removing material from a favourite list 0.5 Alexa
Write user manual for removing material from a favourite list 0.5 Alexa
US20 As an account holder, I want my reading fluency and my reading comprehensive level to be tested once a month, so that I can be suggested reading materials appropriate to my literary level and keep track of my improvement. Design comprehension testing 3 Josh/Daniel
Write source code for comprehension testing 5 Josh
Review source code for comprehension testing 1  
Write unit tests for comprehension testing 3 Josh
Write acceptance criteria for comprehension testing 0.5  
Write acceptance tests for comprehension testing 0.5  
Execute acceptance tests for comprehension testing 0.5 Product Manager
Write internal documentation for comprehension testing 1 Josh
Write user manual for comprehension testing 1 Josh
US22 As an account holder, I want my reading fluency and my reading comprehensive level to be kept track of, so that I can be suggested reading materials appropriate to my literary level. Design how improvements will be tracked 3  
Write source code for tracking reading improvements 6  
Review source code for tracking reading improvements 1  
Write unit tests for tracking reading improvements 2  
Write acceptance criteria for tracking reading improvements 0.5  
Write acceptance tests for tracking reading improvements 0.5  
Execute acceptance tests for tracking reading improvements 0.5 Product Manager
Write internal documentation for tracking reading improvements 1  
Write user manual for tracking reading improvements 1  
US31 As a reader, I want to see the definition of a word in context as I select it, so that I can learn new words and advance my reading comprehension. Design how a word definition works 3  
Write source code for defining words 7  
Review source code for defining words 2  
Write unit tests for defining words 3  
Write acceptance criteria for defining words 0.5  
Write acceptance tests for defining words 0.5  
Execute acceptance tests for defining words 0.5 Product Manager
Write internal documentation for defining words 1  
Write user manual for defining words 1  
US37 As a reader I want to be connected with a remote reader of a similar literary level, so that we can read together. Write source code for literary level matches 5  
Review source code for literary level matches 1  
Write unit tests for literary level matches 2  
Write acceptance criteria for literary level matches 0.5  
Write acceptance tests for literary level matches 0.5  
Execute acceptance tests for literary level matches 1 Product Manager
Write internal documentation for literary level matches 1  
Write user manual for literary level matches 1  

A total of 116 hours were required as per the task breakdown for sprint 3. Learning from the previous sprints, work for sprint 3 were broken down into tasks of up to 7 hours each to avoid a false impression of burning across, and some tasks were left to be self-assigned as the sprint went along to allow team members finishing early to move on to unattended tasks or help others with their tasks as appropriate. The team also agreed in the retrospective for sprint 2 that pair programming should be implemented as much as possible to allow for knowledge sharing and peer learning. For all members of the development team to have a chance to pair-program with one another, at least one programming task to be self-assigned by two different members of the development team was highly suggested.

Product Demo

At the end of sprint 3 that is the final sprint before a working prototype of the product would be shown to the public at a trade show attended by Inukshuk Books, it was again time for a demo. Another two weeks of outstanding work from the development team pulled off another excellent demo. Development progress was sidetracked however at one point during the sprint, it was corrected as soon as it was noticed in the daily standup, valuable development time and resources were unfortunately lost and as such a decision had to be made to drop some of the lower priority user stories for the sprint. The educational and reading improvement features were the basis of this sprint and were to be retained in all events. User story 14 and 15 of adding and removing materials from a to-read list, and user story 16 and 17 of adding and removing materials from a favourite list, on the other hand were of a lower priority and had no other user stories in this sprint dependent on them, not to mention that there were a certain area of overlap between these two sets of user stories and of the two reading lists. For that reason one set of the user stories could have been dropped in this sprint with minimal impact on the deliverable, and a deliberation with the team decided that user story 16 and 17 of adding and removing materials from a favourite list were to be moved to the backlog for development at a later time.

The rest of the user stories met the team’s definition of done, and upon learning that user story 16 and 17 were postponed for the reasons described, Lisa and Daniel were in accord of this arrangement. In fact seeing that user story 14 and 15 already provided a mechanism for a reader to keep a personalised list of reading materials, questions were raised again about the marginal value to the reader for user story 16 and 17, and after a thorough deliberation it was decided that these user stories were to be removed altogether from the product requirement backlog, on ground of the potential confusion they might introduce, and the lack of a clear and distinct marginal value to the reader.

Release Burndown

With another sprint passed, it was time to update the release burndown for a graphical illustration of the development progress so far and to project the path forward given the observed velocity.

Product Management and Agile Development - Sprint 3 - Release Burndown

A total of 16 story points were completed by the development team in sprint 3, which, together with those of the previous sprints, brought the observed velocity to 18 story points per sprint. 2 story points were removed at the end of sprint 3. At this pace with roughly 2 more sprints the rest of the user stories would be completed in a total of 5 sprints.

Sprint Retrospective

Sprint 3 was off to a shaky start with the development effort going off-track early in the sprint. This was also when the daily standup was demonstrating its full value by allowing the team to spot the sidetrack earlier on and to steer the development effort back on track as soon as possible. Like the sprints before, a fully functional working prototype of the product with all, but two user stories, meeting the team’s definition of done was delivered.

Project Postmortem

A project postmortem was held to reflect on the lessons learnt and to takes these lessons into future endeavours whether separate or apart. Differences and disagreement are inevitable of any collaboration. A project postmortem allows for cathartic release of energy and provides the team a chance to settle their differences in an open and collaborative atmosphere free from judgement.

In the end, a working prototype of a reading cum literacy improvement mobile app product, for children of 7 to 12, that connects readers of similar literacy level for a peer reading and learning experience, was delivered for a public demo at a trade show for Inukshuk Books. Aimed at improving literacy in young children, the product aligned also with Inukshuk Books’ commercial goal to increase the sales of books with young readers over the next 5 to 10 years, and it would not have been possible without a development methodology, that centred around iterative product release and that adopt to the changing world and requirements through continuous and interactive collaboration between everyone with a stake in it.