REACT, Docker and You

So, let’s be clear, this is not untread ground but I will do my best to make it clear what I have learned and how you can take it and apply it to your project.

There are two main files you will need to drop in the root of your REACT project to make docker play nice. I want to be clear, this is how I prefer to develop and there is a second way that involves generated images and containers that you keep around for a bit. I prefer what is called dynamic build where you use docker-compose and it dynamically updates your browser as you change code. No rebuilding, just coding. Whee!

DISCLAIMER: I have used my docker-compose.builder file to build my REACT template and run from there. You can just as easily drop the docker-compose file into the REACT directory and do a docker-compose up and be on your way. Also, I use Linux so you windows folks may need to do some interpretive dancing.

First, (and optionally), write your docker-compose.builder.yml file. This can vary ALOT so do what you need to but remember, the services are what you need for “commands” in the container. So, take my docker-compose.build.yml as an example:

version: '2'
services:
  base:
    image: node:12
    volumes:
      - .:/usr/src/service
    working_dir: /usr/src/service

  install:
    extends:
      service: base
    command: bash -c "npm i && npm install -g sass && npm run build"
  build:
    extends:
      service: base
    command: npm run build
  create-bundles:
    extends:
      service: base
    command: npm run create-bundles
  create-app:
    extends:
      service: base
    command: npx create-react-app recipe

Here we have install, build, create bundles and create-app. We can use the command docker-compose on the command line to execute any of the above. For example:

docker-compose -f docker-compose.builder.yml run --rm install &

Breaking this down, we get -f indicating the file name. If you do not use this, docker-compose will default to your docker-compose.yml file. No bueno. Next, we have a run option telling docker-compose which of the commands you defined to run, in this case install. Install, as defined in this file, includes everything in base but also runs a command in your working directory doing all the Node.js install work but uses the container instance. It should be noted, for my purposes, I am using a node 12 instance. The option -rm tells the docker to remove any stopped containers. The & tells it to terminate the command but keep the process active.

By comparison, the docker-compose file is much simpler.

version: '3'
services:
  dev:
    image: node:12
    volumes:
        - .:/usr/src/service
    working_dir: /usr/src/service
    command: npm run start
    ports:
        - 3000:3000
    tty: true

Here we use Version 3 (mostly for compatibility reasons with my OS) and has a simple enough command. The Service here is a dev service and we have named it appropriately. The volumes we are using are where the docker-compose.yml file is sitting and mapping that to the /usr/src/service directory in the container. This is an important piece to understand. It can be a hard one for windows user but it functions like a mount in linux. You have a directory in container, but it points to you host local directory. You could indicate a different absolute dir (/home/me) on your host directory service but I find it easiest to just lump it with the code whether I work with REACT or Java or PHP or whatever.

Working Directory tells docker where the application will look for code on the container. command is a command you need to run, in this case, starting up node.js. Ports are what ports is on the host and what port on the container it maps to. In this case, they are both the same but you could have port 80 on your host mapping to 3000 on the container. The order is HOST:CONTAINER so it would look like 80:3000.

The final tty:true command is kind of optional. It tells the container to create a tty connection allowing you to shell into the container. A useful item that I occasionally use for trouble shooting but up to you on whether you can to use it.

This only scratched the surface and there is sooooo much more you can do with docker compose but this is the “get me up now” version. I might expand on it down the road. Also, this can be used for may languages depending by changing the base image.

Happy coding!

Some references:
Docker CLI
Compose V3 Reference

S1:E3 “WHERE NO MAN HAS GONE BEFORE”

S1:E3 “WHERE NO MAN HAS GONE BEFORE”

The crew of the Enterprise encounters an energy barrier at the edge of the galaxy as they are “exploring”. Long before the Enterprise (100 years), the SS Valiant disappeared trying the same stunt. They found the flight recorder and the captain had destroyed his ship after recording some tantalizing clues about ESP and the barrier. I mean, what could go wrong. So, zippity zap, the ship is tossed and 9 people die and two collapse, Gary “Look at my retro uniform” Mitchell, the helmsman and good ole friend from the academy of Captain Kirk and the thot new psychiatrist, Dr. Elizabeth “I get to wear pants” Dehner.

