Centurial - 2021 Roadmap
22 January 2021 by Fouke Boss
22 January 2021 by Fouke Boss
2021 is going to be a busy and exciting year for Centurial. In this blog post, we take a look at the many new features we are planning to implement in Centurial in 2021 and 2022, and the dependencies between them.
Before we start looking forward, let's look back a bit. Initial development on Centurial started in 2016, and because Centurial is quite unlike all other genealogical software, it took over a year to release a first stable but very rough version 1.0, in October of 2017. Notice how similar, and yet different v1.0 was when compared to the current v1.18:
Most of 2018 was spent turning Centurial from this very rough product into a much more user-friendly application, improving calendars, indirect evidence, the Network diagram, source references, the autocorrelation algorithm, and many other parts. In v1.7 and v1.8, GEDCOM support was introduced.
In the first part of 2019, I concentrated on improving data entry, with many additions to the Claims Panel (v1.9) and the introduction of the browser extension (v1.10), showing a first glimpse of the real power of Centurial. The second half of 2019 was mostly used to professionalize Centurial, by introducing Dutch and German versions (v1.13) and by introducing the paid version of Centurial (v1.14) in early 2020, making the future development of Centurial more sustainable.
And in 2020, I finally got around to introducing many new features that had been on my wish list from the start, like the timelines and kinship (v1.16), the redesign of the Source View and the Claims Panel, and the introduction of text clips (v1.17) and the interactive tutorials (v1.18).
And so here we are, at the start of 2021, and Centurial is looking good. Most of the initial, basic features have matured, and the user community keeps growing every day. Of course, a bug pops up every now and then, but nothing too big. And so nothing is holding us back to take Centurial to a next level.
When developing a software product like Centurial, there are several reasons that initiate a change to the existing software:
When planning a roadmap, it's important to consider the dependencies between all user stories, user requests, bugs and refactorings. Most features depend on other features or changes, and can only be implemented if these other changes are done first.
In order to manage all these dependencies, I have grouped all currently known work items into units of work that can be done as a whole, which I will call milestones. Each release will contain one or more of these milestones. Currently, I am considering the following milestones for 2021 and 2022:
Each rectangle represents a milestone. The rectangle at the top left represents the current Centurial version, v1.18, and directly below that is v1.19 that will be published next week.
The arrows in the diagram represent dependencies between the milestones. Work on a milestone can only be started if all milestones it depends on are completed first. The grey rectangles represent refactoring milestones that in itself add no new value fo the user, but are necessary for the milestones that depend on it.
The following is a list of short descriptions for each of the milestones:
|Account Management (Website)||Upgrade the website with an account page for each user. Enable the user to change their name, username and country. Implement a process to reset a forgotten password.|
|Forum (Website)||Add a forum to the Centurial website that allows Centurial users to ask questions and to share knowledge and experience.|
|Ticketing system (Website)||Add a ticketing system to the Centurial website, allowing users to request features and monitor the planning and progress of their requests. Connect the ticketing system to the release history.|
|Events & Anecdotes||Promote events to be an entity like persons and relationships. Add support for multiple occurrences of an event, for example for marriage banns. Extend the list of supported event types to include other religions as well. Allow the user to create custom event types. Support adding anecdotes to events. Add all events to the timeline.|
|Roles & Relationships||Capture the roles of persons within an event, like witnesses of a wedding. Allow additional relationship types in the Information Panel, like friend or cousin. Find a way to display these roles and relationships in a useful way; perhaps introduce a social network diagram?|
|Portraits & Photos||Add support for the concept of identification: for portraits, it is not only relevant who supplied the photo (the source), but also who identified the person in the photo. Add portraits to the Person View. Improve the support for photos and photo albums. Perhaps introduce a new Photo View. Connect photos to events.|
|Research Log||Add a research log to capture what additional research the user would like to do, and what research the user has already done. Export research plans per archive.|
|Refactoring (.NET Core)||Start migration from .NET Framework to .NET Core. Move from XML to JSON for internal storage.|
|Refactoring (Project & Entity)||Currently, Centurial is designed to run projects up to about 3000 persons. Redesign the internal project storage scheme to allow for larger projects, and to improve performance for these larger projects.|
|Indirect & Negative Evidence||Add support for negative evidence (compare expected evidence to actual evidence). Support negative findings based on the research log. Implement additional indirect evidence rules.|
|Places & Geography||Promote places to be an entity like persons, relationships and events. Add support for maps. Allow entering claims for places. Add a Places List to the main window. Add a Map View, using OpenStreetMap or Google Maps, allowing to view and correlate places. Improve the conclusions of place facts by using available evidence on places.|
|GEDCOM & Onboarding||Improve the support for importing research from other genealogy applications through GEDCOM. Speed up the GEDCOM import. Actively help new Centurial users to migrate research data by creating to-do items in order to improve the quality of their research.|
|Refactoring (Sources)||Refactor the handling and storing of source details in Centurial.|
|Web Scrapers||Refactor the code for the web scrapers. Add specific web scrapers for the top 20 most used websites. Improve the testing of the web scrapers in order to detect changes to the websites automatically.|
|Source Dialog & Wizard||Refactor the Source Dialog into a Source Wizard, further support the user in determining the correct provenance and repository of a source. Perhaps move the source layout details from the Source Dialog to the Source View, as the Source View also displays the documents that contain these details. Connect some of the source layout fields with the claims and events within the source.|
|Source References||Translate source references into the selected language. Improve the Source Explorer by displaying the parts of the source reference that are specific to that citation in bold. Improve the export of source references to GEDCOM.|
|Refactoring (Culture)||Refactor all culture-related code from being User Interface specific to being more generic. Allow for more specific translations for subcultures, like en-US vs. en-GB. Preparing for rendering reports and other forms of output.|
|Reporting||Introduce a first batch of reports in Centurial. Determine the types of output. Websites? PDF? RTF? Perhaps introduce a report scripting language so users can design and tweak the reports to their liking? Implement data views to limit reports to a specific part of the project. This first version to contain reports will be labelled v2.0.|
Interestingly, all these dependencies do not enforce a single possible development path. Instead, the milestones can be implemented in many different orders. For me personally, at least 2 milestones are fixed in time:
The remaining milestones are probably too much work for 2021 alone, and will require development efforts in 2022 as well. So the important thing here is to determine the order in which these milestones will be completed, and that's where you come in. I'm very interested to know what you, the Centurial user, would like me to work on first. And that's why I would like to invite you all to vote, by simpling sending me an e-mail or by using the contact form. Just send me a top 3 list of milestones that you would like to see completed first, or a top 5, perhaps with a bit of explanation if you like. In a couple of weeks, I'll be publishing the resulting milestone planning based on this poll!
And so a lot of votes have been coming in during the 2 weeks after this blog was posted! Some of you sent top 3 or top 5 lists, others delighted me with a detailed top 9. Some of you answered compactly, others explained their reasoning in great detail, which was very insightful. Thank you all!
And so I came up with this little calculation, where each voter has exactly 1 point to distribute. If you sent in a top 3 list, your number 1 choice will have gotten 3/6 of a point, your number 2 received 2/6 of a point and your number 3 got 1/6 of a point. If you sent in a top 9 list, you'll have awarded 9/45, 8/45, 7/45, ..., 2/45 and 1/45 of a point respectively. This way, each user has had the same overall impact on the final results.
After doing the maths, these are the final results of the 2021 Roadmap Poll:
|2021 Roadmap Poll|
|1.||Places & Geography||21.7%||9.||Source Dialog & Wizard||3.8%|
|2.||Roles & Relationships||20.6%||10.||Web scrapers||3.7%|
|3.||Events & Anecdotes||11.1%||11.||Forum (website)||3.5%|
|4.||Reporting||8.2%||12.||GEDCOM & Onboarding||2.0%|
|5.||Research Log||8.0%||13.||Source References||1.2%|
|6.||Portraits & Photos||5.8%||14.||Repository Management||1.0%|
|7.||Refactoring (Project & Entity)||4.8%||15.||Ticketing System (website)||0.0%|
|8.||Indirect & Negative Evidence||4.5%|
The number one conclusion: the first thing you guys now need is to be able to manage places, roles and events in a more detailed way. Together, these milestones make up for more than half of all your votes!
Other insights I gained from this poll:
Now, what does this all mean for the next steps for Centurial? Well:
I've included an updated dependency graph in the roadmap that reflects the insights gained through this poll. Thank you all for voting!