In a previous article I wrote about Katas and how understanding them can help make programmers stronger. Most Katas are relatively simple: they are usually used for small tasks, like to score a card for a bowling game or to convert roman numerals into numbers. Few of them have a real display, a real model, or significant complexity.
But have you heard of Conway’s game of life?
Conway’s game of life is a program that simulates a universe under specific rules. In the past I have not understood Conway’s Game;it is typically described as a”multidimensional cellular automata“, and I never quite understood the definition of those words. In this article I will use my experience to describe Conway’s game of life in more common words, and also explain how we can use it to become better programmers and technical staff.
Facebook is creating a company town in Menlo Park, California.
A company town is a residential area, complete with schools, grocery stores, and entertainment built by one company. Employees of that company will live there for a discounted rate. And sometimes, these companies will relocate entire families to these developments as a way to bolster their workforce. The auto industry notoriously created entire towns like this.
Facebook is doing this in something they are calling the Willow Campus.
This is good for Facebook, but probably a bad idea for its employees in the long run.
Amazon made yet another company acquisition this week. This time they bought Whole Foods for $13.7 billion. Journalists are talking about this merger could resolve some issues in food supply. The general idea there being that there are neighborhoods in the US that don’t have easy access to a grocery store. Amazon having stake in Whole Foods could potentially mean that they can resolve some of this problem by using their new access to grocery products in combination with their nearly complete supply chain.
I am seeing some potential downsides to the merger that will take some time to flush out.
I have worked in several agile projects over the years and they overwhelmingly look like a phased waterfall project got squished into two weeks. Take each phase of a waterfall project — planning, design, coding, testing, delivery/maintenance — put them into a two week delivery cycle, and that is my experience of agile. I suspect that is the agile experience for a lot of other people as well.
I went to another local tech meetup yesterday. This was an introductory agile talk for people that didn’t have much exposure, but the content was driven mostly by audience questions. The content was very good. The speaker started drawing models of what a waterfall project looks like, what an agile project looks like, and then some process we like to wrap around modern software development.
That is when it clicked for me.
Nashville is a meetup town, there is a meet up for just about anything you have an interest in. Have a thing for mechanical keyboards? Wt got you covered. Yesterday, I went to a combo meet up that covers testing, automation, and development all together. The theme was something I had heard of once or twice, but didn’t really know anything about, ChatOps.
My initial reaction to the term was “great, more fluff”. But, I kept my word. I attended the meetup, sat quietly and listened, asked a couple of questions, and learned something new.
This will be a lite into to ChatOps for people that were like me and had just heard the term once or twice.
Modern Unit Testing came out of Test Driven Development (TDD). The first Unit Test Tooling was designed for Smalltalk; jUnit and nUnit were strange, free plugins that were (shudder) open source. The people in the Alt.Net community found the Microsoft tool stack actively resisted TDD, continuous integration, and other technical improvements the XP and Agile Communities were making to the way software was delivered.
In technology terms, that was ancient history. Let’s talk about now.
Today, when I work with a company, they have likely heard of TDD.
They just don’t use it.
Here are a few patterns I’ve seen.
It was a long commute today and a long drive back, which meant I caught the majority of former FBI Director James Comey’s Testimony before the Senate and an hour of analysis.
About halfway through the analysis I realized that I had heard this story before. In fact it mirrored my own experience.
James Comey, former director of the FBI, had been through a political experience very much like my own … and one you might have been through, or might have to go through some day, as well. Continued »
I have been doing contract work in technology for the past three years or so. I have always had the goal of doing independent work as far back as I can remember, but wanted everything to be just right to start. It was bits and pieces of work at first — an article here, some crowd source work there. Over time it was harder and harder to balance having a day job and freelance work. I ended up leaving the day job (as you already know) and doing this full time.
There seems to be a lot of mythology surrounding contractors and contract work, so I thought I’d share a little of my experience around some key points.
And I felt a bit better. Because if Neil Armstrong felt like an impostor, maybe everyone did. Maybe there weren’t any grown-ups, only people who had worked hard and also got lucky and were slightly out of their depth, all of us doing the best job we could, which is all we can really hope for.
And, of course, there are experts stating out loud at conferences that they have no idea what they are doing, and encouraging everyone else to stand up and agree.
Here’s the part where I get in a lot of trouble.
You see, when I hear those appeals, I remain seated. I have the audacity to believe that I actually know what I’m doing.
I know. I must be some sort of narcissist, right?
Working from anywhere that isn’t an office, or remote work, has been a popular topic lately. IBM recently decided to end its remote work program. More than 2,600 people will have a choice between relocating to a city with an IBM office, or finding work elsewhere. IBM is citing effectiveness and efficiency as the reason for this decision.
I have been working remotely for pretty close to half of my professional life. I was at home from 2011 to 2013 and then again starting in 2015. I have worked with teams that are all remote, and with teams where some people are in the office and some do their own thing. Here are a few opinions I have developed over that time.