[go: up one dir, main page]

Showing posts with label simplicity. Show all posts
Showing posts with label simplicity. Show all posts

Sunday, May 5, 2024

My Three Daily Life Goals

I just read Paul Nurse's book, "What is Life?" who was awarded the Nobel Prize in Physiology in 2001 for his discoveries in protein molecules that control the division of cells in the cell cycle.

While reflecting on Nurse's book, I went through my personal notes on life. My personal notes are what Tiago Forte calls a 'second brain.' I came across my note on life from March 2013 where I detailed my daily goals.

Basically, when I wake up, I want my day to run as smoothly as possible while maintaining a responsibility to the long-term.

My Three Daily Goals in Life
1. I want to be happy.
2. I want to eradicate unhappiness in my life.
3. I want every day to run as smoothly as possible. No hassles.

Simplicity (the practice of minimalism) is key to my life philosophy. 

Wednesday, January 1, 2020

Happy 2020! It's Good to be Alive!

Sometimes it's good to be "unremarkable."
As I labored through my sunset run, today, I recalled the military axiom, "Pain's a good thing, it means you're not dead.” Which reminded me that 20 years ago I had just finished my final round of chemotherapy for late-stage, widespread cancer (stage 4 Hodgkin’s lymphoma).

My last chemo treatment was in December 1999 and, after five years of checkups, my prognosis was cured --- not remission, but fully cured --- to the point that I went back on active duty in the Marines in 2003 and deployed with them to East Africa in 2005. Today, it’s literally like I was never sick. I am lucky.

Human Being, Not Human Doing


Cancer, and my father's unexpected death in 2007, gave me a deeper insight and
perspective on life. At that point, I realized I could take two or three years off from corporate America. But I didn't expect a few years to turn into more than a decade of retirement.

People ask me, "What did you do during all that time off?"

My answer's simple, "Nothing," followed up with, "What do you do on weekends? That's what I did most everyday."

Looking back, from one mile high.
Looking back on all that time off, I see that I learned how to be a human being instead of a human doing. While I did focus on my own personal projects like learning to fly, creative writing, and volunteering, it was my ability to be fulfilled while not accomplishing a single task, in a day. Some might call that lazy; I call it the simple life. La dolce vita.

While the pursuit of happiness is our unalienable right, it does require more than that to be fulfilled. It requires meaning and here's how to make meaning.

Carpe diem and live the dash.


Update: Something I completely failed to mention was I always knew my retirement wouldn't be permanent. Sooner or later, I'd have to return to full time work which I just did in August, and I'm loving it. 

Monday, August 27, 2018

Simplicity

Apple's Human Interface Guidelines simplify the Aqua UI.

You know you’ve achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away.
de Saint-Exupery


Simplicity is the ultimate sophistication. But simplicity is like time. We understand it at a high level, but defining it isn't easy.

The challenge is that simplicity lies on the other side of complexity. Without embracing complexity, the simplicity you produce will be oversimplified; in other words, ineffective. But complexity doesn't have to produce complicated solutions when properly analyzed and presented. We see this all the time in computer applications since software development is about managing complexity.

To achieve simplicity, one needs high performance building blocks that are reliable, predictable, and repeatable. Atoms are a perfect example. But, our lives aren't that simple. In our lives, simplicity means minimizing the introduction of variables, especially random ones. That may sound boring, but when we're bored, it's not complexity we seek, rather, it's randomness.


The Simple Life

Generally speaking, simpler lives are healthier than complex ones (just ask Elon Musk). So, what does it take to live a simple life?

Simplicity is about living life with more enjoyment and less pain.
To be happy by making every day go as smoothly as possible.
We want to enjoy and consume life instead of working and transforming it.



Thursday, November 16, 2017

Target Charging Kiosk


Have you ever walked into Target with a low battery charge on your phone and say to yourself, "I wish Target had a secure way to recharge my phone while shopping."

Lo and behold, Target has a locker kiosk exactly for that. Of course, my shopping list was on my phone (along with Pay). But it's still an improvement from the old days when I'd get to the grocery store and have to guess what I wrote on my shopping list that I left back home. It worked exactly as expected. I entered my phone number, e-mail address, and picked a security image from a list (dog, picnic, fire pit, etc) and then I choose a locker. To retrieve my phone, I entered my phone number, tapped my security image, and the locker opened. Simple.

Sunday, March 26, 2017

A Busy Day at the Office

What does a busy day look like?
Ten years ago it was reading and writing e-mails. Today, it's bouncing between Slack, Trello, Basecamp, and Facebook.

More tools seems more complicated, but it actually allows for better filtering of information while establishing well defined boundaries. 

