Personal Challenge (Halfway):

Mid-Week Update:

The challenge, to cut out all video games, tv shows, and social media for a single week. The goal, to force myself into programming even when I would rather sit on the couch while watching a tv show or playing a video game. Well, it has been a few days, and the results although lesser than what I had hoped for, are still positive. Before, diving into the results, I’d like to discuss some of the unforeseen difficulties, and how I coped to better fit my current situation.

Adapting to reality..

There were a few times, in the past couple of days, where I had to adapt my overall challenge to be more realistic. First off, I choose to make this challenge during the Thanksgiving break, which in hindsight was a poor decision. I found that choosing to isolate myself, over spending time with family was not worth it. Therefore, when family was around, I didn’t put in my headphones and go to work, instead I made that one of the exceptions. Exception one, if family is around then watching tv shows are okay.

Now, the results..

The main purpose of this challenge, as stated above, was to motivate myself into continuing my path with Android development. The primary method to continue my progress in Android development, finishing Udemy.com courses. I was able to finish a section of the course in the past few days, the topic of the section was integrating YouTube api to my app, and an overall introduction to the capability of utilizing api’s. I was also able to learn more about intents, interfaces for the View.OnClickListener, and apply those newly learned skills to my earlier apps. In this regard, I feel this challenge has been a success. Even though, I should have spent more time programming, I learned a fair amount. Also, I got some idea for what to continue doing, once the challenge ends.

Continuing what works..

Prior to this challenge, when I would be looking for something to do after school, I would turn to a video game or a tv show, even though I had enough energy to focus and put some time into programming. The problem, at some point in the past when I had all the motivation in the world, I was actually choosing programming over tv/games, but since then when the motivation has decreased, I’ve been choosing the opposite. Therefore, to be more consistent and constantly progressing at a rapid pace, I need to be utilizing my energy and focus better. This can be accomplished by turning on Udemy.com and finishing some of my course, immediately when I get back from school, and not waiting until it’s later in the evening and my focus has deteriorated. 

Okay, that wraps up the mid-week update. I will finish this challenge on Wednesday the 30th, and end it with a final post about what has taken place over the past week. Thanks for reading.

Personal Challenge (Overview):

Taking a week off of social media, video games, and tv shows.

The goal of this mini challenge is to see whether I fill that extra time effectively or whether I find some other outlet to waste time with. Of course, this is over the thanksgiving break so I’m not making it easy on myself. However, I believe that I will rise to the occasion and choose to program over staring at a wall.

This is the initial post, the first day of the mini challenge, I will do a second post on Sunday the 27th, and a third post on Wednesday the 30th. I haven’t calculated how much time I usually spend with tv shows, social media, or video games per week. Frankly, I’m a little scared what those numbers truly are. So why am I doing this?

Lately, I’ve seen a sharp decrease in how much progress I’ve been making with my Android development. Recently, I was accepted into an Android/Java coding bootcamp in downtown Portland. Since then I’ve dropped the ball in constantly improving as a developer. Therefore, extreme actions need to be taken to relight the fire. So what does NO social media, video games, or tv shows look like for me?

Video games:

  • Rocket League
  • World of Warcraft
  • Other Steam games

Social Media:

  • Twitter
  • YouTube
  • Facebook

TV Shows:

  • The Walking Dead
  • WestWorld
  • YouTube (this is the biggest time dump)

There we go. All of the items listed above, and any that I couldn’t think of, but fall into those categories are banned. Now, there are some exceptions to this rule that will involve watching videos, but they will strictly be centered around solving a programming problem or continuing my Android courses. Any missteps will be recorded. Here are some exceptions to the challenge.

Exceptions:

  • YouTube, if google and stack overflow don’t solve my programming issue first.
  • Udemy.com, is where the bulk of my time will stem from as I work through my Android Dev courses.

Okay, this should be an interesting week. I will post a mid challenge update on 11/27 (Sunday), to share what this experience has resulted in, good or bad. See you then!

TV Shows About Programming

As a new developer myself, I come across lapses in motivation that push me into idleness, and although pushing through in these moments is what I should be striving for on every occasion. Sometimes, I cave and I give into that part of my brain that is whispering things like, “you can finish it later” or “don’t worry about it”. In these situations, I’ve found the best way for me to “get back on the horse”, but fulfill some level of wanting from my brain, is to fill that time with tv shows centered around programming. I love tv, but I know that watching television is wasting time. Yet, I love tv all the same, so when I want to compromise I try and make it serve some purpose. Which I feel these tv shows help do by reinforcing things like why I program or what programming can accomplish.

