Author Archives: loufranco

Socially acceptable cameras in AR

At some point, there’s going to be an AR device that looks exactly like glasses. I also hope that they don’t have cameras. If they have a camera, then they also need an indicator that it’s on. Walking around, for example, NYC with people wearing the glasses equivalent of 2000’s style iPod white earbuds is probably creepy. There’s no way around it if they also have lights and cameras.

But AR needs reality to augment, and a lot of reality is percieved visually. So, without a camera, these glasses will be a lot less useful. If we look at Apple’s AR features as a guide to how it feels about cameras, you can see that they are pro-camera. At WWDC 2021, they demoed a feature where you can orient yourself in a city by pointing your camera at the surrounding buildings. This would be very useful in a heads up display.

So, we will probably have the front-end of a camera to take in visual information. But, AR could still be very useful without ever producing a visual from the hardware.

One obvious (and currently available) representation is a depth map. Apple is testing out LIDAR on iPads and use a depth sensor on iPhones for face detection. The representation is a mesh, not an image, so it might be acceptable and is useful for a lot of AR.

Another thing they could do is pre-process the video feed into a given set of layers in a neural network. The first few layers in an image processor usually do some down-sampling and feature extraction. I’m not an expert, but if these things cannot be reversed back into the original image, they might be acceptable. In current feature detectors, you can retrieve some bits of images (see this), so there’s some work to do. But even if this is ok, it’s a big public education project to get it to be socially acceptable.

But Apple has shown some willingness to talk about its privacy protecting “provably cryptographically safe” technologies and open them up to third-parties for verification, so maybe they’d be willing to go this route to get a “camera” into their AR glasses.

Apple Fall 2021 Event Wishlist

I’ve done a bunch of WWDC wishlists (e.g. 2021, 2020, 2019), but I haven’t done one for the main hardware event, which is this Tuesday.

I’m sure that the iPhone, Apple Watch, and maybe even the iPad (or Macs) will get nice improvements, but I can’t think of anything more I’d want. I am on the iPhone upgrade program, so I’ll end up with a new phone regardless. And the trade-in value on watches usually makes updating a reasonable option.

So, the main thing I’d hope for is something in AR. I’ve written about how I think AR could make apps more like games, and I do think that there’s space for a workout AR device. I would love to extend Sprint-o-Mat to make it feel like you’re in a race against the pace-runner. It would also be a good addition to Fitness+, which could extend to outdoor activities.

It feels inevitable that there will be something in AR eventually from Apple. I think one social issue is what to do about cameras on AR devices, which I will address tomorrow.

A Tale of Two Restarts

I injured my hamstring right before I was set to run a marathon this past June. I went to a few physical therapy sessions to see if I could do anything to salvage my training, but ultimately I decided to not do the marathon and greatly reduced my running volume so that I could heal.

And then I just stopped altogether.

I was traveling and my hamstring wasn’t getting better, and I just wanted to not think about it for a few weeks.

At the same time, I also stopped writing and podcasting.

By the time I got back, my hamstring felt great. I had lost a bit of fitness, and July in Florida is no time to train or run marathons, but I did settle back into my normal summer training regimen. I had restarted immediately without really trying that hard.

I did not restart writing. What was the difference?

For one, I’ve been running for a very long time, and I have gotten a lot out of it. I generally believe my health depends on me doing it. And, in the past three years, I have been doing it very consistently. Every run I do now seems to pay off immediately in self-esteem, weight maintenance, and feelings of fitness.

Although I’ve been writing over the same period, I have only gotten very consistent six months ago. And, although I have had successes, the benefits of continuing are not as clear. I have data that shows I am slimmer, faster, and more efficient. I don’t have anything like that for writing.

And, I legitimately hurt myself running in a way that rest would help. It was not an excuse. The work I needed to do was to rest. Perhaps that was the same with writing—maybe I needed a rest. That does feel like more of an excuse to me though.

I also have an app that I care about that can only be used if I run. My programmer identity forces me to run in order to program.

But, probably more importantly, I belong to a running group with a coach. It’s harder not to run than to run. There is some accountability there, but that’s not what helped me restart—it was my coach making a specific plan to restart that helped. She had been in my position many times and could help me through it.

