With Regards to Suffering

I read an article on Quartz by Karen Weese this morning that helped me reflect on society’s biases—as well as my own—around how people react with such a range of behaviors and whether that is primarily caused by the individuals themselves or their circumstances. In short, the idea is that when people behave differently than we would, it is not the individual that we should be skeptical of, but their context. I remain hopeful in mankind and I try to find opportunities to explain irrational behavior in terms that don’t condemn. Behavioral economics supports me in this and it drives us to better understand, and even predict behavior based on the things we can understand: context. Two applications from the article are noteworthy. In particular the second applies to my profession directly.

Poverty’s inherent lack of resources and time significantly but temporarily diminishes intelligence, making it hard for just about anyone to thrive. Skeptical? Read the article. Poverty is hard.

Job and situational stresses (particularly WWII bomber pilots) reduce mental bandwidth, which makes it hard to reliably execute even common tasks. In creating software for higher education classrooms, this means that we need to remember that our users aren’t focusing on us, the tool, but on their assignments. We can’t expect everyone to read and explore and emotionally invest in what we build because they’re already invested in other things. Know your place.

It’s too easy to write people off and explain away their failures or our differences on intelligence, race, political party or gender. Anyone can do that. If you want to talk about intelligence and diversity, invest actual time yourself in understanding where people are coming from and how little they may need to care about what you care about. As Dietrich Bonhoeffer said, “we must learn to regard people less in the light of what they do or omit to do, and more in the light of what they suffer.”

Loving Your Fate

I was reminded this morning of the tragic burning of Edison’s labs and his aloof response, “Go get your mother and all her friends. They’ll never see a fire like this again … We’ve just got rid of a lot of rubbish.” I’d heard the story before but what I didn’t know was that Thomas carried a coin carrying the latin phrase “amor fati” or love of fate. Clearly he had learned to embrace the machinations of the world that were outside of his control. Completely independent, I was struck yesterday by the haunting duet Come What May from the movie Moulin Rouge. From the lyrical word choice alone, it is clear that these two lovers face their fate daunted but determined.

There are so many things that we cannot control, and perhaps the greater portion of those we sometimes believe that we can. I am reminded today that not only should I NOT waste effort, but recede and embrace the reality that is happening before me. Although driven for greater realms, embrace the present, there is so much to do here.

Keeping your port clean

Now don’t be grossed out, but this is part of what I found in my iPhone 6 lightening port last night. My charging cord wasn’t fitting securely and I was worried that I might have a loose connection in the phone. After confirming a suspicion with a flashlight that lint-crap was causing the connection problem, I fished this out with some tweezers. It’s not a lot, but enough to keep it from charging.

 

 

 

Keep your ports clean.

Investing in professional development

There’s some debate still about these 20x developers out there, complete geniuses that gave rise to the “rock-star” moniker that every company seemed to advertise for. I’ve remained a touch skeptical–not that there aren’t amazing software engineers, I know several — but I’m skeptical because we still don’t have a really good, accessible ways to measure human contribution to software. Lines of code, commits and story point velocity are readily available. Regressions, debugging and runtime numbers can be gathered as well, but we know that all this still doesn’t paint the whole picture. Also add in the real-world impact that other factors outside of development have on performance as well: good product management, architecture and QA among them, but also deadlines, poor communication and bad management. With all of these variables, it’s going to be pretty tough to accurate gauge order-of-magnitude differences between programmers in the real world. And frankly, I don’t know that you need to because in your gut you already know.

“The differences arising from individuals in any given study will drown out any differences you might want to attribute to a change in methodology.” — Steve McConnell

Back in 2011 Steve McConnell responded to criticisms of his 10x programmer claim thoughtfully by pointing out what he was seeing in the studies that have already been done, most not even focused on individual contribution. What he found was that “the differences arising from individuals in any given study will drown out any differences you might want to attribute to a change in methodology.” In short, it nearly totally depends on who’s on your team. However, over-emphasis on this leads to ignoring methodology and tooling altogether and focusing instead on individual development and hiring, which would be short-sighted. My point here is that on the balance, the latter should constitute a more significant portion of team building efforts.

