Welcome to Aaron's Blog
Week 1
This week the fellowship learned all about craftsmanship. We learned its history and how to incorporate it into our professions. I have been assigned 2 personal mentors. One of them is with SC Codes and the other is with Booz Allen Hamilton. This week all of the BOOZ ALLEN GANG (BAG) filled out a whole heap of paper work (virtually of course) and even got our finger prints taken (not virtually unfortunately, especially for Matt since it was a 4 hour round trip for him). We were all sent our company laptops, but none of us have been able to access them yet due to security reasons. Great first week. I am really looking forward to all that is coming. Very excited!
Week 2
This week the fellowship learned about design and how it applies the user interface and the user experience. My favorite part of the lecture was when Brandon discussed the balancing act necessary to achieve simplicity whilst not making any user feel restricted or limited in any meaningful way. I thought the the lecture was very insightful and thought provoking.
Week 3
So I overslept and missed most of the meeting this morning. I must have accidently set my alarm for PM instead of AM. :( However, I did catch the last twenty minutes of it and it was quite captivating. I learned how Agile methodologies are extremely new, even though it is all that I am familiar with. Apparently programming was originally done with what is now referred to as the "waterfall method." The waterfall method means that you preplan everything and then just build it to completion. This method worked great back in the day because people and technology did not change as fast. Our speaker mentioned how companies like UBER have changed how travel works overnight and require AGILE methods in order for programs to keep up and stay relevant.
I must admit that my previous line of work shares aspects of both methodologies. I worked in film and television production. Film productions on the surface seem to use the "waterfall" method primarily because they are budgeted and planned out for in preproduction. Typically, they are greenlit for a certain amount of money and that is it. However, scripts get rewritten EVERY, SINGLE, DAY. So that goes more in line with the "Agile" method. Unfortunately, I have never worked with a Scrum Master on a film set. That would help out TREMENDOUSLY! :)
Week 4
Chandler Roth did an amazing lecture this week on Computing. He covered all the fundamentals of computer history as well as how the physical hardware interacts with the software. This is definitely my favorite week yet.
All of the fellows were tasked with presenting their ideas for their umbrella project this week. My idea will be for an app for either iPhone or Apple Watch. The image to the left is a preliminary design (very preliminary) for the app logo. The app will at its core be a cost comparison calculator. The user will enter the dollar amount of something that they wish to purchase and the app will convert that cost into a randomly generated real world item or items that would cost the equivalent. An example would be the
user would enter $40 for the item they want to purchase. The app might respond with something like, "Is it worth 20 corndogs?" Eventually I would like to add gps functionality where the app will pick a random local item close to where the user is physically to compare the price with. I feel like this would be a fun way for any user to gauge the proposition value of anything that they are considering for purchase. The app would feature a cartoon character named Robbie Racoon who is a cute, bandit looking fellow. He will be what the user interacts with while using the app. I was inspired by my 10 year old niece to make this app. I am concerned with the younger generation treating money like a hot potato and feeling the need to spend it as soon as they get it. I am hoping that this app will be a fun and easy way for people of all ages to accurately gauge if what they purchase with their hard earned cash is worth it or not.
Week 5
The lecture on Monday of this week was led by Chandler Roth. He did a great job covering the internet and the connectivity and technological growth that it brought with it. When i was a kid growing up in the 90s, my first foray into the internet was based on what i imagine many of my peers was...connecting with my favorite cartoon characters!!! I grew up in a pretty conservative household. I didn't get cable or satellite tv until I was about 10 years old, so was watching cartoons at a later age than most of my contemporaries. However, My parents decided to get internet and satellite tv in one fell swoop. So the website I remember the most from when I was a child new to the internet was nick.com. Nick.com was a website that hosted some of my favorite cartoons of the era including Rugrats, Ahhhh Real Monsters, and Hey Arnold (this show still holds up somehow). I was so happy to find a page of internet that was very close to how my child brain remembered it. The hold over that isn't shown looking at these archived web pages was the loading times. I will never forget how these web pages could take several minutes to load!!!!
Week 6
My experiences with my host company (Booz Allen Hamilton) have been overwhelmingly positive. My Booz Allen Hamilton mentor is Jason Burt. He is super helpful in going over the content within engineer kit and helping me understand the expectations and background processes at Booz Allen Hamilton. I absolutely love the company culture and atmosphere. Everyone there is encouraged and empowered to better themselves. A huge part of the company culture is integrity and honesty. These are values that mean a whole lot to me personally and I am very grateful to be working at a large company that also appreciates and encourages these traditional values. The only con that I can say that I have experienced thus far is the lengthy onboard process that has taken well over a month thus far. Unfortunately, that just may be a necessary part of the process when working with the government. Other than that, I am so grateful for this opportunity. I feel so lucky and blessed :)
Weeks 7-9 & Umbrella Project Timeline
This 3 week section is dedicated to programming. Our guide Chandler Roth has done a great job introducing us to the concept of a Polyglot. A polyglot is basically someone who can program in any language. We have done pair programming with random people and it has been a great way to learn new languages as well as learn how to work with others. It has been a great experience and my personal favorite one of the Fellowship program so far.
We have been asked to schedule out the timeline for our umbrella project.
1. Finish concept art of Robbie Raccoon by 3/4
2. Setup Ruby on Rails local environment by 3/11
3. Setup Yelp Scraper by 3/18
4. Setup Backend Logic to find Random Item and Price by 4/1
5. Setup DB to store Users Past Selections by 4/8
​
Week 8 Automated Testing
Today Chandler discussed Automated Testing with us. Firstly, we learned about Epics. Epics are a very large and abstract idea that a user or a client wants to bring to life. Then we learned about User Stories. User Stories are smaller, individual pieces of the Epic that have more focused functionality. Lastly, we learned about Acceptance Criteria. Acceptance Criteria are the fully realized concrete layers of each User Story. Then we learned about the Testing Pyramid which is made up of three parts. The three parts from base to top are: Unit Tests, Integration Tests, and End to End Tests. Software engineers are typically responsible for Unit Tests. Unit tests typically involve testing a piece of specific functionality within a program. Integration testing usually involves backend functionality such as if an API call accurately retrieves appropriate information. End to End tests are testing to see if all parts of the program are operating as expected.
Some expected functionality that I will test for within my umbrella project are as follows:
1. Intro_Button("Play video introducing Robbie Raccoon to the User")
2. What_Do_You_Want("Ask User for Input of a Product They Want")
3. How_Much_Does_It_Cost("Ask_User_How_Much_It_Cost")
4. Is_it_worth_it Button("Display random value equivalent to cost (eg. 20 grilled cheeses")
5. Register_Button("Registers Users Login Info")
6.Login_Button("Allows User to Login")
7. History_Button("Shows History of Users")