Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

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)
  • No labels

2 Comments

  1. I suggest to involve also the DSpace 7 Entities Working Group, because it is the work that is causing more delay and completely underestimated. The Steering and Leadership groups approved the inclusion of the Entities in DSpace 7 based on the estimation that they would be finished by end of LAST YEAR, which means 2018. 

    Evidence from the Steering Group meeting notes ONE YEAR AGO:

    2018 Sep 21: "(Tim) DSpace 7 Entities Working Group Newest WG. Short term. New objects into DSpace data model? Move forward on DSpace 7 timelines - new configurable entities in DSpace 7. Only two meeting so far. Charge - implementable solutions by end of calendar year."

    2018 Oct 15: "Susanna does not think the beta can be released within two months, there are a lot of issues unassigned, issues should be cleaned and a decision made about what can be realistically released within two months. Bram is more optimistic but admits the actual release could take more time because of extra tasks such as documentation."

    Documentation is not the problem, I'm afraid. Evidence is under the eyes of the community.

    1. Hi Susanna Mornati (4Science): Yes, as I've mentioned in other places (Slack, DSpace 7 Meetings, etc), we definitely will be including the DSpace 7 Entities Working Group (2018-19) as part of this estimation process.  As you can see in this wiki page above, this is only the first round of the estimation process.  As the DSpace team has not done estimates of this sort for past releases, we've chosen to do the estimates in phases – this first round will concentrate on outstanding tasks that already have very clear definition/descriptions (mostly because they relate to rebuilding features that exist in DSpace 6.x JSPUI or XMLUI).  This will let us all get familiar with this new estimation process, after which will we do a second (and possibly third if necessary) round of estimates, including all outstanding Entities related work and all other tasks flagged as "NEEDS MORE INFO" in the planning spreadsheet.  The overall goal is obviously to estimate all outstanding work on DSpace 7 and provide that information back to Leadership & Steering.