Monday, September 29, 2014

The Walking Dead

Well, I finally caught up on The Walking Dead. I read a number of the comics and figured I was
good. I read the comics, what would I get from the show. Being that I watch little to no TV I had no real desire to watch the show.

Then too many people told me it was different and it was worth seeing. I finally gave in and started to binge watch it this summer while Michele and the kids were on a trip and I was stuck home painting the house and working at a new job (no vacation time for me).

My summary of the first season is. This is just a drama with Zombies thrown in. Look, people not getting along. Tension. Zombies. Tension. Not a real, hook me season but it was good enough and I was told wait for Season 3. Also, pretty similar to the comic.

Ok, Season 2, now we are talking. Things still similar to the comic. Enough divergences that I was wondering when Shane would die. Giving me a big hook. I liked how they started to amp up the tension and the season finale was excellent. I was so glad I did not have to wait long to start Season 3.

30 seconds later, hit Season 3, Episode 1 on Netflix and we were in. Season 3 did not disappoint.

It was great. The addition to the story with the competing Woodbury was excellent. I liked the twists it added.

Now one aside. I do like to think that humanity would not turn to such shit as in the show.

What I found interesting throughout the seasons is that the characters meant to be most unlike me, Daryl and his Brother (but more Daryl) are the ones I truly connect with. They aren't stupid. While all the other "city-folks" are running around crying about the end of the world, these guys are scavenging and killing Zombies without a blink of an eye. The world has changed and you better drop your I'm too good for this quick or die is what they show. I like to think people would react this way, but maybe that is just me.

I guess by this admission, there is more Redneck in me than I figure. In reality, it's just the writers trope that people are stupid and would take a long time to adjust to a fight for survival. The counter-point for most of the characters are two guys who seem simple but in fact have their shit together. So, ya it's TV and the stupidity makes for tension and "good TV" I guess.

I finished Season 3 a week or so ago and I am getting the shakes from missing "my show." But last night, Season 4 was unleashed on Netflix in prep for the return of The Walking Dead, Season 5.

So, now I am binging again, waiting for the next season. Who will survive?

Thursday, September 25, 2014

Describe yourself in an eye-catching 150 chars or less

I just applied to a full time position that wanted me to describe what makes me unique in 150 characters or less.

Here's my shot at that:
I've flown a plane with an electrical failure at night, watched life float pass pinned to the bottom of a river, and I still got the job done.
I've written about the night flight electrical failure in an earlier post. The river story is for another day ;-)


Wednesday, September 24, 2014

Here's a Surprise, I am Behind The Tech Curve

There used to be a picture of me in the dictionary under early adopter. I stood in line for game console launches, game launches, device launches, etc. I had Model 1 of lots of products.

My wife, being a Marketer, was amazed when she discovered this. She was both surprised that Early Adopters were real and she was married to one. I never told her I played D&D until after we were married. ;-)

So, here I am, with an 8 yr old in grade 3 and we have been informed that the school is now allowing (and encouraging) BYOD (Bring Your Own Device) for grade 3 at our school. The personal computers can be used for computer time and for in class research if the teacher allows it. Our teacher is on board and so my wife and I are now left releasing we are one of the late adopters with electronics and our kids.

Part of this is our desire to reduce screen time for our kids. Part is our desire for them to be drawn to outdoor pursuits and finding fun without the need for a terminal.

But now I must admit that culture is moving on and technology is now a requirement for an 8 year old in class.

Frankly I am not surprised and also amazed at the same time that I will be sending my son to school tomorrow with a Surface RT so he can research in class. It's cool and younger me loves the idea. 

The old man in me says, "When we were kids we hauled a Dictionary and a Thesaurus in our backpacks. And no a Thesaurus is not a Dinosaur! Damn young whipper-snappers."

Oh well, technology marches on.

Sunday, September 21, 2014

The Blerch Has Been Beaten, For Now

Friday I was frying with a high fever. Yes, the first school cold is rolling through our house and I felt terrible.

