Overview

Starting in September 2019, the DSpace 7 Working Group (2016-2023) (along with the DSpace 7 Entities Working Group (2018-19)) is beginning a detailed estimation process of all outstanding development work to get to DSpace 7.0 Beta.

This estimation process only concentrates on development work to do prior to Beta (and not Final) because the Beta pre-release will include all features / functionality that will be available in the DSpace 7.0 Final release.  Additionally, the Beta release will be used for the DSpace 7.0 Community-wide Testathon.  The results of that Testathon (e.g. number and severity of bugs/issues found, etc) will be the basis for the final timeline between 7.0 Beta and 7.0 Final

Estimation Strategy / Technique

We are using the Wideband Delphi estimation technique, which is specifically tailored towards managing uncertainty in software project estimates.  Here's a few online materials which describe Wideband Delphi in more detail:

For our estimation process, we will use the specific Wideband Delphi spreadsheet developed by Lullabot team, and used for estimating Drupal projects. Their spreadsheet and details on how they use it is available in the first article above ("Handling Uncertainty When Estimating Software Projects").

Estimation Process Overview

This is a high level overview of what the entire estimation process will look like

Be aware that not all outstanding features will be estimated at once.  Some features/requirements are still in the process of being scoped/defined.  Therefore, we've chosen to start the estimation process concentrating first on well defined tasks. A second round of estimations will be scheduled for tasks that are not yet defined enough to estimate.

  1. Two estimation teams will be selected: one for the Angular UI and one for the REST API.
  2. Estimation spreadsheets (based on the Lullabot Wideband Delphi spreadsheet) have been created for tasks that require estimation. (See below "Estimation Spreadsheets" section)
  3. Each task in those spreadsheets will be estimated (privately) by 2 different developers at separate institutions Developers are welcome to collaborate on their estimates with colleagues at their institution, but their estimates should not be shared with other estimators.
    1. Each task estimate consists of the following:
      1. A summary (a few sentences or paragraph) of the proposed solution that the developer is estimating. This summary should describe any assumptions you are making, and what development work you are specifically estimating for. Also, as needed, be sure to include any information about the type of developer (e.g. senior vs junior developer) you are assuming in your estimate. So, if a specific task likely requires a senior developer, note that, and estimate based on that assumption. 
      2. An estimate (in hours) of the design phase. For the REST API, this estimate should include development of the REST Contract PR.  For the Angular UI, this estimate should include any mockups (as needed). Design review should not be included in this estimate, as the spreadsheet is setup to automatically add 20% to all estimates to cover the design review process.
      3. An estimate (in hours) of the development phase. This estimate should ONLY include development activities, including Test Driven Development (e.g. unit and/or integration tests)Code review should not be included in this estimate, as the spreadsheet is setup to automatically add 20% to all estimates to cover the code review process.
  4. Completed estimates will be submitted to LYRASIS staff (Heather & Tim). At this point all estimates will be combined into a "master" spreadsheet.
  5. An Estimation Meeting will then be called (for each estimation spreadsheet).  This meeting will include LYRASIS and anyone who contributed an estimate (though others are welcome to attend if they wish to add to the discussion)
    1. The meeting will concentrate primarily on tasks that had a large variance (i.e. difference) in the estimations.  All meeting attendees will discuss these tasks in greater detail (including further scoping as needed) and work on an estimate that everyone is comfortable with.
  6. Final estimates will be entered into the master spreadsheet for each task.  These final estimates may be based on discussions in meetings, or (for tasks which were estimated very similarly) copied more directly from previously submitted estimates.
    1. It is important to note that final estimates are not simply an "average" of submitted estimates. The goal is to discuss any tasks where there is larger disagreement and come to a general consensus on what a reasonable estimate is.
    2. 20% is added to each estimate to cover the code review process
    3. 10% is added to each estimate to cover any additional project management activities
  7. (These steps may be repeated as additional tasks are defined/scoped & new estimation spreadsheets are created. Once all outstanding tasks have been estimated from our DSpace 7 Development Planning spreadsheet, we will have a combined estimate of work effort to get to 7.0 Beta)

Estimation Spreadsheets

Currently available estimation spreadsheets are listed here.  Keep in mind, not all outstanding tasks may appear on these spreadsheets yet, as we are starting with tasks that are already well defined.  We have also tried to keep each spreadsheet reasonably small (~20 tasks or less) in order to not overwhelm team members with having to do every estimate at once.  This also allows for different developers to fill out different spreadsheets.

REST API Estimation Spreadsheets

Spreadsheets list the sections of the DSpace 7 Development Planning spreadsheet that they include tasks from. NOTE: Any tasks flagged as "NEEDS MORE INFO" in the Planning spreadsheet are not yet included in the Estimation Spreadsheets, as they require further discussion to scope the task.

  1. (Draft) REST API Sections 1-6, Phase 1 (Architecture, Browse, Search, AuthN/Z, Submission, Workflow)
    1. Ben BosmanAndrea Bollini (4Science)
  2. (Draft) REST API Sections 7-10, Phase 1 (Content Management, Administration, Statistics, New Features)
    1. Ben BosmanAndrea Bollini (4Science)

Angular UI Estimation Spreadsheets

Spreadsheets list the sections of the DSpace 7 Development Planning spreadsheet that they include tasks from. NOTE: Any tasks flagged as "NEEDS MORE INFO" in the Planning spreadsheet are not yet included in the Estimation Spreadsheets, as they require further discussion to scope the task.

  1. (Draft) Angular UI Sections 1-5, Phase 1 (Architecture, Browse, Search, AuthN/Z, Submission)
    1. Art Lowel (Atmire)Giuseppe Digilio (4Science)
  2. (Draft) Angular UI Sections 6-10, Phase 1 (Workflow, Content Management, Administration, Statistics, New Features)
    1. Art Lowel (Atmire)Giuseppe Digilio (4Science)