The trouble arises when you commoditize development. While there are many software tasks that require no planning or design, there is much more that requires careful thought. As Yevgeniy Brikman said in support of the 10x developer, “It’s not about writing more code; it’s about writing the right code. You become a 10x programmer not by doing an order of magnitude more work, but by making better decisions an order of magnitude more often.”

“It’s not about writing more code; it’s about writing the right code. You become a 10x programmer not by doing an order of magnitude more work, but by making better decisions an order of magnitude more often.” — Yevgeniy Brikman

This is why I prefer the title software engineer. Writing good applications is really about a mind well-suited for building: choices, compromises and the collective wisdom of personal experience and industry best practices. Don’t commoditize development. It’s a highly-talented and highly-compensated profession. It’s not about nuturing a team, it’s about providing the humans working around you with the best possible resources to be successful, innovative and frankly, fun to be around. Yes, tools matter, and methodology matters–they matter a lot and they can have a big impact on the quality and speed of your work, but investing in these while sacrificing investment in the professional development of the individuals on the team… well… that’s as bad as it sounds.

 

Supporting Teaching Principles in K–12

GoReact aids in teaching and learning by facilitating top principles recommended by the Coalition for Psychology in Schools and Education.

The Coalition for Psychology in Schools and Education CPSE, working with the support of the American Psychological Association, identified and validated a set of principles from psychological science as the “most essential for facilitating successful classroom teaching and learning.”

While all of the principles are worthy of review and resonate with great teaching that we practice or have experienced, I wanted to highlight two that jump out as being especially easy when using GoReact to capture performance and provide appropriate feedback. Although these principles were directed at preK-12 specifically, many of our customers have shared their successes implementing these concepts when targeting young adult and adult students both inside and outside of formal education.

Continue reading Supporting Teaching Principles in K–12

Last Night I Missed Broadcast TV

Fresh off the Boat is a new show on ABC. It looked funny so I decided to watch it with my wife. But the Comcast app on my iPhone was having problems streaming the commercials. We watched the first two commercial breaks one and half times each. And for some reason the airplay streaming wasn’t working so I couldn’t watch it on my television. Off to a bad start, but undaunted, I downloaded the ABC app. After spending a minute proving that I had ABC through my Comcast account, the show streamed to my TV just fine. But each commercial break included a promo spot for the very show I was watching. Do they even know what show I’m watching? If they did, shouldn’t they stop advertising the show and just show it to me? When the baby woke up and we had to take a break for minute, we got to watch the commercial break again with another promo, before I could resume.

These apps are very careful to make sure that you see each commercial break at least once. And I wouldn’t mind so much if each commercial break didn’t show the same commercials. The exact same commercials. It’s like the apps are really commercial apps and not show apps. I just want to watch the show. Is there an app for that?

Maybe next week I’ll just watch the show live. Where is my cable box? Wait, isn’t ABC broadcast over the airwaves? In HD? I wonder if it will have better commercials…

Getting to “Know”

We spend too much of our lives in ambiguity. So many outcomes, so many possibilities! Even an enumeration of the combinatorics would be a staggering waste of time and so we consent to let things play out. But we don’t completely let go – of course not! We make decisions in the moment, we strive to utilize consistent tactics, even strategies as well as we can. And when we have successes they are the result of our efforts, and yes, some luck. And when we have failures they are bad luck, and yes, maybe poor planning. We can press forward in uncertainty but Sir Arthur Conan Doyle’s Sherlock tells us, “It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts.”

Bricks-without-Clay-copy
“Data, data, data! I cannot make bricks without clay.”

