I spent 4 wonderful Months at UBS office in Aeschenplatz, Basel and as a Full Stack Drupal 7 Developer I joined a brilliant Team of other 10 people, 2 Senior Drupal Developer, 1 Junior Developer, 1 Front end, 1 project Owner, 1 Project Manager, 2 Business Analysts and 2 Testers.
The project was to create a new Drupal 7 Internal Web Portal to support all the UBS member of the staff to manage and follow all the Bank's processed during the entire Software Development Lifecycle.
Choose your Methodology
The idea is that when a Project is set up, the Project Manager needs to create a new Project inside the Portal, then he has to choose the SDLC Methodology such as Agile, Lean, Waterfall, Iterative, Spiral, DevOps, then has to set up all the Deliverables and Artefacts and the Start and End of the Project.
Estimate all your Activities, list your Tools and make a Plan
When the Project is set up, depending on the Length and Methodology, the Portal allowed to choose a list of available Activities (Tasks) and Tools to use for the Project. Each task was linked to Tools and Role (skills to achieve the deliverables). For example if you set up a 4 months Agile Project to implement a Drupal web site, it was requiring these minimal Tools: Jira, Gitlub, SERA, Jenkins and AWS, as Deliverable you have SERA report (for the requirements), Github repositories (for the source code), data base, test reports and as Team you will need to have at least these following Roles: 2 Developer, 1 Tester, 1 Project Owner and 1 Business Analyst.
Allocate real people to tasks and set up your team
Once you have the Project ready, then you have to set up your real project in Jira (Ticket Number) and create a team by assigning real People to the Roles.
The Drupal 7 Portal was completely headless and the front end was built in VueJS. I built many custom REST services to integrate the front end with the Backend. Users, Tasks, Projects, Deliverables were stored in both Jira and Drupal, the mapping was implemented using the JIRA REST APIs.
For example to assign a real person to a Role I did implement a custom REST APIs to create a relationship between the user in Drupal and in Jira and a Role in Drupal and Jira so that the users were shown correctly on the list of Activities on both Jira and on the Portal.
For example, if Pasquale (me / user) is assigned as Drupal developer (Role) on an Activity (Task): set up my SQLL database, then this Task must exist first in Jira and the the Portal pull it in through the REST APIs.
Use the right Tools
This Portal was not going to replace Jira, Github and Jenkins, but the purpose was to orchestrate together all the Tools, Tasks, People so that everyone knew perfectly on what was working each day, on which stage the Project was, the status of the deliverables (pending / started / review / completed), where to find Documents such as the Test reports, the Request For Change (RFC) forms, the Recovery and Back up Plans, the Change-Advisory Board (CAB) Meeting to decide how to deliver and giving advising on requested changes, etc..
Therefore to Deliver a piece of Software there are lot of Elements and Actors going on, it is essential for the Bank to have a high Overall view of what is going on otherwise the Project would become chaotic and nobody would know where to find things.
Create a Terminology to Define all your Activities, Role, Tools, Artefacts and keep Documenting, what is the definition of done?
We also had another Portal, which was the sister of this Portal, a kind of Wikipedia of the Bank SDLC with the list and definitions of all the Methods, Activities, Role and Artefacts to deliver inside a Project.
Therefore before starting a new Project, we need first to define our terminology and Methodology, define all our Activities, and define exactly all the required Check Points that are required before an Artefact can be delivered.
Define all your constraints and Checkpoints
For example when doing an RFC for deploy the code to Production you need at least these 2 check points:
- Test Reports
- CAB Meeting for Approval
If nobody has tested it and nobody has approved it, then the Artefacts cannot be deployed!
Day to day activities
In order to achieve the success on the implementation of this Drupal Headless Portal, my day to day Tasks were:
- Continuous integration Tools such Jenkins, GitLab and Jira.
- Full stack technology: Php / Drupal 7 / MySQL / VueJS / jquery / REST APIs / HTML / CSS.
- I liked the VueJS technology and the challenges and solutions that involved.
- Using my range of expertises to set up new custom REST APIs using the service contributed module.
- Research and use always latest technologies, champion innovation as a technical expert.
- Follow the PSR-2 Coding Style Guide, best practices and processes in Delivering Code.
- Code was reviewed thorough pull requests and Deployed and Built Automatically in Jenkins.
- Data Base Design and Building new Custom REST APIs for Integrating Drupal with JIRA.
Among all different challenges I was efficient in communicating and co-ordinating the tasks with different people across different teams and technologies. Starting from implementation of Spikes to prove concepts to the Business, collecting new requirements and doing the functional and technical Data Base designing for new Custom Entities, Custom Modules Architecture and creating all the Back-End CMS Management screens in a very proficient Drupal 7 full stack role.