by Albert Avetisian, Baruch College 2015 and IBM Software Engineer
Hello CUNY Tech Prep! I’d like to introduce myself and share with you an interesting journey I embarked on with a few of your colleagues / techies / friends!
I’ve had the honor of meeting and getting acquainted with some of the students and staff at CUNY Tech Prep, but let me start with a quick backstory. I graduated from Baruch College in 2015 with a CIS degree and now work as a Software Engineer at IBM. I started getting into programming in middle school and have been digging and dabbling ever since. My focus shifted from software to web development to business to design. As I got more into the technology, I found myself always thinking about the user and the bigger picture, which got me into design and business. I strive to collaborate with people across different specialties. Currently I work with project managers, developers, testers, user researchers, UX designers, and more.
Alright. Fast forwarding a little. About a year ago, a club I was working very closely with (Hack for Baruch) started gaining traction at school. We organized events, and I presented a workshop there on front-end web development. On the day of that workshop, I was introduced to Jessica from CUNY Tech Prep and told her how eager I was to do what I can to advance the CUNY tech scene. From there, I helped interview the first round of students (some of you guys!), and stayed in the loop during your first semester.
Now jump to this winter (2015). At the end of December, I approached Jessica with an idea: “Do your students want a challenge? Let’s make a mobile app in one month.” I wanted to see if we could assemble a small group of motivated students, come up with a product, ideate and collaborate, and develop an app just over the winter break!
Working full-time as an engineer for the last 7 months has taught me so much about work processes, the software industry, how to operate in a project, and how to be efficient. Embarking on a project with a group for the winter would give me an opportunity to share what I learned and for me to learn more about working with others.
We jumped right into it after the first week of January. Our first meeting was in a start-up’s unused conference room where we introduced ourselves and started trying to ideate. This was one of my favorite parts of the month. I figured if we came up with the idea for the app together, we’d be more engaged in developing it because we all would have a real stake in it, rather than me just telling the team what to do. I started us off by talking about other popular applications that we use daily. We talked deeply about Snapchat, Instagram, Yikyak, and other apps, trying to analyze what elements may have been the catalysts for their success. This was my first time doing an exercise like this, but this type of analytical thinking is something I’d look to employ in most questions moving forward. We mapped out the concepts that we thought would be most effective, then dove into different areas of interest. We thought about a video sharing app, photos, then music. After ideating, shooting out ideas, and taking notes, we decided to make an app that would tap into “shy” singers. We wanted to make an app that helps users stay anonymous, while safely (and publicly) posting short recordings of themselves singing for feedback. The main idea was for listeners to focus on the voice (like The Voice, hah), rather than on the visual qualities of the singers.
After coming up with the idea at that meeting, we branched off into our own zones of research, as it was the first time the team was developing a hybrid app. I tasked us all with digging for examples, finding tutorials, and learning what we could about Ionic. We scheduled our first Scrum that weekend.
Scrum is a technique of the agile methodology that is used to provide quick and concise updates to the rest of the team. It took us awhile to get into the flow of a good scrum, but after a couple, it was second nature. We breezed through our updates in 10-15 minutes in true agile nature. This allowed us time to expand to code reviews and retrospectives during our meetings.
Retrospective meetings is another technique of agile. We used them to reflect on the process, rather than the product or what we developed in the past week. We had a retrospective meeting once a week. Our retros consisted of me asking the team 3 questions: what went well, what didn’t go well, and what can we do to improve in the next sprint? I found this to be super important for the improvement of a project. It’s a clear way to give the whole team a platform for raw feedback on adjustments they think would make them more efficient. I took notes on all these meetings and housed them in our Github repo so that we can reflect on them.
Code reviews were another crucial meeting type that we used when development started gaining some momentum. We used Appear.in, a free video conferencing tool that offers screen-sharing capability. We’d all hop into a meeting room (that I’d spawn straight from our Slack channel) every Saturday, run through our scrum, then start sharing the code we were working on — either for review, or for help from the team. We’d catch bugs, suggest refinements, rework components, and confirm and commit.
Overall, the process was a continuously changing one.
Being agile, quick to adapt, and iterative is crucial in the software industry today.
Projects requirements are ever-changing, environments are unstable, and teams will need to course-correct. Because of this, teamwork, collaboration, and vision is absolutely necessary. I believe the team truly came together to achieve something great!
I want to thank the team — Mariya, Himanshu, and Yusef — for such a dedicated effort. The experience we all gained from the month of January is something I don’t think we could have achieved any other way. I’m so proud of the work we did. This is only one small story. My hope is that this experience will inspire like-minded folks to undertake projects like these — projects that mimic real life projects, to truly take advantage of time and the resources around them. As you all near the conclusion of your “structured” education (school), it’s CRITICAL that you also look relentlessly for unstructured learning opportunities.
With that said, I wish you all reading this the best of luck. Work hard, get out of your comfort zone, and make something tangible.
Proof in tangible experiences is irreplaceable.
Albert Avetisian is a NYC-based User Experience Developer focused on bridging the gaps between business, engineering, and design. When he’s not pondering about the next big thing, you can catch him at his home studio playing with music production gear.