Out of the barrier they come nearly destroying th ship (who could have seen that?) and Gary wakes up with silver eyes. Please note, if someone goes through an unknown encounter and wakes with glowing, silver, black or substantially altered eye color, you should watch them closely. They should know this in the 23nd century. Well, they cart the barely conscious Gary off to the sick bay where he eventually awakes and starts reading all kinds of books with perfect recall. Spock is suspicious, as he should be, and advises the Captain to “kill him now” and not to wait until they get home. Good advice.

Meanwhile, the dilithium crystals are shot and they need to get to an automated dilithium processing station on Delta Vega. Even when you are socially isolated at the edge of the galaxy you need to fuel up. So, as they approach the planet, Gary gets more “silver eyed” and asks to read up on the tech specs for the Enterprise. COME ON MAN! Kirk says, “Sure, what could go wrong ole buddy!”. Spock maintains his original position.

They see some warning signs (ya, think?!) as they approach Delta Vega where Gary remote takes over the Enterprise. They dope him up and beam him down with much hand wringing about leaving him alone on the deserted planet where the ore ships only call every 20 years. Spock is still of the opinion that they should shoot Gary in the face.

They lock him up and to make matters worse, he runs into the security screen and yowsa! The silver eyes fade and his baby browns come back. Gary seems confused but Spock is not. “KILL HIM NOW!!”, Spock yells (yeah, Spock yells a lot in the early episodes). The Captain sees his old buddy again and he thinks “Aww, shucks, we can save him”. As Gary’s eyes change back to silver, I like think Spock just shook his head and thought “Doofus!”.

Finally, Gary helps Dr. Dehner go silver and they knock everyone out and take off for the hills. Now, despite getting what they wanted, Kirk, for some reason, decides “Oh, no, not on my watch” and high tails it after the couple…who were perfectly happy to live on the deserted planet….alone…away from the galaxy….

Kirk catches up and because Dr. Dehner is not as far gone as Gary, Kirk convinces her to turn on Gary. She zaps him and he eventually turns brown eyed again. Again, someone tells Kirk to “KILL HIS ASS!” but he hesitates and Gary goes all silvery eyed again. Hijinks ensue and Kirk eventually drops a bould Gary meant for Kirk but was too busy monologuing to actually do the deed. Ex-Gary, he deed.

So what did we learn that is useful for Quarantine?

  • When approaching obvious barriers, like the front door of a grocery store and a bar violating lock down, rethink that move. You or someone you love may become affected by your need to break through to the other side.
  • When someone’s eyes change color, make sure to watch them closely.
  • If your brain (or Spock) tells you to “Kill him now” then maybe, just maybe, pop a cap in that ass.
  • If you are monologuing, you aren’t getting the job done. Talk is cheap, actions will get the job done.
  • You significant other needs to have more in common with you than just that shared disease, but it is a good ice-breaker.
  • Even though you do not have silver eyes, you might still be infected.
  • Check your privilege, we are not all insects unless you have silver eyes and super mental powers.
  • It isn’t magic, it is ESP.
  • Social distancing is something we participate in to protect each other, being abandoned on Delta Vega is something done to you.

Be safe, be healthy and energize!

REACT Learning Project with Docker!

Alright, so I am furloughed and in quarantine. Besides spending my time watching Star Trek I need something to keep me busy. So, REACT it is. I must admit, I have had a few projects with it in the past but this time we will be leveraging Docker to create a dev (and eventually prod deployment) environment. Yeah, I could install all kinds of node.js and apache and blah blah but I want to be able to leverage the ability to try something and not pollute my work env.

For this, we will be using ubuntu desktop with gnome. Docker will be at play and likely I will have node.js on it (since we are doing REACT). I will work with some tutorials first, then move on to a custom app that I might host on my servers if there is some purpose to it.

DISCLAIMER: I am a Tech Arch and Backend dev so, yeah, this is going to get messy. I have done a fair number of Angular projects and am proficient in Javascript and node.js, but yeah, backend dev here. You have been warned. πŸ˜‰

the last dance ep 1-6 review

WARNING THIS POST HAS SPOILERS TO THE FIRST 6 EPISODES OF THE LAST DANCE!!!