So, what could I do to make sure I keep writing? I think two things are clear

  1. Get a coach.
  2. Have some kind of feedback mechanism.

My main issue is that I don’t really have a goal beyond just doing it to do it. I thought that would be enough, but I think I could use a little more.

I choose not to quit

THOSE WHO WOULD MAKE ART might well begin by reflecting on the fate of those who preceded them: most who began, quit.

Bayles, David; Orland, Ted. Art & Fear

I began this year with the intention of writing here everyday and for 6 months or so, I found it easy.

And then, life got in the way.

In my case, it’s not bad news. I took some time off to travel in the COVID dip in June/July and got to see family and friends that I hadn’t seen in a year or more. And, I started getting interesting projects with deadlines and expectations. I don’t think it should have totally derailed me, but it did.

But, I’ve come back to some kind of equilibrium now. Or maybe it’s just the normal ebbs and flows of energy. I pride myself on having discipline and not needing motivation, but that only works most of the time. Not all of the time.

In any case, I choose not to quit.

Aim a Little Higher in your Whitepapers

I recently handed over my email to get a “whitepaper” that looked interesting from a company that had been recommended more than once as having an interesting product. I was kind of shocked at how shallow it was.

It was not just a crummy commercial — I think I would have preferred that though. I don’t mind being sold to if it’s done well.

I remember writing these kinds of things for Atalasoft, and it’s tough. I found one of my old ones that tried to teach imaging to prospective customers.

There are things in there that are simple, but my intent was to make the reader into a somewhat advanced user of imaging products with a deeper understanding. It’s kind of implied that our product could help them do these things, but they were free to try to do it themselves or use our competitors. I was betting that they’d give us a shot and we’d win on the merits.

I knew from talking to customers that these things were not obvious and not knowing them was making their use of our product limited. We could help them more, but they didn’t know what to ask for. The whitepaper was written to get leads, but I sent it to customers too when it was obvious it would help them.

As a test, put the first few pages up for free and see if you still get emails for the rest.

Outcome Story Templates

In yesterday’s post about Outcome Stories, I don’t think I quite got the story right.

I suggested changing the story from “As a writer, I want to publish posts, so I can share it with readers.” to “To get readers, a post must first be published.” I do think this does put more emphasis on the goal because it’s the first few words of the story.

But, it would be better if it were the subject of the sentence. The subject is what we’re talking about, and in my fix, we’re talking about the post, not the outcome.

So, tweaking it more, you could say “Getting readers requires that the post is published.” Maybe this is semantics. The more important thing is that the goal is early in the sentence, but if it can also be the subject, it will carry more weight.

But, if we go down this route, maybe we can develop a template around it

  • [Outcome] requires [the object] to [have a state]
  • [Outcome] requires [the persona] to [do an action] to [an object]
  • [Outcome] requires [the persona] to [do an action] to [an object] when [a trigger happens]

So, we end up with: “Getting readers requires the author to publish the post when they are done writing it.”

And again we’re clear that this is necessary, but not sufficient to accomplish the goal.

Outcome Stories

User Stories are centered around the user persona, which seems like a good idea, but it would be better if they were centered on a business outcome.

Consider the Publish button in WordPress.

One way to write a specification for this is to mock that screenshot I pasted above in Figma and say what the button does when clicked. Perhaps you’d use the typical User Story format and add “As a writer, I want to publish posts, so I can share it with readers.”

That works well in the sense that the production software will probably do what was specified. But, we’ve lost an opportunity. The story is focussed on a persona, but doesn’t emphasize the goal. I’m not even sure the persona matters at all here.

And just like no one wants a drill, I don’t want to publish. I want to influence readers. Others might want ad revenue or newsletter subscribers or to sell books. So, can we take the opportunity in this story to remind everyone about the business goals? The final state is not a published post.

It seems like a small tweak, but I’d word it “To get readers, a post must first be published.”