TV Shows..

First off, we have one of my favorite tv shows called Silicon Valley, this comedy series follows the misadventures of introverted computer programmer Richard and his brainy friends as they attempt to strike it rich in a high-tech gold rush. They live together in a Bay Area startup incubator loosely run by self-satisfied dot-com millionaire Erlich, who lets them stay in his house rent-free in exchange for a stake in the projects they invent there. But when Richard develops a powerful search algorithm at his day job, he finds himself caught in the middle of a bidding war between his boss — whose firm offers Richard an eight-figure buyout — and a deep-pocketed venture capitalist.

Silicon Valley, has always been a motivator for me, I love the idea of working for a startup where you’re a “big fish in a small pond, rather than a small fish in a big pond”, and you get to build something that could potentially be huge. There is obvious risk there, but that’s where I ultimately want to be, working for a fortune 500 company would be great. However, a small company where I’m more valued and can make a bigger impact is too attractive. Silicon Valley depicts exactly that, and it’s the first tv show I recommend to people when the topic comes up.

My second recommendation, is a show called Halt and Catch Fire. It’s the early 1980s, and the spirit of innovation in personal computing is about to catch fire. Hot on the trail is a renegade trio — a visionary, an engineer and a prodigy — who risk everything to realize their vision of building a computer that can change the future.

Halt and Catch Fire, gave me a real appreciation for the engineers who “work with the metal”. They also do a great job depicting IBM as this overwhelming shadow that strikes fear in the heart of it’s competition and who isn’t afraid to lie, steal, and sue to maintain that status. In one of the scenes IBM’s lawyers walk into the office and you get an idea for what level of risk the Cardiff Electric team is taking challenging such a giant. Overall, IBM plays a very minor role, but the main story line follows the stages of bringing an idea into reality. Also, if you’re interested in game development this show will also take in that direction at some point.

Lastly, we have a show called Mr. Robot. Young, anti-social computer programmer Elliot works as a cybersecurity engineer during the day, but at night he is a vigilante hacker. He is recruited by the mysterious leader of an underground group of hackers to join their organization. Elliot’s task? Help bring down corporate America, including the company he is paid to protect, which presents him with a moral dilemma.

Mr. Robot, is a great example of the sheer power programming can have. It also has a rich storyline and Elliot is constantly solving problems using programming and other pieces of technology. One of the greatest things about this show is that the majority Elliot’s hacks or exploits can be duplicated in real life. I spent a lot of time contemplating whether or not I would take the plunge into cybersecurity, and all of that digging was because of Mr. Robot. If you’re interested in anything related to cybersecurity this will probably end up being your favorite show.

I know this is a small list of only three tv shows, but quality > quantity. Also, on a funny note, I often ask people if they’ve seen Mr. Robot and if they say yes I can kind of tell what level they are on. Thus far, I have only met one person who has seen the show and that one question lead into hours of conversation about Tor, Kali Linux, the Dark Web, etc.

Thanks!

Scrum – A Detailed Breakdown

How Scrum is organized..

With Scrum there is a Development team, a Scrum Master, and a Product Owner. Those are the 3 main roles that are involved with Scrum. There is also 3 artifacts that are used to be an effective Scrum Team. The artifacts are, Product Backlog, Sprint Backlog, and Product Increment.

Dev team role:

  • 3-9 people (avoiding cliques)
  • Team self-organizes and people can volunteer for certain parts
  • At the end of the sprint you need to be able to SHIP (working software)

Scrum Master role:

  • Coach for the Dev team
  • Facilitator that teaches how to max ROI using Scrum
  • Clears roadblocks for the Dev team
  • Defender of the Dev team

Product Owner role:

  • Single person representing the stakeholders and customers
  • Communicates what the customers needs are directly to the Dev team
  • Has final authority (and accountability) in managing and owning the product backlog

**Backlog is basically a feature list which helps identify higher priority features that the Dev team should finish first (highest priority goes on top)

Self-Organizing:

  • Within a certain boundary the Dev team has autonomy
  • Requires trust, and trust is built over multiple sprints