I’m a Bulls fan. So when I sawed that ESPN was doing a docu-series on the last championship team I was very interested. Unlike the older fans who lived during MJ’s days as a Bull I really only know the most iconic parts of the final run. So lets dig in to the first 6 episodes of this series. To save time everything will be sorted by the timeline of events and not by episode

So in time of events, the first part of Michael Jordan’s basketball career starts at college. There his legacy started as he hit the game winner shot for North Carolina in 1982 verses Georgetown. Something interesting I found was that Jordan told his coach at his freshman year that he wanted to be one of the best to play at the school then his asst. coach Roy Williams said that he had to work harder than he did in high school and Jordan said he worked as hard than everybody else. Roy then said “Whoa! I thought you wanted to be the greatest to ever play here.” Michael than said that he was going to show him. After the said game wining shot in the interview for the Last Dance he said that changed his name from “Mike to Michael Jordan.” In his Junior year he declared for the draft even though his original plan was to stay in school. He was drafted 3rd overall as Hakeem Olajuwon was selected 1st overall by Houston.

In his rookie season, he had a culture shock, as he entered a room in a pre-season game, he saw people who did cocaine, weed, and other crazy stuff. But that did not deter him. He would start his legendary NBA career as he lead his team to beat the Bucks in game 3 of the regular season. He also helped the Bulls with popularity and tickets. Jordan also won the 84-85 NBA Rookie of the year with playing in all 82 games 28.2 PPG 5.9 assists and 6.5 rebounds per game. Also in his rookie season, his agent and firm mostly dealt with tennis players. The idea was to treat MJ as a tennis player. Jordan wanted to sign Adidas but due to dysfunction in the company they said no. He REALLY didn’t want to sign with Nike so much he refused to go on the plane that would send him to Nike headquarters. But after his parents forced him to get on the plane, he signed with them for big money at the time ($250,000). His first shoe the Air Jordan 1’s help start the popularity of sneakers and sneaker heads. In year one the company sold $126 million dollars worth of Air Jordan’s!

I felt a lot of people know the rest of his years the documentary has covered so far so I’m going to skim thru and picked some bits that I found interesting. In November 1991 the book The Jordan Rules was released. The book showed a different side of Jordan as a kind of a mean person as the book stated that Jordan throw hard to catch passes and that he once punched a teammate during practice. Another thing I found interesting was when he said “Republicans buy sneakers too.” and not support Harvey Grantt besides a monetary contribution.

I would recommend this documentary to NBA or just Jordan fans who want to know more about his journey and the teams he played with. I hope (and pretty sure it won’t happen) they talk about his time with the Wizards! πŸ™‚ Enjoy the rest of the series!

TC

S1:E1 The Man Trap

In this episode (listed as S1:E2 on Netflix), Kirk, McCoy and Crewmen Darnell are on Planet M-113 to check in with an archaeology husband-wife team made up of Nancy and Dr. Robert Crater. This seems to mostly involve invading their privacy and giving them physicals that McCoy seems to never get around to. In the opening scene, we are given a clue that something is afoot because McCoy sees a 25 year old Nancy, Kirk sees a matronly Nancy that he is obviously like “Yeah, maybe 20 years ago but come on” and Darnell sees a stripper he may or may not have “had relations with” on a pleasure planet. Now, normally, that is the quiet part that you do not say to your commanding officer or, perhaps more to the point, the ship’s doctor who probably treated you after you came back from the pleasure planet and has a thing for said women. Darnell would know this since Kirk has bee ruthlessly rubbing McCoy’s nose in the fact this whole lead up to the encounter. The take away here is that shw is not changing forms but that she is projecting an illusion in the minds of these men. That is BIBLICALLY important down the road.

As we later find out, Dr. Crater is studying a race that existed long ago but has since died out leaving a large number of ruins. He likes his privacy and asks for a salt resupply because the planet is hot and gee, food and water are just not a priority for him. Oh, also, LEAVE! As a participant in quarantine, I have to appreciate this sentiment but have to say, if you want someone to leave, the last thing you should do is make repeated requests for salt and demands for them to leave “your” planet. I mean, I appreciate and practice the six foot rule but come on, your own planet?

So, after repeated requests for them to leave, that the ALIEN Nancy handles with much more tact and aplomb than her “husband” Dr. Crater, Kirk and McCoy find Darnell with the life sucked out of him with red mottling on his face. Nancy was there (and not practicing social distancing) and says he ate a poison plant….just because. You know, why we would all go into space and explore new worlds, to eat plants we know nothing about. What could go wrong?

