I joined a new team from the beginning of this year at one of our customer. This project is more complex compared with my previous work since it involves more team-members and larger environments. I learnt a lot from this project and I would like to share some experiences that helped me grow.
1. We work closer to the customer.
My previous projects involve very little communications with customers. The customer delivery did most of the work. Differently, the current project requires the customer and the development team working closely. We meet at least once per week, either face to face or online (due to the current COVID-19 situations), to gather the user’s feedback with the following aspects from different locations,
- User experience on current version of the product
- Bugs and critical incidents reported by service desk
- New feature requirements
Meanwhile the development team shows the progress to our customers. In my opinion, it is an efficient way to understand each other in both directions, and this helps us meet the customer requirements in time.
2. We work closer to the different teams.
My previous tasks require me working individually, while this project involves several teams with various assignments and co-workers from different time zones. That don’t cause us any trouble, since we find our way to work smoothly among the teams and individuals as follows:
- We start our job with a scrum daily, and it triggers my day by making a proper plan for myself and also keeping track of others’ progress.
- People in our team are nice and cooperative, we are willing to overcome obstacles together and share ideas with each other. When I was new in the team, I did the pair programming from time to time with senior members. The pair programming helped me to quickly understand the existing system and new knowledge.
3. We have stricter control of the code quality.
Code quality is important, as it impacts how secure, maintainable and reliable your codebase is. Particularly in this complex project, multiple teams can share the same repository. In order to improve the code quality, we have the code review and do the code refactoring. And I’ve gotten used to the “test-driven development” style, I realize the benefits of covering code by unit tests:
- Easy to troubleshoot if the codebase is broken due to a new submitting
- Easy for others to understand the code being tested
- Reduce the bugs and design flaws in the early stage
4. We have more comprehensive access to framework features and technologies.
It is always fun to learn new stuff. And I really appreciate that I have such an opportunity to learn AWS technologies by participating in this project together with awesome teammates.