Certainly, the exploration of risk is rewarding and I don’t mean to take the fun out of it! But making data-driven decisions removes the worst outcomes. And less negative risk means less unpredictability and this is a good thing for business. It is predictability that allows us to make wise investments, to outmaneuver the competition, and it is the predictable inflow of money that keeps the lights on. This is why getting to “know” is so vital. Reorganize your processes to identify and weed out the worst variables first. Answer every question amounting to “why this won’t work.” You need not wait until all questions have been answered, but there is a critical mass that should be addressed before safely riding the long tail of uncertainty. But knowing where you stand on the most key factors of success puts you on the threshold of good decision making. If you decide to stop, you can do so early and with good reason. If you need to pivot, you have the wisdom of understanding just how it should be done. And if you should indeed continue on, do it with confidence that comes from really knowing where you stand. The earlier you know, the less risk you take on and the less time you spend

The decision to move forward in light of the data is much more sound than the decision to move forward despite the risks. Get to “know” then make the call.

Rapid Design Prototyping

I’ve enjoyed listening to the Startup Podcast over the past couple of weeks. It’s encouraging to listen in on seemingly normal guys as they put together a brand new company. In episode #13 they talk about rapid design prototyping with Google Venture’s design team. The team walks them through a design sprint to discover what their mobile app should be.

Fake it ’till you make it… or don’t.

In Gimlet’s case they should not build a mobile app, and I can’t tell you how many months of development time I’ve saved by NOT BUILDING an idea that we’ve had. In a relatively short amount of time you can design out a website or app and see if it’s going to really meet your needs or if it’s just a cute idea. The world is full of cute ideas – I don’t want those. I want a great idea that can work.

Save yourself some time, developer. Don’t build it until you’ve seen it.

 

Schmuhl Potato Salad

This recipe has been passed from my Oma to my father to me and is a family favorite that will always remind me of July barbecues and Schmuhl family parties and funerals. It’s not a traditional German potato salad, but where it lacks in pedigree it makes up in flavor and texture. Serves about 15.  Enjoy!

Ingredients

  • ~3/4 jar of mayonnaise
  • 1 medium onion
  • 5lbs potatoes
  • 10 boiled eggs
  • Squirt of mustard
  • Salt and pepper to taste
  • Onion powder
  • Garlic powder
  • Minced garlic

 

Directions

  1. Boil small pieces of peeled potatoes until soft (smaller and longer means creamier)
  2. Drain the potatoes and dump them in a large bowl
  3. Dice the onion and add to the potatoes
  4. Stir in about 1/2 of the jar of mayonnaise
  5. Mix in the seasonings to taste
  6. Peel and dice 7 of the eggs and softly stir them in
  7. Let sit overnight.
  8. Add the rest of the mayo and season again to taste
  9. Slice the remaining 3 eggs and lay them out across the top of the bowl
  10. Sprinkle the top with paprika for color

The key to this dish is that that it always tastes better the next day.  Prepare it at least a day before so that you can add more mayo and seasonings as the potatoes suck in that flavor over time.  The texture and creaminess is determined both by how long you cook the potatoes and how much mayonnaise you end up adding.  I generally push it close to the boundary of mashed potatoes with good results.

Ownership

Screen Shot 2013-12-23 at 10.32.56 AM

I’m learning Python and needed a decent IDE to get my work done – I’m so spoiled! I installed PyCharm and have found it sufficient. Today, after several days of using it, I finally noticed that the tip of the day is blank! This is fine, I unchecked the box, but what I wanted to point out was the missed opportunity: the tip of the day is your chance to educate the user on helpful functionality, to increase product retention through brand loyalty. And what is done with this opportunity?

Tips not found. Make sure you installed PyCharm Community Edition correctly.

Nope I won’t. If you can’t take ownership of this problem (first take: don’t show the tip by default if it isn’t working) at least in the tone of the presentation, then I know enough able you to move forward.  Disable the feature and wait for the functionality to be proven in the future.  This is a very matter-of-fact approach that could be softened by different messaging:

Woah.  I can’t find any tips!  Click _here_ if you have some time to help diagnose what happened with your install.  In the meantime we’ve disabled this feature, you can get to it again from the Help menu.

See, I already want to buy whatever software would give me this kind of lip service!