So, now, Kirk is really steamed and on the hunt for an explanation. Let’s be clear, if Nancy had kept it in her proverbial pants for just a bit, she had the power to fake the physical results and get the salt resupply, she would have been in the clear to continue being Dr. Crater’s wife. But now, she needed a snack. Just like it might seem like a good idea to go to that dinner party or park to have a picnic with your friends during quarantine, then end up dead. Watch your food urges, they could set in motion your undoing.

Kirk eventually brings more portable salt sammiches down to the planet to look for the “cause” of the strange death of Darnell. Two more crewmen dead. At this point, you are getting the picture that maybe Kirk does not like his crew that much. Here we learn that if you expose one person, you get one infected, you expose a few more, and it spreads. At this point, McCoy figures out it is salt that is missing from the dead crewmen.

Eventually, it comes out that Crater knows, has been trying to hide Nancy Alien from the crew of the Enterprise and Kirk makes the revelation that Nancy is the last of her kind. But by now, she has slipped on board the Enterprise (slipping the confines of quarantine) and is having herself a grand old time munching on the crew. We also find out that she needs love as much as salt. Hmm, could this have to do with being a her? Not sure on that point but you can’t social distance and “love” someone.

As a side note, we find out that the real Nancy died a year or two ago (Dr. Crater HER HUSBAND can’t remember precisely) and the alien killed her but she has been his “wife” in EVERY sense of the word since then. Wow. This would be like your spouse dying under your budy pillow and you just shrugging and saying “This pillow is good enough”. Eeewww.

At this point, Kirk makes the call that the creature needs to die dispite both Crater, McCoy (now being impersonated by the alien) and Spock all say, “Wow, would be a shame to kill the last of a whole race”. Eventually, Alien McCoy shows its hand and kills Crater because McCoy loves her more and wounds Mr. Spock because Vulcans “Spawned from a different ocean”. This smacks of the whole, “but I can’t catch Covid because I am young”. Salt is salt, a virus is a virus and you are part human.

Eventually, McCoy Kirk and Spock corner the alien in the McCoy’s cabin. The Alien overpowers the Captain and Spock, for Plot Reasons stands aside, as McCoy needs to come to grips with burning down his old flame in alien form. He even sees its true form and, believe me, it is not easy to imagine how Dr. Crater “cohabitated” with it for maybe 2 years. So, McCoy finishes off the Alien despite it begging for its life and all is well.

So, what did we learn out of this.

  • When hungry, stay in when possible and try to self isolate. You will only cause grief and suffering if you suck the life out of someone just to get a snack.
  • You need to social distance but be reasonable, you do not need your own planet.
  • You need salt, but you also need other supplies. Make sure your list is more than salt. A balanced diet is important.
  • If you let and alien organism, like Covid, onto your star ship it will run rampant. Best to keep things clean and off your ship in the first place.

Be safe, be healthy and energize!

Latest CASE BREAK i had sent

I don’t usually do case breaks. But when I do there not really case breaks. There mostly a one pack break that can result you in getting a spot in a bigger break.

If your don’t know what I’m talking about, a case break is when you buy into a team or a random in hopes to get good cards for a lower price than a box of a product. As stated the 2 biggest case break ideas are picking teams or getting random a team. There are tons of options for group break groups to break with. My latest group break i got sent was from Jaspy’s case breaks.

In this break they opened 1 hanger box of 2018 Topps Update Baseball. Also in this break was a chance to win a $400+ of value spot of 2020 Topps Transcendent Hall of Fame Baseball. I didn’t win a spot as it was for the the top 2 spots in a random after the break. I also got a not stellar team in the hanger (Oakland A’s) but I did get some cards.

My cards in the break were only rookies as that was the only cards sent. My first card was a Dustin Fowler RC. He is a Outfielder and is now stuck in triple A ball for the Las Vegas Aviators. My second card is a pitcher. His name is Daniel Mengden and actually played some major league ball for the A’s but like Dustin got sent down to the same triple A team. He wasn’t even in spring training but Fowler was in before the season was suspended.

