The Alexander Thought Leadership Platform is a web platform developed for the Alexander Forbes Research Institute. It gives serious thought to:
- The needs of South African and Africans in general, and
- What the financial services industry can do to address those needs.
This project had some specific requirements, the major challenge was to produce a complex hierarchy of articles which had three different types (publications, parts and chapters). While each type had some unique functionality, they also shared a lot of commonalities making them a prime candidate for polymorphic joins via an abstract class to cover the shared functionality.
The next challenge was a content managed focus adminstration panel. It was an easy choice going with ApostropheCMS because the WYSIWYG interface made the experience a lot easier for the content manager however they needed A LOT of flexibility with the content widgets because this platform would grow over time to encapsulate all the Alexander Forbes Research Institute publications as well as become an open platform to allow other external researchers add their content too.
In April 2019, the development of the Thought Leadership Platform for Alexander Forbes began. I took a different approach with this project, focusing on two major concerns that were causing some issues with previous platform development. Component Driven Development (CDD) and Technical project management within a SCRUM based project board on Atlassian Jira.
Component Driven Development
Hellocomputer had many projects that weren't getting managed using what is considered a standard within software development in general, this standard approach is called Component Driven Development and its the process of constructing solutions in small iterative steps at an atomic scale initially until you have functional components and finally a fully functional platform.
I decided to approach this project with a CDD methodology to ensure we built out our requirements in the following order:
- A brand specific user interface (UI) kit comprised of typography, buttons, cards, tags and other basic building blocks required to produce a web platform frontend
- A component library made up of reusable content and template specific components which are created using the UI kit.
- Unique and specific page templates utilising the template specific components to create their unique composition while also making use of content specific components to allow a unique content managed driven page
In all software development landscapes this responsibility needs to be understood by the entire team, this alignment is make or break in the delivery of something on time and on budget. Without it a lot of time is spent making adjustments to the same components in multiple places because a level of inheritance isn't applied nor is it understood.
Utilising SCRUM methodology with Atlassian Jira
In all fairness, this is always difficult to get right but Atlassian studio makes this so easy to follow. SCRUM isn't a complex process, nor is the sequential requirements of building any web platform. It's simple, you have an assembly line:
- Code review
- Functional testing
- Design testing
- Client testing
This is done at a small scale iteratively along the CDD pipeline, break the requirements up into smaller atoms eventually growing in scale to functional and visually specific components and pages.
Atlassian Jira provides the bedrock for this behaviour to be maintained across the production cycle, it is by far the most thorough project management suite of tools available for software development because it also extends to the code through branch creation directly off Jira tickets within the Atlassian Bitbucket repository for the project.