And now it’s obvious that this is insufficient. Yes, we need a Publish button, but that won’t accomplish the goal. This wording begs for more features to support the actual goal. It also implies that the metric for the success of the Publish button is the number of readers not (for example) the number of published posts. How would the design of publishing in WordPress be different if it was centered around the business goal of the users?

Publishing should lead directly to distribution, but in actual WordPress, the end of the publish step is a button to copy the link.

I guess I’ll go tweet it myself.

Sell Your Learning Plan, Not Your Roadmap

The reason software companies adopted agile practices was so that they could adapt their roadmaps to whatever they learned along the way.

If you learn something and do not change the roadmap, then there was no point to learning it. You might as well be doing a waterfall process. I think everyone accepts this. After all, waterfall is a myth. No one really thinks that the roadmap is set in stone.

But the business needs to plan. Marketing has events that need lead time to develop messages and material. Sales has prospects that want to know where the product is headed. Support, Training, and the Documentation team need time to get ready for new releases.

Some of this can be solved by developing support material alongside product development. For example, an embedded Product Marketing Manager can be closely following the trajectory of the roadmap and be developing messages at the same time. Even better, they can be helping to shape the roadmap from insights they get from their customer engagement.

The hard part is what to do with prospects. If you’re Apple, you never talk about what’s coming until you are ready to sell, but most of us can’t do that. Our prospects will certainly have unmet needs, and if you know you are actively working on them, it’s tough not to tell them. But, what should you say?

The truth is you don’t know the roadmap beyond the next few sprints. You are actively hoping that you learn something that will change it. New information is highly correlated with innovation.

But you are not changing your mission as easily. You know which customers you want to serve and what jobs of theirs you want to help with. So, talk about that and not the specific features you currently think will help. And talk about what you do know is coming (if you want). Even in a learning organization, the short-term roadmap should be pretty solid.

Product Development might not be able to commit to exact features, but they should commit to a learning plan, and that’s the roadmap that is safer to talk about.

An Unnamed Programmer in Peopleware is One of my Heroes

I read Peopleware early in my career and revisit it every few years. Yesterday I wrote about what they meant about 10x programmers, and while doing that, I looked for this excerpt, which I think about all of the time (emphasis mine).

One of the upper managers buttonholed me to request that I assess […] his project staff. He was particularly curious about one woman. It was obvious he had his doubts about her: “I don’t quite see what she adds to a project; she’s not a great developer or tester or much of anything.”

With a little investigation, I turned up this intriguing fact: During her 12 years at the company, the woman in question had never worked on a project that had been anything other than a huge success. It wasn’t obvious what she was adding, but projects always succeeded when she was around. After watching her in class for a week and talking to some of her co-workers, I came to the conclusion that she was a superb catalyst. Teams naturally jelled better when she was there. She helped people communicate with each other and get along. Projects were more fun when she was part of them.

Peopleware

They go on to say “The catalyst is important because the project is always in a state of flux. Someone who can help a project to jell is worth two people who just do work.”

I don’t know who she was, but this programmer was one of the most influential role models of my career. I constantly ask myself what would she do. My post about How Senior Software Developers Think is my take on it, but it’s much more than that. Coding is certainly an important part of being a software engineer, but most projects can technically be done by a wide range of coders. The other skills, the work that makes the project succeed, are a lot more rare in my experience.

How to Become a 10x Programmer

The idea of the 10x programmer probably originated with Peopleware. The authors ran pairs of developers from the same organization through a “coding wars” exercise. They collected data from many organizations over several years and measured that the best coders did about 10x better than the worst and about 2.5x better than the median ones.

But, probably everything you have heard about what that means is wrong.

For one, even though the pairs did not work together at all, their results were highly correlated with each other. Secondly, the participants in the exercise worked at their desks in their normal working environment. Finally, there wasn’t a correlation to experience level or technology used.

The authors conclude that the organizational environment and culture is a major factor in the effectiveness of its programmers.

The bald fact is that many companies provide developers with a workplace that is so crowded, noisy, and interruptive as to fill their days with frustration. That alone could explain reduced efficiency as well as a tendency for good people to migrate elsewhere.

So, how do you become a 10x programmer? By changing jobs to an organization that provides an environment where you can be effective.