I recently started working as the CTO at It's Borrowed, which is like Airbnb for your stuff. Why not earn money renting out that camping equipment, golf clubs, power tools, or wheel chair that's sitting around in your garage? Looking to borrow a ladder or ice chest? Check the It's Borrowed app.

Since It's Borrowed is a small team of five, I'm also the product manager for our API servers and mobile apps. When I last worked in this capacity at Wyndham we only used e-mail and SharePoint, which was marginal. What made it worse, at Wyndham, was that I had to manually sort and archive e-mails in Outlook, my key communications tool. Otherwise, when my e-mail storage grew to more than about 4 GB, Outlook would stop working reliably. Allow me to digress by pointing out that Outlook's horribly engineered to stuff every single e-mail and attachment into a single file which grows and grows until it eventually collapses in an unpredictable way. Compare that to macOS which organizes your e-mail boxes into an elegant hierarchy of folders; each e-mail (body and attachment), is then stored as a separate file. File systems are much better at managing (CRUD) ten-million 1K sized files than two 5GB sized files.

Workflow Filters

Today's workflow, with Basecamp, Slack, Trello, etc., simplifies my life by managing filters. A ding of an incoming e-mail is an interruption; and a message could be from my manager or my mother, each having a unique sense of urgency and importance.

Here's my workflow when using Slack, Trello, and Basecamp...

Basecamp
When I meet with the business (marketing), we put high level tasks into Basecamp such as "Create an e-commerce shopping cart so people can buy our stuff." Think of the tasks in Basecamp as the business's vision – a high level goal.

Trello
Since I'm the two-way bridge between the business and engineering, I take the vision of the business and break it down into a single engineering task that can fit into a Sprint since we're closely following Agile/Scrum. In Trello, our tech lead has organized boards for each Sprint and the backlog. Each column has a card which is akin to an electronic Post-it note. Inside each Sprint board, we have columns such as Blocked, To Do, In Progress, Review, Done, etc. The blocked column are impediments that I take for action, while the tech lead focuses on the other columns.

Each Sprint begins with the engineers reviewing the backlog along with the CEO and me. The engineers get to pick, from our prioritized list, each task (card) they'll do in the upcoming Sprint. Only the engineer picking the task can assign a weight to a task – a weight, meaning how long it'll take a task to be completed. That part is sometimes a hard pill for management to swallow. But, over time, as engineering delivers on all they promise, management will gain confidence even though they can't interrupt a Sprint with new requirements.

Slack
I think of Slack as Twitter on steroids, across different teams and channels. The key Slack teams are the ones that I have with the engineering department and each individual engineer. Since the engineers fall under the tech lead, I rarely communicate directly with an engineer so as to not interrupt them. This is harder than is sounds when the CEO asks me a pressing question which I could simply have answered by interrupting an engineer. A couple of our channels are automated and tied in to third party services so, at any time, I can see code check-ins or deployments to production in real-time.

The beauty of slack is I can see the history of a channel conversation without having to search through e-mail looking for specific threads.

Discipline is key. As long as the team has the motivation to follow this format then the information will quickly and effectively flow, increasing productivity. It really does work well.



Monday, April 6, 2015

Software Cities

Yesterday, Dave Winer posted about why in software, we're always starting over. Software engineering is about managing complexity, and it seems to be approaching an asymptotic limit of what can be managed by individuals and companies. It's not that we won't be able to create more sophisticated software, we will; but the growth will be slower and the benefits less noticeable. We're running out of low hanging fruit; we're running out of simple software that performs a useful service as software engineering becomes more prolific.

The real world problem I'm seeing today is that software is becoming so complex that it won't work as expected. Our expectations need to readjust. Yesterday, I couldn't play iTunes Radio or iTunes Match because iTunes simply skipped from song to song without playing any of them. It's not that Apple engineers are incompetent – that's far from the case. Rather, it's a two fold problem. First is what I've already mentioned: software is becoming more and more complex. Second is the fact that new engineers come into the workforce that need to understand legacy software and then either build upon it or reengineer it. Either way, it requires a lot of time and effort. And, unless there's a simplification breakthrough, it's going to result in more complexity for the software engineer.

When pondering this issue, holistically, I look for other examples where I've seen similar problems. Instead of looking at it as a software engineering issue, I look at it as a systems engineering issue. This analogy works well when breaking down problems. For example, we can think of data packets transversing the Internet as cars (packets) carrying payloads of people (data). In this example, we see the redundancy of our roads. Destroying a bridge in Syria has no effect on the roads in the U.S. Or, destroying the Internet's "single point of failure," i.e. DNS, would be the dire equivalent of removing every road sign in the world. As systems fail in ways we didn't imagine, other pathways must handle the load resulting in cyber traffic congestion or even failure to access a network node endpoint.

