Background
- The company’s server monitoring solution, onTune, provides real-time performance monitoring charts but lacks a visualized dashboard.
- With increasing client demand for dashboards and the need to maintain competitiveness within the industry, the development of a dashboard became necessary.
- Several attempts were made, including hiring freelance developers and a full-time web developer for independent development, but these efforts were unsuccessful.
- To resolve this, a dedicated team for dashboard development was created, and new team leaders and members were hired to focus on building a web-based dashboard.
- At the time, I was preparing for a career move to enhance my IT experience. Through a headhunter, I was introduced to this newly created role as project manager and team lead for the dashboard initiative, which I then joined.
Preparation
(2021.01~2021.05)
Individual Contributions
- System Analysis: Analyzed the current system status.
- Competitor Analysis: Reviewed the web dashboard trends and examples from competitors.
- Benchmarking: Investigated advanced technologies and benchmarking cases.
- Development Planning: Defined the development stages and scope of work.
- Project Direction: Planned the development direction and outlined future tasks.
Environment Setup
(2021.03~2021.05)
Team Formation
- A team of four was formed, consisting of one existing web developer and two newly hired team members.
GitLab Enterprise
- Introduced GitLab Enterprise.
- CI/CD Setup: Established a continuous integration/continuous deployment (CI/CD) environment.
- Sprint Development: Implemented milestone-based two-week sprints to track progress.
Development Environment:
- Front-end: React.js
- Back-end: Java Spring Framework
- Database: PostgreSQL
Preparatory Work
- Created a detailed requirements specification and functional point analysis.
- Drafted business process flows and entity-relationship diagrams (ERD).
- Introduced Notion to share development documentation.
Development Progress
(2021.05~2021.12)
- The project followed a sprint-based methodology:
- At the end of each sprint, progress was shared with stakeholders, and feedback was collected.
- The team was divided into back-end (2 members) and front-end (2 members), with tasks assigned by issue.
- I managed the project and contributed to back-end development.
- Code integration and automated deployment were executed to implement CI/CD.
- Alpha and Beta versions were successfully developed.
- A production deployment environment was set up for QA testing.
- A user manual was drafted.
Outcome
- After the beta release, testing was conducted with two clients.
- Demonstrations were carried out with the technical team through QA.
- Plans were made to enhance the development and establish an Open API.
However..
- In January 2022, the company shifted its business model to focus on product line diversification. I was appointed to a new role to develop new modules and work on the engine development of the existing AI prediction module. As a result, I stepped down from the dashboard team lead position and my role changed.
Efforts to Improve Development Culture
I joined this company primarily to lead the dashboard project. Given that the company specialized in developing monitoring solutions, I expected a startup-like development culture to some extent. However, the reality was different. Development and operations were completely separate, and there was more friction than communication between departments. Furthermore, no CI/CD environment was in place, and internal documents were shared via Excel files in shared folders or through emails.
As a new hire, I couldn’t transform this development culture overnight. Instead, I focused on improving the development culture within the team I managed, hoping that these improvements would eventually expand company-wide. My key efforts included:
- Introducing DevOps Practices: I took on a role akin to a DevOps intermediary between development and operations.
- Implementing Automation: Introduced GitLab CI/CD for automated development and set up an Agile development project with sprint cycles.
- Improving Documentation: Brought in Notion for document sharing and management.
The results were positive. Although I no longer managed the dashboard team or served as team lead, the company’s development headquarters began transitioning toward integrating development and operations through DevOps practices. Additionally, all development documentation is now managed through Notion, which has improved documentation management and increased development efficiency by approximately 30%.
Anyone could have done this, but it wasn’t just about managing a project or a team. It was the first attempt to improve company-wide processes, which laid the foundation for future process improvements within the development organization.
The Challenges of Leading a Failed Team
When I joined my current company, my role extended beyond managing the dashboard project. I was also tasked with leading a newly formed team and overseeing team member management. While I had experience managing projects, I had never held a formal team lead position before. Acknowledging this, I placed great emphasis on communication with my team to compensate for any gaps in my leadership skills. I aimed to foster a horizontal, rather than vertical, structure in which team members could freely exchange ideas to drive the project forward in a positive direction.
However, in the process, I overlooked two key aspects:
- Over-involvement in Tasks: In my enthusiasm for the project, I became overly involved in assigning detailed tasks from A to Z. While my intentions were to provide clear guidance, the highly specific task allocation made it difficult for team members to contribute their ideas freely. Even though I was open to feedback and encouraged open dialogue, team members may have felt burdened by the expectations and found it challenging to voice their opinions.
- Lack of Empathy for Team Members’ Perspectives: While I believed I was considerate of my team members’ workloads and tried to alleviate their stress, I may have failed to fully understand how my actions were perceived from their standpoint. Despite my efforts to be empathetic, I missed the mark in some instances where I could have been more attuned to their feelings.
Due to changes in the company’s business model, we had the opportunity to hire additional team members. However, the executives decided that I should step down from my team lead position and transition to a new role focusing on responding to the business model shift. I believe this decision was a reflection of my shortcomings in leading the team.
Nonetheless, I view this experience as a learning opportunity. I have gained insight into what I lacked as a leader and what needs to be changed. Moving forward, I aim to approach my work with colleagues and clients from their perspectives, striving to build trust and be a leader who can connect with and support others effectively.