**Product Owner presents the problem a customer needs solved and the Dev team self-organizes to figure out how to accomplish the end goal. This in direct contrast with an older model which dictated each individual task to specific developers.

Scrum Artifacts (What you need to be effective with Scrum)..

Product backlog, what all do we need to complete the product?

    • The process of creating a Product backlog is kicked off by the Product Owner
    • This is the phase where the entire team, Product Owner, Scrum Master, and Dev team get together to figure out what will be required to complete what the customer is asking for.

Sprint backlog, what can we accomplish within the sprint?

    • Feature list you decided to work on, subset of items from the Product Backlog
    • The Sprint backlog can be adjusted while sprinting if something has a dependency

Product Increment, is the sum of all the Product backlog items completed during a Sprint and the value of the increments of all previous Sprints.

    • The entire goal of these Sprints is to get out WORKING software
    • New organizations will struggle with this until they have multiple Sprints under their belt

**The state of the backlogs can be looked at later on using an array of different charts that will help show whether or not you’re hitting deadlines, and how many backlog items are being completed on a daily/weekly basis, for example.

**The primary focus of the entire process is putting out working software by the end of the Sprint. One of the key reasons for this 1-4 week Sprint model is to use the working software you finished to get feedback from the customers quickly, rather than making the entire product then being told, “that’s not what we asked for”.

Charts..

Charts used to check how effective the previous or current Sprint is:

BurnDown – A BurnDown chart helps visually show the team’s progress as tasks are being completed

    • Ideal Tasks Remaining – what you hope to get done during the Sprint
    • Actual Tasks Remaining – what you have actually gotten done during the Sprint

Extra..

Brand new Sprint teams:

  • May not have any working software to release (normal not worth freaking out about).
    • This would result in a lot of “in progress tasks” and all of this will be examined in the Review stage of the Scrum model (which you will read about below). During the review, the team will decide whether or not they need to pivot or finish the “in progress tasks”.

Customers/Stakeholders:

  • Want working software, and this is the goal by the end of every Sprint.

Dev team:

  • Wants feedback from the customer, good or bad.
  • Some customers, may not be familiar with this style of approach and may not know to give criticism. Rather they will just clap and that is not beneficial.

An Event Board:

  • Having an event board, where you can visually see tasks getting done, is a great motivator for the Dev team
  • If you have seen HBO’s Silicon Valley, they used this same method.

Scrum events (1-4 weeks, mostly 2 week sprints, keep the sprints consistent)..

Sprint Planning, is a working session to discuss the work and effort necessary needed to meet their sprint commitment.

    • Two parts:
      • What can we do in the sprint
      • How will we accomplish the work we decided on

Daily Scrum, is a daily meeting.

    • Less than 15 minutes, and you’re usually standing the entire time (another reason it’s only 15 minutes)
      • What have you done?
      • What are you going to be doing?
      • Do you need help?

**The daily scrum is an event for the Dev team, and if no one has anything to say then spending exactly 15 minutes is not required. The entire point of a daily scrum is to quickly find out where everyone is.

Sprint Review, you want feedback, good or bad.

    • End of sprint (get together with stakeholders/customers)
    • Look at the product backlog (does it still make sense?)
    • Does the customer still want what you made or do you need to make changes?
    • Product Owner/Scrum Master will give the Dev team an idea for the budget and market climate while the Dev team has been sprinting
    • Collaborate on what to do next (customer -> Dev team)

Retrospective or review, leads to better behavior and improved work spirit.

    • The heart of continuous improvement
      • Inspect the people, process, relationships, tools
      • Save some time to talk about what worked (Celebrations are good!)
      • Celebrate what we built, what worked, and the good parts of our release

Final notes, Scrum does NOT solve problems.  It exposes them. You can then use that information to rough tune and become a more effective team. Scrum is a great tool that appears to be the direction most organizations are going. Therefore, it might not be the worst idea to become more familiar with the inner workings of Scrum.

Fun Fact, the creators of scrum named it scrum because of rugby.

Here is the rugby definition: Scrum is an ordered formation of players, used to restart play, in which the forwards of a team form up with arms interlocked and heads down, and push forward against a similar group from the opposing side. The ball is thrown into the scrum and the players try to gain possession of it by kicking it backward toward their own side.