Season of Docs - 2022

Technical Writers - Stay Tuned

Mifos is applying for participation in Season of Docs once again. Check back in on April 14, 2022 to see if we have ben accepted. 

About Mifos

The best way to understand what we do is to watch a few videos. 

What is Mifos and What Does our Community Do?

How is the Mifos software used? 

  

   

2022 Season of Docs Timeline

Please see Google Season of Docs website for the full program timeline. Here are a few key dates and their current status:

Program announcementFebruary 3, 2022
Season of Docs program announced
Organization applicationsFebruary 23, 2022 at 18:00 UTC
Organizations can begin submitting applications to Google

March 25, 2022 at 18:00 UTC
Deadline for organization applications

March 25 - April 13, 2022
Google program administrators review organization applications
Organizations announcedApril 14, 2022 at 18:00 UTC
Google publishes the list of accepted organizations
Doc developmentApril 14, 2022
Doc development can officially begin
Technical writer hiringMay 16, 2022
Technical writer hiring deadline
Monthly EvaluationsJune 16, 2022
Organization administrators begin to submit monthly evaluations to report on the status of their project
Final project evaluation and case studyNovember 15 - 30, 2022 at 18:00 UTC
Organization administrators submit their case study and final project evaluation
Results announcedDecember 14, 2022
Google publishes the 2021 Season of Docs case studies and aggregate project data
Followup surveysMay 2, 2023
Organizations begin to participate in post-program followup surveys

2022 Proposal - Update Platform and Collaboration Documentation for Launch of Mifos X 3.0

About the Mifos Initiative

The Mifos Initiative is a global 501(c)3 fintech non-profit  leveraging the cloud, mobile & open source community to democratize financial services worldwide and digitally transform the world’s 3 billion poor and underbanked. We aim to create a world of 3 Billion Maries where everyone has access to the financial resources needed to create a better life for themselves and their family. Our unprecedented approach unites financial institutions, local technology partners, and volunteer developers to collectively advance open source banking infrastructure to sustainably build impactful innovations in digital financial services.

We guide the global Mifos ecosystem of partners and volunteers contributing back to the open source Mifos and Fineract platforms. Mifos donated the codebase to the Apache Software Foundation for what ultimately became the top-level project, Apache Fineract. Both Mifos and Fineract have been nominated and selected by the Digital Public Goods Alliance as foundational digital public goods for the Financial Inclusion Community of Practice. 

More than 20 million clients supported by 400+ fintechs and financial institutions use our open APIs to power their solution across 41+ countries. They are supported by a global community of 100 deployment partners & hundreds of volunteers.

Mifos  is the innovation that powers the innovators by providing a set of open source building blocks that can be composed into financial services of any form. Across the world from grassroots microfinance institutions in rural Africa serving dozens of clients with microloans to government-led banks in Latin America reaching millions to banks in Germany delivering mortgage loans, from digital credit startups reaching hundreds of thousands in West Africa to mobile wallet providers supporting millions in India, to cloud-based core banking systems reaching millions across multiple continents to banking as a service providers enabling neobanks, our open banking stack is transforming the delivery of digital financial service

For the past 15 years, we’ve been at the forefront of transformative technology, building an end to end open source stack for DFS. Our technology stack provides complete banking infrastructure that is cloud-native, mobile-enabled, and scalable to billions that are underbanked. Our stack is a set of Open Source Lego Blocks for DFS including flexible account management (Mifos X) leveraging Open APIs from Apache Fineract and Fineract CN, integrating with digital payment rails like Mojaloop, delivered via web and mobile apps through Open Banking APIs.  

At the heart of our stack is Fineract 1.x, our  composable open source core banking platform that is highly scalable in the cloud and deployable via our reference apps and open APIs.  Coupled with our Mifos web app UI on top of these platforms, We provide a flexible account and wallet management system to enable the delivery of any digital financial service. Next in our stack is our Payment Hub EE which provides a gateway and orchestration engine to connect to real-time payment services and interoperable payment rails like Mojaloop and Mobile Money APIs  Think of Mifos as the DNA of financial services that can be put together into many expressions and Mojaloop as the connective tissue enabling low-cost payments across any system. On top of these open source rails and accounts are reference customer-facing mobile banking and mobile wallet apps which consume our Open Banking APIs and third party PISP APIs. We provide these open source building blocks of financial inclusion, train and certify a network of partners to build solutions with these building blocks, and support and sustain the collaborative infrastructure and ecosystem for these solutions to be scaled and distributed worldwide. 

Documentation audiences across our community include the end users of our software, the staff of financial institutions and fintechs that use Mifos to create customers and their accounts, configure loan and savings products, process transactions and track repayments and deposits, manage their general ledger and generate financial and operational reports. The primary audience of our documentation is our partner community who host, deploy, configure, and support the software for these financial institutions, build new fintech solutions and applications using the APIs, and develop, maintain, and extend the core upstream project which powers their solutions. Joining these partners as part of our developer community are individual volunteers, interns, and corporate strategic partners who collectively guide the development, QA, and release management to ensure timely and high-quality open source releases of our platform.