This is the average result for a break like this. However you could be lucky and get a big spot in a bigger break! Or you can buy a spot straight up when they do something like this again. The package was secure in a bubble mailer and the cards in a team bag. Over all it was a fun experience and would recommend if you still want a thrill and can’t afford a box and don’t want to buy singles. I have hit big on different breaks from the same group breakers. I once hit a NHL All-Star used net card of Connor McDavid and a autograph bat of Fernando Tatis Jr. I am now waiting on a personal pack break of Bowman 1st edition from a different group breaker.

Here was the break I was in if your were curious https://www.youtube.com/watch?v=_cWL2QOUwaI

TC

Quarantine Chicken

Song Lyrics for Detained At The Border

Locked away from everyone we know,

Try to Zoom but internet is slow.

When we get bored, the is only uno,

But then we get hungry and know where to go!

Quarantine Chicken! fuckin, finger lickin!

Quarantine Chicken, taste buds be trippin’ !

Virus killin’ my mother,

Virus killin’ everyone’s brother,

Wish we had a goddamn cure,

Wish we could clear this cough,

Need a treatment that fits this feelin’!

Quarantine Chicken! fuckin, finger lickin!

Quarantine Chicken, taste buds be trippin’ !

Star Trek Vs. Covid-19 And Quarantine

Those of us who are at home during the 2020 Covid -19 outbreak are all looking for ways to make sense out of a world that is crazy. Yeah, there are fears about getting the disease, concerns about your economic future and a general confusion about how to handle these things as well as the isolation that comes from quarantine. Fear not! The repository of wisdom from a 1960’s sci-fi show is here to show us the way.

Yes, Star Trek: THE O.S. is a rudder by which I steer some of the most important decisions in my life. My son can pretty close to a James Tiberius moniker. πŸ˜‰ He may breathe a sigh of relief but that does not diminish the lessons we can learn from the values and regulations that guide the intrepid crew of the Enterprise through challenges that include gods, monsters, and aliens set on their destruction.

When we look at the three primary characters of Captain James Kirk, Science Officer Spock and the irrepressible Doctor Leonard McCoy, some would point to their friendship as their key to success in their encounters, but at the risk of being too general, I would propose that their strength and fortitude flow from their differences. They represent wildly different points of view. Not always correct but always, at least one of them has the right view of the situation they face, no matter how cliche or trod that view may be.

Kirk represents the bold, take action leader. At times, he is blood thirsty, at others a wise leader and only the writers know which he will be. Spock is (except for early int eh series where he was screaming his lines for some reason) is the calm intellectual, analyzing and disseminating all factors of a situation before acting. McCoy represents all of us, with a incredulous empathy combined with a bit of incredulity. Combine all three and you almost have a functioning human being but separated as they are, you have pearls of wisdom that will guide us through our quarantine in a fantastic voyage to the stars.

In this series, we look back to a sci-fi great for guidance in these trying times.

Swinging from the trees with Agile: Part 1

Intro

Agile is a process of software development. In the past you had waterfall, LEAN, RAD, XTreme and many others and although those still float around (especially Waterfall), most people will say they are doing Agile even if they are not. So, understand going in, it is rare that any two implementations of Agile “follow the book” or resemble each other. Most, and rightfully so, are customized tot he business and methods used by the team. That said, lets get some definitions out of the way.

Agile comes in two large flavors, SCRUM and KANBAN. SCRUM is the most common but I have a thing for KANBAN. KANBAN is, at its most basic, a backlog of tasks that move through a series of steps and each step has a maximum an dminimum number of tasks that can be in that column at one time. If you get too many, say, “In Progress” then you probably do not have enough bandwidth (read developers) and if you have less than the minimum then you have a lack of work feeding the backlog. This can make for a difficult to predict completion dates. Project managers and bosses do not like that. More on KANBAN in Part 2.

SCRUM, on the other hand, is broken into sprints (usually 2 weeks in length), then loaded with tasks and assigned out to developers to complete. This is a team effort that involves business stakeholders, a team lead called a SCRUM Master and the developers. In the end, you should have an easier time saying “We will complete X work by Y date”. This makes bosses and Project managers happy and so you usually see SCRUM implementations.