Gentrification of Software

Software engineering has many similarities to constructing homes and buildings. We even use the same word, architect, in both disciplines. But, in the world of software, we are no longer simply creating buildings. In other words, we are no longer simply making standalone software applications. Instead, we are building entire cities, which, like computers, are networked together. And, like a city, every road can't be open all the time – there's constant construction preventing access. Most of the time, we can plan ahead. But, similar to real world infrastructure failures, like a water main break, we have problems, usually in the form of bugs or hardware failures, in the online world. 

All software needs to be checked for bugs, either by a compiler, coder, tester, or customer. Every new line of code increases complexity, but this is an oversimplification since we usually don't want to compress four lines of code into one. Code written must be debuggable and there's a balance between engineering, over-engineering, and making code intuitive for people to read. One never wants to be too clever when writing code. Too-clever code can end up fooling everyone like debugging a multithreaded race condition. I'm not aware of a formula to compute how dense code is, but an experienced software engineer will get an intuitive feel for it with years of experience. 

As towns and cities require building codes and permits, we may see the same thing in high-tech. Obviously, a bridge failing is catastrophic while Amazon going down is comparatively minor, no one is physically hurt in the latter. Lost revenue is vastly different than lost lives, but, that will change. What if an airplane auto-pilot breaks in-flight? Or, worse, what if it begins misreporting or misinterpreting flight data? In the physical world, our building codes are about safety. Online, our issues are about security – and the two are related. Our online world focus is on attacks rather than infrastructure failings.

While I don't see a need for software performance inspections by third parties, I do see a day when software will be inspected by independent agencies for security

Friday, March 13, 2015

Triggers to Live Life on Your Own Terms

Life moves pretty fast. If you don't stop and
look around once in a while, you could miss it.
Last night I went to an event where Gary Ware chatted about following your life's dreams. What would you do if you didn't have to work on a daily basis? Nearly everything he mentioned I was already doing.

I left corporate America in 2007. Since then I've written code, prose, and poems. I've been a journalist, blogger, and author; on my own terms. I learned how to fly and bought an airplane. After reflecting on this I wondered if Gary was living his dream? Perhaps he is, I only met him last night. But that thought, in turn, led me to a more important realization. Why or how did I end up doing nothing? That's when I realized the jump from corporate rat race to peaceful bliss, where everyday is a Saturday, requires a trigger. In my case several triggers.

Ready, Aim...

My first trigger was about 15 years ago when I was diagnosed with stage 4 cancer. Realizing there was a real possibility my life could end before it started made me focus on doing things I enjoyed. (Miraculously, after six months of chemo, I was 100% cured, to the point that it's like I was never sick.) They key is to do the things you enjoy without being selfish. This means not doing something that lessens someone else's quality of life or satisfaction. A great way to avoid this is to find the good in people and cheer them on. But it has to be genuine.

The second trigger was ten years ago when I was doing humanitarian missions in East Africa where I saw people living simply. Yes, they were poor, living on less than $3/day, but there was a beauty in their lives. In the traditional corporate career you work hard. Nowadays, we work harder than ever before. Luckily our society makes the rest of our life easier since we don't have to milk the cows or harvest the fields. But we replaced that free time with more work. So, we feel we have to keep moving up the corporate ladder to make more money. But... and here's the key question... why do we need to make more money? On the surface, we think it's so we can have more financial freedom. But what happens is we end up buying more stuff that adds more complexity to our lives. A bigger house, a new car with more technology, etc. It actually makes our lives more complicated. The more complex our life becomes, the more brittle and fragile it ends up being. If you lose a high paying job you'll have to find another high paying job to be satisfied with your lifestyle.

Hiking Torrey Pines is a fine way to begin each week.
My third and final trigger was two fold. It was working at Apple when my father unexpectedly passed away. Since then, I focus on turning a crisis into an opportunity. Working at Apple was key because they went from near bankruptcy, the year before I joined them, to the biggest company in the world. Also, Apple was my trigger for understanding simplicity. More than anything else, Steve Jobs cared about making great products and he did that by simplifying them. Instead of engineer-ugly products with every possible feature, I learned the supreme elegance of simple design.

Simplification is the ultimate sophistication

But, to be truly appreciated, all this has to be earned, not given. So, today, I enjoy life. I really enjoy it and have been for as long as I can remember. I wake up early or sleep in. I read, write, and snap photos or attend events. I enjoy sunsets, food, friends, and family. It's a good life with simple pleasures. It doesn't mean I'll never go back to working a job where I've had scores of people reporting up to me, but it's nice to have life options rather than career obligations.