Our Problem & Need

This project will build off of the 2021 Season of Docs project which consolidated our documentation into one unified portal with separate spaces for developer and user documentation. 

With this solid documentation foundation in place, we now need to update our documentation to reflect the major transformation of our project at both an architectural as well as community infrastructure level. In 2022 we are releasing the most substantial evolution to the platform since its initial launch nearly 10 years ago. This major release will be titled Mifos X 3.0 built on top of Fineract 2.0 

Throughout 2021 and 2022, the community has placed a renewed focus on the Fineract 1.x codebase with major architectural refactorings to enable greater scalability and modularity. In addition we have released a redesigned and modernized version of the reference user interface for staff on Angular, our web app. Lastly our payment orchestration engine, Payment Hub EE has achieved production readiness and is now a more integral component of the end to end stack. . In addition to these enhancements at the platform, UI, and orchestration layer, we have significantly improved deployability through containerization, the contribution process through more automated code checks and analysis as well as the QA process through implementation of the Cucumber test framework. 

This year's project will focus on updating and drafting documentation to reflect this next major evolution in our platform and community infrastructure. 

  • The new refactored architecture of the Fineract 1.x platform itself including changes such as improved read/write separation of API calls, migration of database from MySQL to PostgreSQL, migration of ORM from OpenJPA to Eclipselink, introduction of Kafka for reliable event handling framework, transactional idempotency, and integraiton of Spring Batch for improved end of day processing. 
  • The updated reference web app user interface with modern components, material design, and skinnability built on top of Angula. 
  • The production-ready payment hub EE with additional payment connectors, enhanced operational interface, dashboards and visualizations, and notifications module. 
  • Greater deployability through improved containerization, terraform scripts and configurable Helm Charts 
  • Streamlined contribution process with more automated code checks
  • Improved QA infrastructure through Cucumber Test Framework. 
  • Documentation of Mobile UI library and SDK Components (Optional scope) 

The more unified we can make our documentation and show how the various components and solutions all fit together via live APIs and sandbox environments,  the more innovation and upstream contribution we can catalyze. 

Project Scope (35 - 40 man-days) 

The project will consist of refining existing documentation written by developers  and writing new documentation. A small portion of the project will focus on ongoing optimization, organization and consolidation of documentation.  

As part of the development process, our developers include a baseline level of technical and functional documentation. The technical writer chosen, will work alongside existing community volunteers to make the existing documentation more robust and draft new documentation where it doesn’t exist. 


Architectural Documentation (10 person days)

Major refactorings have occurred at every layer of the platform architecture - the documentation must reflect the changes and the impact it has upon development, deployment and performance.

  • Refine documentation on the enhanced ability to separate read/write API operations for greater performance (1 day)
  • Refine documentation for migration of database from MySQL to PostgreSQL including the migration from Flyway to Liquibase for database migration scripts (1.5 days) 
  • Refine documentation for tuning and indexing to optimize performance based on PostgreSQL and Eclipselink enhancements. (1 day)
  • Write new documentation on transaction idempotency and business and effective date configuration (1 day)
  • Refine documentation on new reliable event handling framework built on Kafka (2.5 days) 
  • Refine documentation on integration of Spring Batch for parallelization of batch jobs, running smaller chunks of batch jobs, ensuring no transaction conflict between real-time and batch processes including architecture of new framework, how to configure and schedule jobs, etc.  (3 days) 

Functional & Deployment Documentation (12 person days) 

  • Draft new documentation outlining functionality of payment hub, each of its new modules,  and use cases it supports (3 days) 
  • Draft new documentation on how to install, deploy and configure Payment Hub EE (2 days)  
  • Update documentation and screenshots in user manual to reflect design of new web app (2 days) 
  • Update and refine documentation to reflect new DevOps tooling for deployment of the platform and Payment Hub EE including Terraform scripts, Configurable Helm Charts, Kubernetes and Containerization Optimations (3 days)
  • Update critical documentation that is outdated or not clear including installation guide, reporting, SMS gateway configuration, and self-service user creation. (2 days) 

Collaboration Documentation (7 person days) 

  • Draft documentation related to automated code checks, static analysis, and other build-level automation that has been introduced to improve code quality and reduce friction of upstream contribution  (1 day) 
  • Update documentation on upstream contribution process and ensuring that contributors know how to properly configure Github to sync their downstream codebase with upstream project and do development in an upstream-first manner that is aligned with Apache Way  (2 man-days) 
  • Draft documentation for QA/testers on how to write new tests and leverage the Cucumber Test framework  (2 man-days) 
  • Draft documentation for developers on how to write code leveraging new Cucumber test framework for unit testing  (1 man-day)
  • Update FAQs explaining difference between Mifos and Fineract. (1 day) 