I skipped going to pickup my race kit on Friday and thought I would not make it to the race Saturday morning. When I woke up, I was not a ball of fun. I pulled on my running gear and shuffled out to have some waffles with Nutella (breakfast of running champions).

My kids and wife asked, "Are you going to go run?" I told them, "I don't know. I am going to get my race kit at least and then I will see how I feel when I get there."

I truly felt terrible and did not want to run. But I realized this was The Blerch, inserting excuses. Excuses like, "You didn't train. You feel terrible. You have a fever. Go have a rest, you'll feel better."

Screw that, I knew from past experiences that running will make my cold "disappear" for a couple hours. Once I got to the race start I was starting to think, ok, I can do this.

When I got to race kit pickup and I think they saw I looked like hell. They offered, "Hey, if you want you can downgrade to the 10k."

My willpower and desire to run 13.1 miles (the 1/2 I signed up for) was not there. "Yes Please!"

I now had an extra 30 minutes to hang out and decide to do this.

The 1/2 marathoners were off and we started to lineup for the 10k.

I was in.

I decided to use a tactic I had used before. I went into the back of the pack with the "hope" I would feel good enough to pass people and have that motivation to spur me on. It appeared to work as I passed people and felt propelled by this. I was not sure I'd be able to keep up the pace but it was working well.

I steadily passed people until I hit an equilibrium and stayed pace with the people around me.

Then I ran a good race. I stopped twice to take a walk break, once in mile 4 and then again in mile 5.

The race was super fun with a ton of costumes (Banana Man, Hot Dog Man, many Blerch, fat suits, an Oreo Box, a female Rebel Pilot in Orange dress, the list goes on).

A truly funny part was when a lady dressed as a Blerch called out to me to have some cake as I ran towards her at the 3 mile food station. Near her was a Sasquatch lurking in the woods frightening/taunting people to join a Blerch for Nutella Sandwiches on a couch. It was a bit surreal, like running through an Oatmeal Comic.

If you get a chance, come try it next year. I'll be back.

Friday, September 19, 2014

Writing a Software Development Agreement

Now that the word has gotten out that I am contracting, I have had interest from friends and associates in doing "small" apps (iOS and web) for them. That's cool but I know very little about running a business and writing software for others is a business.

Currently I am contracting through a large contracting firm and so I have not had to deal with writing contracts or the business side of contracting. With the number of enquires I have fielded, I figured it was time I drafted a Software Development Agreement template that I can use for projects I consider taking on myself.

Being a developer for many years, I know that Software Development is hard. What do I mean? I mean that turning an idea into a finished product is hard. Delivering something that matches the original concept is hard, but we can make it easier. We make it easier by capturing requirements, agreeing on a process for change requests, and iterating on the design with frequent check-ins with the client to verify we are on track with the vision (the Agile way).

That said, business is business and I need something in writing that a client and I can use as our guide for how to deal with delivery, changes, intellectual property rights, compensation, and the other details we as developers seldom think of.

So, I did a few searches and here are some links I used as a guide.
I took what I liked from each and dropped some stuff I was not in favour of. I am not truly happy with this format yet, I would like to write something a little more free flowing but this is a good start.

Take a look at my Software Development Agreement and see what you think. Also, remember, if you have been reading along here, I am not a lawyer, nor do I play one in real life or on TV. So, talk to a real lawyer if you want real contract advice.

Anything I should drop?

Anything you think is missing?

-- Mark

Wednesday, August 27, 2014

I Have to Hire an SDET (Software Development Engineer Test) for iOS, What Should I Ask?

One, of many, of our beach rock finds.
This was the question I got a few weeks back when an acquaintance from Xcoders messaged me to say he had to interview an SDET, for their iOS product, later that day. He did not know what to ask and what areas he should ask them to dive into. Did I have any suggestions?

