The long overdue birthday video…
The summer of Shelby is almost here. For the past 18 months Shelby has been coming together. It feels like a long time, but when you consider that this is a 1.0 product that wasn’t even imagined two years ago, and was only a crude prototype 6 months after that, its amazing how fast things have moved.
I’m in Germany this week, at Hannover Messe, the largest industry event of the year, where no less than 4 Shelby pre-release units are on the show floor, scattered among partner booths. Thanks to one of those partners, we even got a pretty cool video to show off with. We’re not quite done yet, but we’re getting close and its pretty exciting to see people’s reactions.
Shelby is something new in this space. It allows industrial automation users to bring expectations from consumer products to their jobs. The equipment my company makes is built to last for decades — literally, 30 year old products are still running in manufacturing operations. But with all the focus on durability and reliability, there’s not much room for usability. Shelby, maybe for the first time, bends to meet the user’s needs, rather than the other way around. Its not perfect, and it has a lot of bending yet to do. But it delivers something to every customer within about 5 minutes of set-up, and it does it in a way that puts a smile on people’s faces.
But that’s not the thing I’m most proud of — Shelby is something new for its developers too. Shelby has personality, because the people who made it put some of themselves into it. This was not a top-down, Functional Specification driven product development cycle. This was a personal, iterative, lean project, designed by engineers, interface designers, and a product owner who spent his evenings writing code.
Someone once asked me “If there isn’t a requirements document, how will engineering know what to build?” Isn’t that a bizarre approach to inventing something new? Yet, that’s the norm: someone in marketing writes a requirements doc, throws it over the wall to engineering, who code what they think they’ve been asked for, throw that over the wall to QA, who test how they think its supposed to work, then someone in marketing tries to go sell the thing that’s been squeezed out of a machine like sausage. For most of that cycle, the customer is an abstract concept that the majority of the people in the process will never know, and the output is usually quite different than the person in marketing thought they had spec’ed out.
Our team is different: I’m “product management”, but I sit next to engineering and design, and “QA” is a developer on the team charged with ensuring tests can be automated and quality can be tracked through daily execution. We all sit together physically, and collaborate continuously. We’re constantly sharing what we’re doing with customers (maybe just a little bit too constantly!) who steer the direction of the development iteratively. Work is done in two week sprints that are discussed not more than two or three weeks in advance, so that we can constantly adapt to new information, better ideas, and input from the customer or the business. The approach is called “Lean Agile” and while we’re not the first development team to implement it, we’re among the early adopters in industrial automation.
To then take this very personal thing, which embodies the creativity and skill of every part of our (slightly too small) team, and deliver it to a marketing machine to be included in boilerplate messaging, with a name we didn’t get to choose (the actual name is 5 words that describe the product, but capture no one’s imagination) is more than a little frustrating. But even despite the efforts to normalize it, this thing has too much personality, and it explodes out of the box, with a cute logo and our code name getting used by customers when they ask when they can buy it, and partners making videos showing it off.
And suddenly, and finally, it has a life of its own, and it doesn’t matter that it was an uphill battle to get here, or that we had to fight the normal process, explaining over-and-over again why we were breaking so many rules or why doing something differently didn’t mean you were doing it wrong. Suddenly none of that matters, because people love it — and I don’t have to evangelize any more, because everyone wants to talk about it.
There’s work left to do before we ship our 1.0 product. Sometimes I’m not sure how we’re going to get it all done. And 1.0 is not the end of the journey — its literally the beginning. There’s a roadmap a mile long of things we wish we could have gotten done, and a vision that goes even further. But this way of doing things works: its bigger than marketing, bigger than product management, and bigger than me, because there’s a team of people who own it, and care about it, and want to make it better by listening to customers and doing the best work they can within our constraints.
This one took everything I know, and everything I’ve learned up to this point — and that wasn’t nearly enough. It needed a team of people who brought what they knew, and were willing to pour that into a little gray box that lets industrial automation customers feel like someone actually cares about making their jobs easier. It may not be a product that changes the world, but its a product that I’m awful proud of.
Still, it was a pretty good year for our little clan. 2015 had another big move, so in 2016 we learned to settle in a little — without ever settling.
The kids found good friends in our new neighborhood, and our home is often filled with the happy voices of kids. We got a trampoline and an inflatable pool big enough for our 3 and the four down the street who appeared often in our house this summer. School is also going well, after some adjustment period. Ben found himself at another new school in the fall, as he was routed into a gifted program due to his “superior cognitive ability” and “exceptional mathematics” — a challenge he took mostly in stride. Abi struggled for awhile with the social aspect of the move (something that reinforces our desire to avoid any more major moves for awhile) but seems to have found her own. And Eli burst into Kindergarten in September, after a year of pre-school here, already reading and quite sure she should be the center of everyone’s attention. Nic volunteers at the school regularly, and enjoys seeing our kids blooming where they’ve been planted.
We also managed to pull off three great trips: Grand Cayman to visit Grandparents and the West Coast to visit family and old friends, both with the kids, and Paris and southern Germany without the kids. It remains important to us that our kids grow up with a global perspective — but it was also really nice to get away just ourselves. We celebrated 15 years of marriage this summer, so it was worth marking that milestone with a long overdue adventure for the two of us.
We moved churches in the fall. The immediate area lacks the cross-culture exposure we desire for our children, so we thought we should at least benefit from the terrific teaching of a large and well-known church about 45 minutes away. The teaching was indeed fantastic, but the trip was too long, and the church body too large to feel like we could make it home in any reasonable amount of time. We decided instead to do our weekly involvement in a smaller church closer to our house, and get our culture (and drive time!) through periodic ministry with an urban church in downtown Cleveland, where the kids help us teach a Sunday School class every other Saturday evening.
Despite my original expectation of a reduced pace of work away from the tech elite of the west coast, things haven’t really slowed down professionally. My job is a mix of things I’m good at and familiar with and areas to grow and learn, with a new level of leadership that I’m furiously reading books to try to become competent at — with some success so far.
From where things look now, 2017 promises a new level of adulting, as most of the discretionary funds are already ear-marked for home improvements and furniture upgrades — our sofa set having now survived 3 babies! But although we may be slowing down for a season, we remain excited for the future, eager to serve our loving God, who has shown us such great mercy, and to find ways to show His love to others. I often ask Him why He has not tasked us with more tangible expressions of that duty, but I’m encouraged by the example of others that God’s good work in us is a life-long journey, and we’ve only just begun.
The last big company I worked for afforded me a number of different roles. At the start of my career, I worked for about 10 years as a software developer — a job I was passionate about and reasonably proficient at. After about a decade of that, though, I got a little tired of constantly learning how to solve the same problems again but with yet another new technology, but also afraid of turning into the guy in the cubicle next to me who was still doing the same job on 20 year old technology.
Fortunately, God moved my career toward more commercial roles, and I realized that my sweet spot would be somewhere between technology and business (kinda like this guy). It turns out there are a lot of different options for careers for people like me. I tried my hand at evangelism, business development, and finally product management. And that last stop, at Amazon, felt like home. As a product owner, you get to create the theories of market impact, define the vision, and once in execution mode, you can go as deep as you want with the engineering team on how to solve the problems that get you there. There aren’t many jobs where you can be in an executive board room one minute, and checking in code for the nightly build the next.
About 15 months ago, when I started my current job, our leadership had put out a dual challenge: do something in a space called “analytics”, and go fast. Analytics is just information software, which I wrote for years. And going fast is something we did really well at Amazon. It was a good fit. My new boss and I spent many hours reviewing analyst and market data, talking to customers and potential partners, and (for me) learning about what technology we had available to us in-house. Old friends and colleagues provided input and guidance, and a plan formed. We went back to the leadership and proposed assembling a small, cross-functional team with engineering, design, quality, business and product skills all reporting to the same leader (an “A-Team” if you like…) My boss would be that leader, and I would lead the product and technical effort. We set a goal of building a product in one calendar year, from sketch on a whiteboard to box on shelves — an unheard of target at this company, but one we thought we could pull off by combining new code with some existing bits pulled together to express something new.
In January of this year, after a few false starts and final approvals, we had the core of the team: 3 software developers, 1 part time designer, me as a product owner, and my boss as manager and business owner. Within a couple weeks we had added a test automation developer, a part time researcher and a front-end contract developer, and we were off to the races. Although we had those pre-existing bits, our computers, and a few cardboard boxes of tech that one of the developers brought with them, we were otherwise starting from scratch. The team built our test environment, simulating an industrial operation, our build system, pulling together and compiling the code from each participant, and our process, a combination of Scrum and Kanban with a lean Agile philosophy.
We work in 2 week sprints, automate our testing to ensure quality within a small team, and demo our work regularly to the leadership and potential customers. By August we had prepared a “preview release” that we invited 5 customers to run in their labs to validate our approach and ideas. And in less than 2 weeks, we’ll officially announce our product to the world at our annual conference. We lost a developer to retirement this summer, which impacted our velocity, but our contract developer moved to full time, as a great hire for the company, and we’ll soon have the empty seat filled for the final stretch of this race.
My job is a lot of things I love — and just a few I don’t. I do get into the code, a little more than I expected, but it helps take some of the pressure of the team’s deliverables. I present a lot, and throughout the year, as our product has evolved, those get more fun. Customers have never seen anything quite this cool coming from this space. We’re leveraging some consumer technology and ideas to make our product more approachable and interactive, with a focus on making sure customers can start using what we’re building within minutes (as opposed to weeks or months for most information software in industrial automation.) Because we’re in a big company, I also have to do a lot of paperwork — a necessary step for audit-ability and customer confidence — but thanks to some of the pre-work by other smart people in the company, we’re able to do a “light version” of the process, on the understanding that our product will be able to be updated and improved continuously after launch.
The codename for the product is Shelby — and as it started fetching information for us, Shelby took on a dog personality. Its software and hardware, married together as a single-purpose, near zero-configuration appliance. On start-up, it needs to know what language you speak, what time it is, and how it will get an IP address — and that’s about it. Shelby configures itself from there by exploring the operation its been connected to, identifying the parts, and building an information model about what it sees. Once that’s done, it starts analyzing the data and looking for problems in the operation, and producing information about what’s going wrong (or potentially, about to go wrong.) In the customer sites and labs we’ve been in, Shelby’s record so far is 121 devices and 23 problems — all discovered in less than 3 minutes. To be clear, this could be done before Shelby — but it would take weeks of custom system and tool configuration. Shelby makes turning data into information an instant and repeatable solution, that customers can buy as a (relatively) inexpensive product and service.
We’ve had highs and lows, support from outside has come and gone and come back again, but my little team has never failed to wow people with what we’ve accomplished in the short amount of time we’ve been working together. I couldn’t be more proud of my crew, and of our little product. Its industrial analytics for everyone; its a little bit of magic in a box, and its almost here.
Publicly available WiFi sucks — for more reasons than one. Other than the obvious slowness, there’s also traffic and packet shaping, ads, and the gaping security problems that come from being on the same network as strangers. Most sites are encrypted between the client and the server, but who knows what kinds of identity information you’re potentially leaking to the owner of the network — or the other guests using it.
But that’s nothing on your work network, where the IT department — or even the HR department — have access to your activity logs, including every request you send to a server. That’s assuming they even let you get to the sites you want to visit. Some employers are more open than others, leaving it to the discretion of the employee (and heuristics against your activity logs) to determine what parts of the internet are appropriate. My current employer is not one of them. Want to see that picture of your kids your wife just posted on Instagram? Too bad. Like to have some background music or video playing while you work? Not here. How about doing some work in the Cloud — y’know, when your software team is tasked with making Cloud software? You’ll need a special exception for that…
In short, if you want any sort of expectation of privacy while emailing with your spouse, or banking online, your best choice is to wait until you get home. Failing that, creating an encrypted tunnel from where ever you are through your home network is the next best choice. Enter VPN software. Long the domain of enterprise networks, with OpenVPN and a Raspberry Pi its available to any reasonably savvy individual. PiVPN provides a simple script that makes setting up a VPN a breeze. Set up a free Dynamic DNS entry, and poke a single port through your router, and its done. You can generate VPN configurations for your phone, or your Mac or PC laptop with a single command.
Once this is setup, you can flip a switch from anywhere and open an encrypted and secure tunnel through your home, and out to the Internet from there. Anyone on your public or work network trying to hack, limit or snoop your connection will see only garbage in traffic. And if you have resources on your home network, those are available to you (including remote desktop, file sharing and printing.)
Now if I can just get OneDrive syncing with my Pi…
Update: You can also run your own DNS, for more privacy and less ads. Check out Pi-Hole!
With all the changes in the past year, we were sorely missing someone — someone we hadn’t met yet. My sister had a beautiful baby girl 10 months ago, and we were overdue for some baby cuddles! So trip #3 for the year was out west, to resolve that problem.
Having changed jobs on average every 3 years, I’ve not accumulated much vacation, so it was a stretch to pull off a third trip this year. Fortunately my team rocks, so we made it work and bundled the clan onto the cheapest flight we could find — having used up all our Delta SkyMiles already! And since we were heading back toward the west coast, we also lined up a couple visits with friends from that part of the continent. We even managed a quick visit with my parents as we all were stopping off in the Toronto airport at about the same time!
Thanks to Facebook’s memories feature, we remembered that we’d gone camping with those same good friends exactly 2 years earlier — to the day. Seems like the start of a good tradition. We borrowed as much camping gear as we could beg from my siblings, vacuum bagged the rest into a duffle bag, and upon our arrival, squeezed it (and us) into a fairly tiny rental car for the 6+ hour drive from Calgary to BC. We camped on Lake Fintry and had 2 gorgeous, and 1 rainy, day in the beauty of that province, where the kids caught up with their buddies from Seattle — and we resolved to continue exploring the west coast with our friends every couple years. The rain gave us an excuse to go out for dinner with some old friends from Ontario who had moved that way.
As we have every other time we’ve driven through Banff, we stopped at Lake Louise to take in the scenery, and save for a potty emergency or two, the kids were the sturdy little road warriors they’ve always been. When we got back to Calgary, we got to spend a few days with my sister and brother-in-law, her two awesome little kids, and even got some time with my not-to-be-too-tied-down younger brother. Our kids loved their time with their cousins, and Nicole and I loved playing with our nephew and holding our new niece — who has a lovely, content little personality, and only screamed at me once (when I somehow screwed up nap time!)
That about does it with the travel budget for the year, but we wouldn’t have traded any of these experiences for all the money in the world. We love that Nic’s family are a lot easier to visit now, but its also a real joy to be able to visit family and friends in other parts of the world. Next year we need to spend some of our discretionary funds on household improvements, but we hope that travel and loved ones in far-away places are always a part of our kids’ childhood.
The drive should have taken about 5.5 hours, but since I forgotten that my GPS app was in “avoid tolls” mode, it took closer to 7. (Incidentally, little known tip: the “Here Maps” app, originally from Nokia, allows you to download detailed, turn-by-turn full country maps for offline use, so you can navigate with your phone without paying data roaming charges.) We got to Kandern late in the day on Monday, approaching from the north, and stopping immediately at the grocery store at the edge of town to buy German chocolate. Then we crossed the street to my old house, Herman Burte Strasse 1a — which looked exactly as I remembered it.
As we walked through town, some changes became evident, which impacted my planned tour for Nicole (which consisted largely of food stops!) The Turkish owned pub that made the unparalleled pommes frites was now apparently under Scottish ownership, and did not have fries; the hundred-year old bakery that sold amazing little brotchen was now a woman’s fashion store; the toy store in town where we wanted to souvenir shop for the kids was gone. But the Eis Cafe remained, and we had gelato and later “spaghetti ice.” My old school was right where I left it, although bigger now that the long-planned addition was complete.
Some changes were good. When we lived there, a small group of refugees lived in a building across the street from the school. Despite being a school full of missionaries and missionary kids, at the time, there was apparently no ministry to those refugees, and we’d look awkwardly across the road at each other, neither group quite belonging but despite our shared displacement, having no involvement with each other. It turns out the Turkish pub moved to a proper restaurant on the other end of town, and while we were ordering up our pommes and shawarma, we heard English being spoken by other guests, and struck up a conversation — assuming they were associated with the school. In fact, they were part of a group of believers now ministering full time to the refugees. Germany has committed to housing a million refugees from the most recent crisis, and the region around Kandern had signed up to receive 40,000 of them. New temporary housing was built on the edge of town, and the school has donated some of their dorm houses surrounding the town to the effort.
Its easy to think of the German people as being somewhat cold. I warned Nicole that we would have to communicate in German (another language I used to have some command over, but is now quite rusty) — but not for long: most Germans in town actually speak some English, but will rarely use it until you first make an attempt to speak their language. Though they may seem somewhat brusque at first, the people of this little region have long hosted the annual plague-like arrival of hundreds foreign missionary kids, and then signed up to house 40,000 refugees.
In fact, the town without the missionary kids felt a little like a movie set without the actors: dream-like and empty. With school out its just a typical little German town — that happens to be nestled on the edge of the Black Forest. Nicole and I drove up to Hochblauen, although it was too foggy to see anything, and hiked to the ruined Sausenberg Castle, where the view was considerably better. Our little Gasthaus in Schlingen was adorable, and afforded us some nice evenings quietly sipping wine and catching up on our reading. We even got in a swim at Schwimmbad before leaving town on Wednesday.
From there we wound our way to Zurich, getting a quick look around, before heading up a mountain to try to find the train to a look-out above the city. We found the train, with a great view of the Alps, but then went the wrong way, and saw some different parts of the city than we had planned! We flew out the next day, managing a few more meals based on French bread, and paying a small ransom to return the rental car in a location different from where we’d picked it up!
It was a near perfect trip, for the limited amount of time we had. We do intend to bring the kids to Europe some day — but when they’re older and can appreciate it more. For just the two of us, it was quite affordable… with 5, not so much. There’s lots more of Europe we’d like to see, but it’ll have to wait for the next trip. Hopefully that’ll be in less than 19 years!