Interning with Hava.io

This week I started a part-time remote internship with a tech company called Hava! I am BEYOND grateful for this opportunity and am looking forward to lots of learning! With their blessing, I will be blogging about my experience with them every now and then, so I hope you'll learn a lot from this too! 

You may know by now that I've been studying diligently, "eat, sleep code repeat"-style, in hopes to make a career change as a developer very very soon. "Soon" as in I lost my job two weeks ago, needs to happen now type of soon. My original goal was to finish my online program and smoothly make the switch within the next year, but layoffs = plot twist! So now I'm at an unique point where I have learned SO MUCH, and I am ready to jump in head first to work my ass off and learn more. But I have no tech-related professional experience, which may be interpreted as an eye-sore to many companies. So again, I'm BEYOND grateful to gain some with Hava. Thank you, Hava, for giving a gal like me a chance! 

Hava is a startup company that developed a tool to help its customers visually map and manage infrastructures of their AWS. They have a small team of five people, and are based in Australia! Today I virtually met with the boss to discuss workflow, which is the bit I want to share with you today. Even though I have been living and breathing code for the past 6 months, beyond asking questions to my developer friends, this is the first time that WORKING as a developer has been explained to me in such detail. Of course, I suppose not all teams are the same. 

Every day, there will be a "standup" which gives the team an opportunity to talk about what they are working on, what they completed, and/or what they may need help with. It allows us to be aware of what everyone else is doing and what is going on in general. 

The team manages its workflow, stories, iterations, and tracks bugs via a tool called Jira. Every day I will reference its board to see what cards have been assigned. This is easier to describe as a physical chalkboard with post-it notes. Imagine a board with three to four columns on it: To Do, Work in Progress, To Test, and Complete. There will be tasks written down on the post-it notes (aka cards), which will be assigned to a team member (or a team member can voluntarily take ownership of one). As the team member works on their task, they will move their card into its respective column category, so we can all easily see what's going on. This scenario is done virtually with the help of Jira. The cards are also color coded to signify priority.

 I also learned about the differences between Agile and Waterfall software development methodologies, with Agile being the one that Hava prefers. In brief, waterfall development is a longer processes because chunks of work will be passed on from one major task/group to the next, and onto the next, until finally it's passed on to the customer. By time the customer is able to start using it, a lot of time has been lost because it will also take time for the user to form an opinion on the software and its features. The team may then take the customer's feedback and start the waterfall process all over again in attempts to implement changes. Whereas agile development  is more flexible; it gets the product to the user faster, allowing for continual and constant improvements based on user feedback and/or whatever issues arise. You can learn more about agile vs waterfall development, and its pros vs cons, on Udemy. This is information I have yet to learn about in school! I haven't been assigned a card just yet, but I was already given a summary of what my first project will be. It involves Rails! 

The final bit we spoke about was the process of github, branches (plus why it's important), merges and pull requests.