My bias is for KANBAN for the simple reason that it allows you to optimize process, I mean really get in there and analyze what is going right and what is going wrong, and do so in a non-pressure environment.  You get speed and it just goes faster and faster if done correctly. Most folks will argue that you should only use it for managing support since it is not a time-blocked method. Those people are usually Project managers and bosses. πŸ˜‰

What we do Everyday

Alright, that out of the way, let’s look this over. First, we will start with the most popular by far, SCRUM. Scrum comes from Rugby but roughly refers to the daily scrum (standup) that a group has in order to share three things:

  1. What did you accomplish yesterday
  2. What are you going to accomplish today
  3. What is in the way of you accomplishing there goals

Your personal statement of the above should not exceed 5 minutes, the overall should be less than 15 minutes for the group. Note, I said should. It happens but not often. I have had mixed experiences with daily standups. Some are absolutely useful, other groups do much better with just the lead (SCRUMmaster) walking around and talking with each member of the team and others yet, do better with weekly scrums. This has to do with the rhythm (cadence) that the group works at.

SCRUM has some moving parts. First is the task which I am sure you are all aware of. Second is a Sprint made up of a number of  made up of a number of tasks. These tasks will have Story Points assigned to them and the Sprint will be loaded with an amount of Story Points that reflect the amount of work the team can complete in the agreed time for the Sprint. Clear as mud right? πŸ˜‰

Story points are a point of contention in that they are never nor ever will be clearly defined. Certain Agile experts will say “OMG!!!! YOU are the problem!!! Story Points are clearly defined!!!” and then go on to vaguely define them as a unit of work * the risk of overruns. The best way I have found to look at Story Points (some folks just use hours of work) is to use what I call the Scotty Principle. Whatever you and your Product Owner (the business guy who knows what the end product should look like) and your SCRUM Master agree is a story point, double it and then expect to over shoot it.

Example:

It has been estimated that your team can handle 45 SP per 2 week sprint (about 15 per dev on your 3 man team). You have 5 x-small tasks (we will cover t-shirting later) at 1 point per task, and two medium tasks at 5 SP a piece. A small task may be a conf change to an Apache server or deployment of a WAR to a tomcat server. A medium task might be the writing of a service to create a shopping cart in the app (hint: it might also be large depending on the requirements).

Who are the players

Scrum Master – this is the person in charge of making sure the sprints happen in a timely manner, eliminates the blockers keeping you from completing your tasks, and generally functioning as a project manager for the effort.

Product Owner – this is the person who owns the business parts of the effort. They do not set the cadence (how fast the sprints run) or set the Story Points for the tasks, but feeds the requirements and sets the priorities for the tasks. For instance, they would say that the Conf change on the Apache server is highest priority while the new service for creating the cart is only a medium priority. They build out the backlog of that the team and scrum master can pull from to build sprints.

The Team – This is a group of developers, usually with the full range of skills from BA to QA to Dev to DevOps. They should be able to do it all but quite often, they are limited to coders with the usual range of QA and BAs mixed in. Regardless of the make up of the team, they will meet (called a scrum of scrums) to hash out how much they can do, the number of SP they can accomplish and what impediments that sprint will face.

The Parts

Sprint – Sprints are some period of time that the team has agreed to, often it is two weeks. This is the time that development will take place. Some sprints can be a month in length or any amount of time that the team agrees to. Sprints are supposed to represent a complete piece of functionality such as a baseline, or a feature that can be released to production at the end of the time frame agreed to.

Cadence – Cadence is the frequency of the sprints reflected int heir duration. For example, team that releases every sprint and every sprint is 2 weeks, then the cadence is 2 weeks. However, you can have a release to production every 3 sprints and that would mean a cadence of 6 weeks.

Release – Releases are at the end of sprints. They are usually reflective of a feature or group of features that are complete and ready for review by the Product Owner as a candidate for Release to Production. 

Release to Production – It is the gate that the Product Owners controls to release code when he thinks it is a complete product. This can happen when the Product Owner is waiting for a baseline list of features in a product, for example. 

Retrospection – This usually happens at the end of a Sprint. It is exactly what it sounds like, a look back at the sprint to see what has worked and what has not. 

