by: Quynh Khong
While watching TV the other night, a familiar white cloud on a red logo flitted across the screen. The Adobe Creative Cloud mobile app had made its world debut on the new Apple watch commercial. It was hard to describe the excitement I felt seeing the product my team and I took part in getting into the hands of millions of users. Day after day, it gives me great pride and motivation to see many wonderful and highly creative projects made by our users using the Creative SDK components.
So what is a QE?
As a Quality Engineer (or QE), I test the tools and technologies that enable creativity. Our goal is to deliver a quality product to our developers in the shortest time with the least amount of disruption. This includes ease of integration, fast performance, aesthetic designs, and smooth workflow.
The Creative SDK team is one of the best teams I have ever worked with. We have great communication among team members; even though, our engineers are scattered across the map in London, New York, Colorado, Seattle, and here in the San Francisco Bay Area. We take advantage of tools like chat with Slack, Git for version control, Jenkins for continuous integration, Trello for backlog tracking, and many others. Our team has also adopted Scrum and agile methodologies. A typical sprint for us comprises of two weeks of active development and one week of build stabilization. Every member on our team meets once per day for fifteen minutes to check-in and report blocking issues, if any. We often break into smaller teams to brainstorm or collaborate on our tasks. Engineers are encouraged to explore new skills and dabble in unfamiliar areas of code. For example, within one year of joining the team, I have learned how to set up our CI build system, automate tests, and create many helpful tools to help with my daily tasks. If you’re familiar with software testing, it is a challenge for a black-box tester to adopt white-box testing. The team has built a bridge between the two worlds for me to safely walk across.
It is amazing to sit back and think of the entire process where we take an idea and breathe life into it. An idea can come from anywhere; a request from our clients, or even a hallway conversation. We would take that idea to our engineers, designers, or product management to draft a user story. The development team will make the decision on how to build and estimate the time it takes to complete. We can also break it down into smaller tasks and assign them to multiple team members. A developer starts coding in a feature branch and signals the QE when testing is ready. Code reviews will occur before merging to the project development branch. Testing is performed continuously via manual methods, unit tests, KIF, etc. Our release strategy includes Git flow method where we merge develop branch to a release branch for more testing before it goes to the master branch for distribution.
“Inspect and improve” is the key to our team’s success. After each sprint, our team will briefly meet and hash out what went well and things we need to improve upon. Most of these meetings happen online via telephone or video chat. Once in a while we get the whole team together in person for white board brainstorm or an engineering brown bag session. Everyone contributes by sharing new tools they think are cool, best practices, and other techniques. What’s great about this team is that every member is open to change and adaptation.
The thing that makes all of our hard work worthwhile is seeing what clients made using our products. Thank you for being a part of our Creative SDK family.