Half a year of progress
This blog-post will hopefully be a first in a more regular habit of publishing blog posts reporting about updates, changes and milestones achieved within the development of the system.
This report will coincide with me, Derk Snijders, ending my term as headoffice IT assistant, however this report is written from this project's perspective.
Overview |
---|
Project
Project Plan
Pretty much all that is listed below project as an achievement has been defined, explained and backed up with argumentation in the project plan. This document is the biggest improvement on a project level, describing a vision, processes, analyzing risks and tasks to be done.
Historical analysis
A historical analysis has been performed, gathering all the older files (documentation, design, discussions) and extracting all this data into comprehensible information.
Newcomer experience + development workflow
The newcomer experience, the effort and time it takes to get into the project, was pretty non existent before. There was little documentation, a lot of it that was there was outdated and scattered, installation of the system was hard to get working, lot's of weird bugs and nearly nothing like a landing page that we have now. In addition to the landing page, effort has been put into streamlining joining of the project with the use of a form, some slack bots/tricks and personal attention to everyone that showed interest in the project in order to get them started. The installation procedure has been greatly simplified and stabilized and a set of tutorials has been made to quickly get you somewhat started with the system. Development processes and guidelines/tips have been defined, including usage of tools.
Awareness + Involvement
Having a better newcomer experience, focus was once again put into getting people's attention and awareness of the project. An open online meeting was held for everyone interested within AEGEE in addition to an email sent out to all members a banner at the top of intranet, Agora presence and promoting and personal promoting by the people involved already. People were told to visit the Landing page and fill in the form which resulted in quite a useful list of people interested to help. Having filled in the form people received a slack invitation and personal attention as described above. In the end awareness was raised, awareness to involvement conversion was, however, lacking.
Team workflow
The workflow within the team has been greatly improved following industry-standard software development techniques. Through a more clear definition of the Git workflow and usage of JIRA and a definition of slack vs JIRA vs Confluence vs Git and, not unimportant, overseeing of a project manager teamwork and general project progress has been improved and stabilized. Discussions are more fleshed out and results/design decisions are documented with reasoning and code quality and as a result software stability and quality has been improved.
Tool setup
The setup of the various tools used throughout the project have been improved, setting the correct settings for JIRA, Confluence, Git and Slack, improving workflows, rules, possibilities and access, promoting good practices and limiting possible user mistakes.
Technical
Documentation
Documentation has been added to almost every part of the system, starting with defining and documenting the architectural design, showing an overview of microservices that are in development or proposed, documenting requirements and documenting important design decisions. The documentation for the core has been updated as well.
Design
As a result of properly documenting the design (decisions) for the project, issues and gaps within the earlier design of the system have been exposed and addressed. The requirements have been improved, to be more technical, and have made more complete. The database structure of the core has been refurbished and several new organizational concepts such as circles and permissions have been discussed.
Milestones
Several milestones within the project have been hit, including the following:
- A push to the develop branch of oms-core: (June, 8th)
- Integration with the microsoft graph API (June, 19th)
- Starting Microsoft Office 365 Integration tests (June, 19th)
- An update to the live version on fraktis.aegee.org:8081 (June 21st)
- Automated integration tests (July, 13th)
- Moved to https://oms.aegee.org (July, 14th)
- Single command deployment (July, 17h)
OMS-DOCKER
The effort it takes to install the system has been greatly improved. Upgrading the docker files and setup of the several microservices with the system with the added help of some helper scripts installing and running the system is now as easy as entering 3 commands into a terminal. Additionally the `dev` branch of oms-docker has been stabilized and automated deployment has been put in place on oms.aegee.org. Dependency handling is improved and the log is once again clean, without any major error spam. All of this can be clearly shown on Travis, where automated testing was put in place, showing a full, clean, install. Additionally a reverse-proxy load-balancer and health check service called Taefik has been added to the system which will prove to be especially useful in the future.
OMS-CORE
Matured the prototype
The prototype of the core that was present half a year ago has by now been almost fully replaced, learning from what worked and what did not work in the prototype and converging the functionality to the needs of AEGEE. The core has been stabilized as well, some legacy code still remains and there are also plans to fully decouple the frontend. The core also has full automated testing.
REST API
The API of the core has been adapted to the by now industry standard that is REST, offering easy and full integration to any service that might want to make use and extend on the functionality that OMS offers. The new API can be seen here.
Database
The database schema of the core has been updated after some healthy discussions. It now has a more abstract representation of the organisation using bodies and circles and supporting long overdue requirements such as memberships of multiple bodies.
Microsoft Office 365 integration
Integration with a service such as Microsoft Office 365 had been planned for a while already and the finishing hand has been put on recently: the core can now talk to and integrate with Microsoft Office 365 using the cutting-edge Graph API. For now this is limited to creating accounts and sending emails, but further integration is planned, the setup part has been done and the road for further integration is set. It is worth noting that this has been implemented in such a way to not be dependent on a service such as Microsoft Office 365
Permission control
One of the major flaws in the earlier core prototype has been the permission system, this has been extensively researched and discussed within the development team. Requirements have been drawn, design ideas documented, and an aspect oriented PHP framework has been installed as an proposed implementation technique. While not ready just yet, this system is set out to be extremely flexible and able to handle all possible organizational quirks that AEGEE has.
Software updates
Pretty much all the software that the core is relient off have been updated. PHP has been upgraded to 7.1, Laravel has been migrated to version 5.4 and other dependencies such as a transliteration service using PHP-intl have been added. No old technologies to be reliant on, the core should be ready to withstand the test of time.
OMS-EVENTS
To be added by the oms-events developer.
Future steps
While, personally, I find it hard to not get excited about everything that has been achieved the past half year, the future holds even more excitement.
Microsoft adoption
The final decision to commit and to fully invest in utilizing the Microsoft Office 365 service has yet to be made, although looking very promising right now. Utilizing these services would instantly boost the services OMS would be able to offer, allowing easy chat, videocalls, file sharing, file editing, work updates and so much more for everyone within AEGEE. The first alpha tests of rolling this out using OMS has already been performed and a network-wide upgrade could be around the corner.
Collaboration
Having the system fully open-source under the Apache 2.0 license has an advantage: everyone can use it, everyone can contribute to this. To this end we have been in touch with other organizations such as ESN about possible options of working together on the system, cutting development time for both parties involved. Additionally this could make applying for grants in order to have some financial resources available much easier. Finally, even though a HR analysis is in progress, this could help us with the HR problems that have been troubling the project so far.
Continuity
While I, Derk Snijders, will leave Brussels in a few days time and as a result likely have less time to spend on the project, my greatest effort has been made in achieving continuity with regards to the development of the OMS system. The project plan is the main resource for this, in combination with raising awareness, detailed stakeholder reports, an HR analysis and a proper knowledge transfer to Fabrizio Bellicano (who will be CD IT responsible, having already been involved in the OMS project). Finally a strong focus on documentation, including future tasks - GENERAL-107Getting issue details... STATUS , should tip the tides: The project seems to have the brightest future as of yet.
Resolved issues
Merged pull requests
New issues