So, over Twitter I gave a couple quick ideas on what to ask.  Here is that list, expanded a little.
  • What frameworks have they used to test iOS?
    • Compare the differences between those frameworks.
    • Go review this answer on stack overflow about iOS Testing. This will give you a rundown of the testing frameworks and tools for iOS.
    • What are the pros of those frameworks? What are the cons? And the next question...
  • Have they done UI Automation testing? How? What were the results of that testing?
  • How do they manage their tests? It should be better than I don't. Tools used to track the tests to know what coverage you have is essential.
  • How do they report on them? Not much good doing tests without being able to report on the results.
  • What are the different granularities of tests and how have they used them in past positions? Which do they find the most useful for iOS?
    • Unit Tests
    • Functional Tests
    • End To End Tests
    • UI Automation Tests
    • Manual/Adhoc Testing
  • What difficulties have they had testing iOS?
    • Or maybe the more blunt; What have they found to be unsuccessful or not of value when testing iOS?
    • Ask this since it might highlight the one area you want to concentrate on they might hate.
  • I have seen testers write great and sometimes not so great bug reports. 
    • How do they log a bug? 
    • What information is important? 
    • They should have an opinion on what to include.
  • Most iOS apps use a web service back end of some kind. How do they test the results of web service calls?
    • They should be saying Charles (or alternative packet sniffer like WireShark) here and using a proxy to sniff the HTTP packet flow.
  • Whiteboard time
    • Give them a simple method (Objective-C based please), just the definition and what the method is supposed to return.
      • For example, something that takes a string and returns a sorted array that includes each unique word found in the string. I just has to be complex enough to cause them to write several examples.
    • Ask them to write testcases for this method.
    • Do they know the syntax of Test::Unit style or RSpec style?
  • Can they program? If not, then you don't want them as an SDET. The whiteboard coding question should be a breeze for them.
  • Do they know scripting languages? Ruby? Python? Javascript? 
    • They should since the tools built on top of Apple's iOS testing frameworks are normally written in a scripting language.
    • They will also need to integrate tests with build systems which means command line knowledge and the ability to script command line jobs.
That was the short list I came up with with some additions once I expanded on the brief Twitter exchange.

Anything else you'd look for or ask?

Monday, August 25, 2014

Is Contracting For You?

I have not answered that myself and as such I am asking myself that question. I certainly like the fact I am working on new things and getting to branch out into areas I might not normally get a chance to work with. That said, there are some downsides as well.

At first you are going to see that hourly rate and say, wow that is a lot per hour. Hold on there though. Most likely that rate does not include paid holidays or vacation time. So you need to take your salary/year based on 40 hour work week (if your contract is 40hr/week) and then minus the vacation time you'd like to have and the holidays you won't get paid for. Check up front to find out if you can work holidays. If you can't, each of those days off is 8 hours of pay you are missing.

That adds up to make your hourly rate start to not look so good.

The other thing to consider about your rate and contracting is are you going to go with a firm (I have) which makes finding contracts easy but eats into your rate. Meaning, that the contracting company is taking a cut of the rate per hour you are being paid. Now, you don't see that taken out of your pay cheque, but needless to say, if you want to do the harder path and run the business side of things then you can make more contracting on your own.

Also, do you want to gain ownership of something and make decisions about the design and direction of the product? Then contracting, unless it is an architectural position, may not be your thing. So far I have seen that contractors in general are paid to get stuff built. That is great if you don't want to have ownership and just like doing new things each day. Not so cool if you like to have a say in the product and help design what you ship.

I am still out on this one. There is certainly an advantage to just being a grunt, getting stuff done. It is amazing to see the amount of code/progress you can make each week just implementing and not planning. That said, it's nice to have some more skin in the game with the design of a product.

Some other things to keep in mind is that you (most likely) will not get matching contributions for retirement or other benefits. That is fine if you are getting paid a high enough rate. If not, then you are missing another chunk of cash.

Contracting has the allure of new projects, less maintenance of products, and the ability to make more hourly. The truth is that the new projects and less maintenance of long term code comes at the price of ownership in the product. The high hourly rate hides the visible benefits of full time positions that you might not consider.

So, like many things in life, it all comes downs to tradeoffs. Which ones are you willing to make and what do you want out of your job.