SlideWiki Developer Hackathon V3 : Summary Report
Normally we work in different places, time zones, and on different days, but the hackathon allowed us to easily collaborate as a group or in small teams and efficiently and effectively focus on a set of tasks and goals for three days. During the hackathon we worked together to learn about the technical details of the SlideWiki system, improve SlideWiki, design and create new features, and make future plans. We also evaluated and brainstormed on our current development, decision, and communication processes.
This is a pictorial summary of our 3-day SlideWiki hackathon which took place at the Vrije Universiteit Amsterdam on 22-24 February 2017:
There were 19 people from SlideWiki ›$DevOps team who attended this hackathon.
The main change comparing to the two previous hackathons was attendance of four master students who were interested in the project and were contributing to the project in the context of their master projects.
The hackathon started by a quick demo of developer’s work in the last six months, a warm-up coding test and then an overview on the hackathon program to get started.
Our teamwork really started by a Scrum-style stand-up, where each developer briefly addressed the progress of tasks or user stories s/he is in charge of, any help s/he might need or give, and plans for the rest of the day.
In the next session, Ben gave a presentation on Story Owner Duties where he presented best practices to manage user stories and also how to organize stories and tasks on JIRA.
As a follow up to this session, Klaas Andries presented the current status of features, user stories and micro-services performing a comparison to SlideWiki 1.0 features to investigate what still would be needed in order to migrate SlideWiki 1.0 content to SlideWiki 2.0.
After this session, Ali gave a presentation on dynamic importing, lazy loading, and code splitting/bundling approaches on Webpack to optimize SlideWiki frontend code. We discussed possible strategies for optimization which will be further discussed on our developer’s blog.
The rest of day was spent on pair testing and programming to achieve our goals for February sprint release. In particular, we looked at the custom logger functionality, HTTPs issues, Docker deployment, etc.
On the second day we again started with our stand-up, where we shortly told what we did on the first day, if we needed help or could help others, and what we will do this day.
Next Kurt gave a presentation on the Security of our APIs (Application Programmers Interfaces). Security is an important quality of our system that we should always keep in mind during design and development. Kurt presented an improvement in our system, involving the use of Kong, and a planning for the implementation.
We use many tools and libraries during the development of SlideWiki, and we are always looking for new and better tools and libraries to improve SlideWiki and the efficiency and effectiveness of our development efforts. Ali organised an interactive session to review our use of libraries and tools, and to identify new tools and libraries. This also includes tools and libraries for users of specific operating systems and for deployment and monitoring of SlideWiki.
Next Sole gave a presentation on how to integrate react-semantic-UI in SlideWiki. We currently use Semantic UI for styling of our front-end pages, however, react-semantic-UI fits better in our system architecture which also uses React. We expect that react-semantic-UI will be faster and improve accessibility, however, complete integration of react-semantic-UI in our system takes a lot of development time. Sole proposed several strategies for integrating react-semantic-UI in our system, including a rapid integration by rewriting existing code in a dedicated sprint, or a gradual integration. We agreed on the later option.
An important part of our Agile development methodology is our reflection on our communication, relationships, tools, and process. We reflected on this during a retrospective session organised by Klaas. Each developer provided anonymous feedback on post-its about what went well and what could have gone better since the previous retrospective in terms of communication, relationships, tools, and process. Moreover, everyone suggested improvements – concrete ideas that we can execute.
For our lunch we relocated to the top of the main building of the Vrije Universiteit, in order to gain an overview of our surroundings in Amsterdam and our development of SlideWiki.
An important benefit of a Hackathon is that we can be together to directly solve problems and implement new features head-on, e.g., by sitting together behind one screen (pair-programming). A large part of the hackathon is reserved for these activities as we experience that they are highly-effective. This is what we did most of the afternoon, and we especially worked on implementing the use of HTTPS (secure Hyper Text Transfer Protocol) in our microservices and platform.
We started our third day with our stand-up, shortly informing everyone what we did, if we need help, and what we will do this day.
Next Roy organized a discussion on the requirements for the semantic annotator which we have been working on the past months together with Antje whom presented how automatic semantic annotation is being achieved via NLP (Natural Language Processing). Antje discussed several design alternatives and possible challenges in the implementation.
We make use of Github by creating branches for development work on specific features and bugfixes. After the code is reviewed and the feature is checked on several qualities (usability, accessibility, performance, etc.) it is merged into our master branch which is deployed on our experimental server and once a month on the stable server. In this session Ben and Klaas went through all branches to see if there were any inactive or stale branches that could be removed, in order to keep a clear overview of the branches.
Next we continued to directly solve problems and implement new features head-on by pair programming, discussions, and individual work.
Ali, Ben, and Abi had a breakout session to discuss and implement the banner on slidewiki.org that announces a new version will be released soon.
Next Ben and Klaas presented the retrospective results – especially our team spirit and the help we give each other went well. Several developers indicated during the retrospective that the length of discussions and speed of decision making could have gone better. Many developers identified improvements in our documentation practices – we will take concrete actions to improve documentation in the next sprints.
The remaining time this afternoon was spent on pair programming, discussions, and individual work.
Report by Ali Khalili and Klaas Andries de Graaf