Sprint Planning (Scrum of Scrums) – This is where the team gets together and plans the next two weeks,estimates the number of Story Points they have available for the sprint and what each task estimated effort is (assign Story Points to tasks). The Scrum of Scrums happens at the beginning of a project and sometime in the middle for adjustment purposes.  This is where the team gets together and plans out multiple sprints and how the releases will fit together. You do not want to release your sign-on apps after you have the eCommerce released.

Story Points – Yeah, these are a real problem for most folks. The best I have been able to communicate to non-Agile thinkers is to think of them as Units of Work x Risk factor. So, common progressions a doubling (1, 2, 4, 8, 16) and Fibinocci (1, 2, 3, 5, 8, 13) but at the end it is easiest to think of it as x-small, small, medium, large and x-large. You can add more to the ranges for larges sizes but you should probably look at breaking those tasks up first. There are also a wide variety of processes for assigning these (Look up Agile Poker) but I prefer good old fashioned estimating. And no, everything cannot be a 16. πŸ˜‰

Priority – Priority is the importance to the business and it is set by the Product Owner. This is not law in terms of how tasks are pulled off the backlog but they are important. The business may think that credit card processing is more important than e-payment, and thus credit card priority gets set higher.

Ranking – Ranking is done by the dev team and this is used for them to order their work. It is not always set but it can be useful to know that the credit card service will be available before the forms are written.

Backlog – The Product Owner puts tasks into the backlog. It is just what it sounds like, a list of tasks, assigned a priority and given detailed requirements (including completion criteria and expected outcome). These are then able to be pulled to In Progress as developers become available.

SCRUMclusion

SCRUM is a useful process and can be and orderly way of approaching development…..or it is a bat to beat the developers with. It is not a coincidence that Cadence is the same word used to refer to the beat of a drummer setting the oar stroke on a Roman Slave Trieme. With that caution, I will say I have worked comfortably on SCRUM teams that understand that you do not just raise the Cadence to get faster work out of the team. You need to work as a team to understand what capacities are and review the total Story Points that a Sprint can sustain. If the SCRUM Master pushes the team’s Sprint totals from 20 to 30, they need to be able to go back to the team and explain why the total increased. In a HEALTHY team, the SCRUM Master should sit down with the team and in a Retrospection, review if the team easily completed the 20 SP or did they struggle. If they completed with ease, then an increase may be in order, if the struggled, perhaps a decrease.

Agile is supposed to be a better way, an I truly believe it is, but only if it is done right. The team needs to trust the business stake holders, and the stake holders must trust the team. If either party starts to lie (inflating SP estimates, ranking all tasks the highest priority) then trust fails and so will SCRUM. A point you will sometimes here about Agile is that it IS TRUST.

Ooh! Ooh! Software Engineering vs. Writing Code

I am going to jump right in here. To me, there is a huge difference between coding and engineering a system. Some fellow chimps will say, “Well duh!” but you would be surprised the number who think the two are the same.

Writing code is a straight forward (and if you ask me a bit dull) set of actions.

  1. Receive design usually from a senior chimp, an architect or (dread) a manager. This can come in many forms and I hesitate to use the word “design” since in all likelihood it is the equivalent of “Go do Computer things”.
  2. Chimp out on the keyboard pounding it like it owes you money. Take breaks for caffeine and to google the things you did not realize you would need to know.
  3. Repeat.

Now, there is nothing wrong with Chimp Coding. It pays the bills and we all have done it, do it and the gods forgive me, will do it again….but we do not like it. Not unless you are some sort of masochist.

Engineering a system, on the other hand, is a challenge. This is the good old SDLC we know and love. Whether you are full on Agile Scrumming (or Kanbanning as I prefer) or going old school and doing the waterfall thing, you have the basic steps.

  • Discover (Question the users under harsh lights while promising them leniency if they cooperate)
  • Design (Figuring out what you need to build a system that meets the unreasonable demands of the user)
  • Develop (Learn what you need to know through prototyping, showing users, refining until we get something that is usable)
  • Deploy (Figure out the hardware, environments, testing schemes, what prod will look like and whatΒ  you need to do to get your code there in a tested and reliable form)
  • DevOps (Maintain but I like alliteration. Figure out the mechanics of deployment, optimize instances and hardware, debug and stabilize the system before final deployment into prod)

At the end of it all, to me, chimping code is a far different experience from software engineering. I prefer engineering but I respect those who love chimping out on some tasty tech.