Standardize Documentation (5 days) 

For each of our projects we have a wealth of documentation that needs to be organized and arranged according to a standard format/flow:

  • Define standard for existing documentation and ensure each project’s user and technical documentation adheres to that standard format/flow:
    • For end-users - installation, troubleshooting common issues, system specs, tutorials, product overview, quick start guide, domain/topic explainers. (2.5 days)
    • For developers - contributing guidelines, project setup guide, troubleshooting tips, architectural description/overview, release notes/history. (2.5 days) 

Review & Incorporate Feedback & Draft Case Study (3-5 days)

  • Based on review of the above deliverables by project supervisor and volunteers, technical writer will implement feedback and refine deliverables
  • Draft season of docs case study 

Project Total: 35 - 40 person-days

Measuring Project Success 

Through workshops and surveys we continually hear from the community how we need to reduce the friction in the developer experience. We also have a dearth in qualified senior developers that we hope to scale up through better documentation. 

We would consider the project successful if, after updating documentation to support the launch of Mifos X 3.0: 

  • Number of pull requests and upstream contributions increase by 20%
  • Number of onboarded new active contributors increase by 10 over a 3 month period. 
  • Number of partners making contributions upstream increases by at least 5 additional partners. 
  • Number of questions on mailing list regarding to how deploy or configure the platform goes down by 20%

Project Budget

Total project budget is $15,000 USD


Item

Amount

(USD)

Running Total

(USD)

Notes/Justification
Technical Writer $12,000$12,000
Graphic design - architecture diagrams, flow diagrams and visuals to accompany documentation$750$12,750
Project Management, Supervision, and Review of Deliverables$1,500$14,250To cover partial cost of scoping out project, managing its delivery and final review of deliverables. 
Volunteer Stipends (2 at $300 each)$600$14,850For volunteers that will be closely providing information and/or reviewing deliverables 
T-Shirts for Volunteers$150$15,000Printing of t-shirts for documentation volunteers

Additional Information

Previous experience with technical writers

We successfully completed the 2021 Season of Docs program which helped impart upon us many critical lessons in scoping of the project, onboarding of the technical writer, managing expectations of the project, and ensuring the technical writer had optimal access to subject matter experts for proper facilitation. We have developed a strong understanding of the ideal types of documentation to focus on for a Season of Docs project and the ideal skillset in terms of domain and technical expertise needed to successfully complete a project. 

We have worked extensively with technical writers before in the creation of user-facing and developer facing documentation. We have done this through community-wide efforts and documentation sprints via the FLOSS Manuals community, dedicate sabbaticals and long-term volunteers like Laurie Wilmot and Bharathi Ram, as well as with university students as part of their technical writing curriculum and with live documentation and conversion of our APIs to Swagger format through GSOC. 

Primarily we have engaged with technical writers to draft functional documentation for end users and system administrators in configuring and using the Mifos X web application and mobile applications. For our Generation 1 Mifos 2.0 software, we worked extensively with the FLOSS Manuals community to create and maintain documentation, leveraging the entire community to assist in the review process. As new features were rolled out, volunteer, Bharathi Ram would  create the user manual based on functional specs for each new feature. You can learn about this experience at https://mifos.org/blog/star-contributor-month-bharathi-ram-donnie-tuck/. Documentation would then be tested out and used as the basis for instructional videos and user acceptance testing. For our Generation 2 Mifos X software, volunteer Laurie Wilmot took on the major task along with several university students focusing on technical writing to create our entire Mifos X manual.  Read https://mifos.org/blog/star-contributor-month-laurie-wilmot/ to learn more. We had to focus deeply on the information architecture to ensure that the manual was created to both cater to administrative users configuring the software as well as staff using the software on a daily basis. Through GSOC, GCI, and with volunteers in general, we have worked in improving our technical documentation, especially our installation guides and manuals including working with an Outreachy intern, Lydiane Kengne, to convert our User Manual to Gitbooks format. 

Our major learnings from these experience has been a clear process and goals for the documentation to be produced, extensive understanding of the use cases being supported and what the technical or functional user is expected to do, maintainability of the documentation and ease of access, as well as testing with end users to ensure the documentation created is accurate and allows the user to create their desired task. 

Previous participation in Season of Docs, GSOC, etc

The Mifos Initiative has a long track record in participating in programs like Google Summer of Code and Google Code-In.


We participated in the 2021 Season of Docs. The final case study can be viewed here: https://docs.google.com/document/d/1sPCefxjx8aPAOhq3UKyJ9t5LPu71rJ9eSqY6qndi3qY/edit


We will be participating in Google Summer of Code for the 10th year in 2022. In 2020, we graduating 17 interns in the last GSOC program we participated in. These open source programs represent a critical growth engine for our community as described in our Endless Summer of Code video: