Xtremax is an established, award-winning digital solutions agency.
Since 2003, we have grown into a strong strategic business partner with various government bodies, large organisations, MNCs, local businesses and educational institutions.
Today, Xtremax is a large family network of over 300 professionals across the region, including Singapore (HQ), Bandung, Indonesia and Kuala Lumpur, Malaysia.
With a vast portfolio of creating top-notch digital applications and our commitment to interactive design, strategic content-planning, continual innovation, and leveraging the latest technology, we are committed in delivering excellence to our clients.
Here are some initiatives to ensure good code quality is achieved:
Developers must create the technical design (ERD, flow diagram, etc) and must pass the Solution Architect review before can start the development
Developers must follow the convention code created by Solution Architect, documented on Company Confluence
Developers must ensure to update the documentation for developing new or updating the feature
Adopt the Git workflow
All the code needs to through the "Pull Request" (PR) before being merged to Master (Production) and must pass the testing first in the Development environment. The PR will first be reviewed by their pairing before proceeding to Team Leader.
The CI pipeline is integrated with the Security tools scanner (SAST - Sonarqube dan SCA - Owasp Zap)
Some projects are ensured to have unit tests, and the process of CI build must pass all the unit tests
Conducting the Security (VAPT, SAST by AEGIS) and performance test (simulate high load in production, to ensure the system can handle the high load) in the Agency environment before going Live
Adopt the microservices concept, 1 of the purpose is for high maintainability (preventing spaghetti code, and big chump of code)
Center of Excellence (CEO) is Xtremax's internal solution to spread technical innovation and improvement and is responsible for encouraging company-wide improvements both in technological advancements and delivery in the technology sector.
COE's team consisted of Xtremax Solution Architects, Subject Matter Experts, and Managers, which are compiled as an Xtremax committee that will handle the technical innovation and improvement responsibility process on Xtremax.
Every technical design (architecture, diagram flow, ERD, etc) is reviewed by the COE, any team leader can raise the ticket request to research the technologies.
All the development and fixing of bugs is done on the Xtremax environment.
We adopt the Git workflow (feature/bug fixing, development, staging, Master/production branch), and 2 environments: 1) Development (testing and trial feature) and Release (the environment for regression test before deploying to agency environment)
All the bug of development ticket track on Atlassian Jira (1 Jira ticket for each bug/product backlog)
The release is done per batch (define the list of Jira want to deploy)
The developer must test all the fixes on the Xtremax development branch, after passing Pull Request(PR) to Release for code review. The CICD (Bamboo) will build and deploy to release the Xtremax environment.
The QA team will manually conduct the test in the Xtremax environment. All passed tickets will be merged into Master.
The deployment to Agency will run the Agency CICD
Leverage the log monitoring (AWS Cloudwatch, Grafana etc), and build a custom module to send the email notification when the code throw error.
Have the Service Level team track and escalate the bug, and monitor the health check
We leverage on Linktiger to monitor the public website
Adopt the 5 Phases of Project Management Cycling
Quarterly ask the feedback from customers, and customer satisfaction for the system built enhancing the business process (how much they feel the digitalization)
Send the project report regularly to the Customer (the frequency is adapted to the Customer needs, by default it is monthly)
We help one another in our day-to-day product work regardless of their team. Using Microsoft Teams - team channel as the forum to post the issue and discuss cross team and cross department. For example developer facing the networking issue can raise the thread to ask the infrastructure team. People acknowledge and thank each other for their contributions to the forum.
Each employee can raise the impediment they face based on the project and company hierarchy structure. For example, team members can raise the difficulties to the Team leader, and the Team Leader can escalate the problem too to the Project Manager.
Customers can report the bug by sending an email or contacting the service desk for urgent issues. The service desk will track all the bugs reported on Atlassian Jira. For every bug ticket reported by the customer, we will determine the priority and urgency level according to the Service Level Agreement (SLA). For example, urgent/incident bugs must be solved in 4 hours, and medium bugs must be solved in 2 Days.
Xtremax developers' library built using the Microsoft .NET service called Xbase. Xbase provided all the general common function and service that is ready to use (e.g cron job, Identity provider, audit trail, connection to RMQ etc), helping every project have an early start.
Team regularly do the ice-breaking by doing the activities together (e.g hanging out or playing games) and the frequency depends on the team. The HR itself conducts the event like company dinner, sports activities, celebrating the company celebration, national day etc
Internal Promotion & Mobility
There are 2 clear career progression paths and criteria:
Focus on technical skills (the goal is to become a subject expert or master, solution architect)
Learning the management skills (become the Technical Lead)
Each team member needs to determine their career path and review it quarterly by matching it to their Objective Key Result (OKR). HR will accumulate the point based on the OKR result assessed by Team Lead, and inform Team Lead if the point accumulated is enough to promote it to the next level.
Outside of the points, Team Lead can raise the request to HR for promotion by justifying too, and the request will be reviewed by the Manager.
In addition, employees can request to change their role if they feel the current role does not fit with their passion. The process of interview and examination must be passed before they can change the role.
Every developer has a minimum of at least one pair of programmer
Each pair can discuss to create the design and solve the issue design and give feedback to each other
The developers must ask their pair to review the code at "Pull Request"
Rotation of pairing partners depends on the module or project developers involved
Internal hackathons, and biweekly sharing sessions that cover the technical aspect (usually for developers) and soft skills too (for all departments)
Xtremax have own wiki that contains the SOP, best practices, and technology research results as references for learning
Xtremax encourages employees to take the certification exams. Depending on the role, it can be like non-technical certification (PMP, scrum master, AWS cloud practitioner, etc), and technical certification (Kubernetes, AWS Solution architect, etc). The certificate fee is borne by the company.
For every Project Go-Live, the team must create the AAR on the Xtremax wiki, put the project information, what impediment facing during the project cycle and opinions on how to tackle them. The Project Director, Project Manager, and the project team will discuss together how to tackle the problem and put as reference actions need to do for the next project (The result are best practices or SOP)
As the project team that adopts Agile, they do the sprint retrospective too, and still, do AAR when go-live.
On gathering the feedback determined by each team member (Company hasn't got any SOP), usually, the team member is briefed as to open and give any feedback and has the mindset, not for blaming anyone. If the team member not comfortable sharing on the team, they can communicate privately with the Team Leader.
Continuous Feedback Loop
HR will share the 360% feedback form and encourage everyone to minimally give feedback to 4 people (not mandatory). The feedback giver's name will be anonymized.
After that, HR will consolidate all the feedback for each person and put it on their Self Review Document (containing the feedback given) and only accessible to HR and each individual. Each individual must assess their performance and what they think can improve.
<div>Using the git workflow, the developer and release branch are integrated with the CICD tools (Xtremax use the AWS Codepipeline or Bamboo). Every new commit will automatically trigger the CI build, and every CI success will automatically start the CD pipeline.<br><br>When it comes to deployment to the Agency environments, depends on Agency infrastructure (some agencies have their CICD and GIT, while others provide the CD while the CI process does on the XTR process) </div>
<div>Conducted on the Pull Request git, Team Lead and Mentor will review the pull request in the GIT. for the major code review we use the Atlassian fisheye too.</div>
<ol><li>During the requirement gathering (RG), the Business Analyst (BA), Solution Architect (SA), and Technical Team Lead will discuss together to propose the solution. The result is a Functional Spec (FS) and high-level technical implementation. The FS will review with the Agency Product owner, while the Agency IT department will review the Technical Solution.</li><li>After the FS and High-level Technical Solution are finalized, SA will discuss with the technical team lead and developer to construct the complete technical solution. </li><li>The developer will create several technical documents (ERD, TAF, etc.)</li><li>The team lead will do the review, followed by SA.</li><li>The finalized tech documentation will be reviewed by the Agency IT department and signed off.</li><li>Developers begin developing the system based on all technical documentation that was signed off. </li><li>The team lead will review the code.</li><li>The QA team will do testing on the Xtremax environment for every feature ready to test. </li><li>Every feature that passed testing on the Xtremax environment, will be deployed to Agency Environment QA. QA team will conduct the testing. </li><li>For every feature on Agency Environment QA, the Agency will be informed to conduct the UAT.</li><li>For every feature passed on UAT will deploy to production.</li></ol>
<div>For every bug ticket, the Service Desk and Developer will determine the Priority and Urgency ticket based on the impact of the bug. The priority and urgency will communicate to Agency for approval. Every Priority and Urgency has the Service Level of Agreement (SLA) that need to be met, based on Xtremax and Agency Agreement.</div>
<div>Employees start their 3-month probation and follow the New Employee Orientation (NEO) training (the material depends on each team). They are paired with a mentor to help if they got questions/issues.<br><br>Every month, the team lead will do the performance review. In the third month, the team lead will determine whether to pass the new candidate, extend the probation, or reject the candidate. The result is given to HR, and HR will discuss it with the manager for the next action.</div>
<ul><li>Team members need to update first the status task on Atlassian Jira.</li><li>Project team will conduct daily meetings (can be once or twice) to discuss the progress and for team members to discuss the impediment facing.</li></ul>
<div>The team Lead and developer will break down the task in Smartsheet and provide estimations and a target timeline for each task. The timeline will be reviewed by the Project Manager and communicated to Agency for approval.</div>
<ul><li>Each project has been going live and will create the AAR </li><li>For the team to adopt an agile methodology, we will do the sprint retrospective on every end of the sprint</li></ul>
<div>Every team will have the Project Executive (PE) keep to the timeline and follow up with team members' status and progress. For every task potential to delay, it will communicate to the team lead for the solution. The team lead can escalate to the Project Manager for the task that is potential delay and cannot meet the target. The project Manager will inform the Agency of the delay and reason and the proposed solution (e.g. new proposed timeline).</div>
<ul><li>Team leader will create Object Key Result (OKR) quarterly based on the Company's direction and objectives. </li><li>Team leader will disseminate the OKR to engineers at the start of the quarter. </li><li>Engineer needs to meet the OKR and put the result at the end of the quarter </li><li>Team leader will assess the result and conduct 1:1 with the engineer</li></ul>
<ul><li>For every project that has gone live and on a maintenance state, the team lead can inform the Project Manager to rotate some engineers to other projects.</li><li>The engineers can request personally to the team lead to rotating to another project. The team Lead can approve the request or discuss with the engineer if the team lead thinks still need help or waiting for the new engineer as a replacement. The engineers need to hand over the knowledge to another engineer.</li><li>The employees can request to change their role if they feel the current role does not fit with their passion. The process of interview and examination must be passed before they can change the role.</li></ul>
<ul><li>Burn Out</li><li>Higher Benefits (Salary, bonus, etc) on other company</li><li>Engineers did not feel the life balance</li><li>Engineer not comfortable with the team, even already rotated to several teams</li><li>Engineers want to find new experiences in other company</li><li>Engineers want to work together with their friends in other company</li></ul>
<ul><li>Each team member needs to determine their career path, and review quarterly (matched their Objective Key Result <OKR>). HR will accumulate the point based on the OKR result assessed by Team Lead. HR will inform Team Lead if the point accumulated is enough to promote to the next level. Outside of the points, Team Lead can raise the request to HR for promotion by justifying too, the request will review by the Manager.</li><li>The team lead can request additional manpower from HR. HR will discuss with the Manager to determine whether to rotate the developer from other teams or hire new employees.</li><li>Quarterly, HR will ask the team lead and project manager for the estimation of resources. HR will discuss with the Manager the need for rotation or hiring new employees.</li></ul>
<ul><li>Every quarter conduct, 360-degree feedback to give feedback to each other</li><li>Team members can give feedback outside 360 degrees anytime. If the team member is not comfortable giving directly to the other team member, can consult to Team Leader</li></ul><div><br></div>
<div>At the end of every project, we will do the Action After Review to discuss what the team can improve on, and it will become the reference for the next project.</div>
<ul><li>For documentation and SOP, the team can create the new Wiki on Atlassian Confluence</li><li>Teams channel on Microsoft Teams </li><li>Communicate with each other for a specific ticket in Atlassian Jira</li><li>Starting to utilize Trello for brainstorming the idea</li></ul><div><br></div>