Categories
Agile Engineering Leadership Startup

Describe, Design, Decide, Develop – A framework for building things

estimated reading time < 5 mins

I was asked recently if I have any general advice on how to maximize product development success, and for such a big question, where do you start? There is so much to say on so many aspects, and I would have fun talking for hours, but figured it would be a good idea to consolidate my thoughts on it and then share them back. So I did.

Given such a broad subject, I have to limit the scope and not include

  • Business strategy (models) – good products tend to sell themselves but still requires more than just that, and although I have opinions on this matter, I will set aside for now.
  • A Career in Product Development – here, too, I have much to share and disagree on many aspects of path and education. Although what I share below could contribute project and individual success, it will not be the focus/intent.
  • Organizational structure – how to find, assemble, motivate and work with the right people to achieve the results.

Rather, I want to talk about an overall framework to increase your chances of successfully building something or at least getting started. Hopefully, it will benefit others, but it will allow me to make sense of the complexity or, at the very least, a good enough answer without having writing a book about it or sharing tons of links.

There are many frameworks, principles, tools, and practices in Product Development, but in my effort to synthesize, they point to these steps

  • DESCRIBE
  • DESIGN
  • DECIDE
  • DELIVER

Yes, it seems a lot of the good words start with D.

DESCRIBE – or define. In talent show terms – what’s the dream? What do you hope to accomplish? To the more informal – can you paint the big picture? To the more formal – what are your goals and objectives? Are there constraints, are those facts, and are they negotiable or not?

DESIGN – how are you going to accomplish it? Sometimes, there is more than one way to accomplish, and one is the best. Sometimes, there are no known ways to achieve the thing described, just ideas. What medium, what channel, what would the flow look like to reach the destination?

DECIDE – when you have many ideas and options, which ones do you choose? What if you chose wrong? How long should we think about it?

DELIVER – make it happen 

In coming up with this, I had three starting points

  1. In my experience and knowledge, what were the common causes of failures?
  2. I have always looked up to design thinking in building things – how does that fit here?
  3. In execution, I have always looked up to DevOps – how does that fit here?

What are some common causes of failures, and which steps might address it?

  • A failure of imagination = Describe and Design.
  • A failure in alignment – needing to be on the same page = Describe.
  • A failure in execution = Deliver.
  • Delays – inefficiency to Deliver.
  • Delays – untimely decisions (paralysis) = Decide.
  • Nobody wanted to use it = Design.
  • Not enough people want it = Describe (constraints)

It’s alright so far; improving on those steps could avoid some of these failure traps.

While looking further into the “not enough people want it” item, things come to mind: the product needs to have a bigger market, may be too expensive (pricing), or may not be well-known enough (marketing). The Describe step is broad enough to require a different design (strategy/plan) for pricing, marketing, and software development. A self-similar (fractal) pattern emerges, or a subset of the steps spins off the main path. For example, although towards the same described dream, you need a product interface design, an architecture design, a security design, and a pricing design, then for each aspect of those, you will have many options and have to make the decisions and deliver them. So this Describe->Design->Decide->Deliver (from now on also referred to as DDDD) happens in the bigger picture (e.g., business) as well as in the smaller picture (e.g., daily or task level). Or Describe -> spinning up 2+ Design steps in parallel the same way that Decide output could be status-quo and therefore Delivery is a no-operation. I have always thought and said that life is a series of decisions, but in more generalized terms, a series of these DDDD loops.

One description (dream) could require spin-offs of many aspects

Or in reinforcement learning king of way iterate on subsequent steps

So now what?

I want to avoid reinventing the wheel, but my goal of making sense of the concepts I have come across still stands. I will continue to test this framework until it breaks (by myself or as I get feedback from others). For example, the Double Diamond Design Thinking Framework involves “discover, define, develop, deliver” (again with the Ds). It overlaps with this a lot but does not seem to cover indecision or DevOps which I put a lot of stock on. It also has a different idea of developer+deliver. I will try to break this framework including seeing if this applies outside of software for my amateur woodwork, automotive, trading, or random house projects.

Assuming these are key/fundamental steps for developing something, there must be frameworks to maximize the success of each step, and I will explore those frameworks.

  • Describe – I am excited to know the good frameworks for framing things. I have yet to look much into this.
  • Design – I already love Design Thinking, so that’s more than a starting point for me here.
  • Decide – I have favored decision-matrix or grid/multi-criteria analysis unknowingly over the years, but there are tons of decision-making frameworks out there; it’s more than dizzying (OODA, TDODAR, Cynefin, RAPID, etc) and no shortage of acronyms but it will be fun.
  • Deliver – DevOps (DORA) might have more than enough to explore here.

Stay sharp, and keep building things! I will keep in touch.

Categories
Community

More Kindness and Less Indifference in 2024

First, I wish you and your families well. What I am about to share is not a generalization and not even a criticism but merely an observation. Maybe a personal opinion, or at least a point of curiosity. I love where I am, most of the people around me, appreciate what we have and are proud of the values we stand for. But it’s been almost exactly three years since I have shared a post so stay with me for a bit.

Protests, gatherings, and activism are on the rise in the US and around the world on various issues. That’s great because civic involvement means people care about issues. Yes, some would argue we don’t do enough but I digress. For now, I wanted to talk about a different kind of indifference. Something may be smaller or closer to home but worthy to mention.

One of the things that stood out to me while being here in the US compared to my other home country of the Philippines (PH) is how much fewer people here smile at each other. Granted, I spent much of my university days in a city known as “the City of Smiles” (Bacolod City); I can still say that it’s true in most of the country; from the larger cities to the sparse countryside. Whether it’s a rich neighborhood or a less privileged one, be it smiling to strangers, or even just the general sense of being a little vulnerable to others (sometimes in the form of out-of-tune karaoke singing); at least to me the difference is notable. In the US, when you smile in public, it sometimes feels like they look at you wrong.

Over time, however, I began to think that maybe it’s more than just smiles. It is in the small things such as whenever you let someone ahead first as you intersect shopping carts in the grocery store or the parking lot; many times there is not even a nod or acknowledgment. The person just moves on as if nothing happened or that they were entitled to whatever it is I didn’t have to do but did anyway. I am not looking to be rewarded for giving way or saying “Oops, my bad”; but a smile or a nod would have been nice. It’s very different from what I grew up to; where the awkwardness of a near collision shifts to a friendly apology, then a hand gesture to let the other person move past and a smile or even a thank you. Yes, train stations, airports, and roads in the Philippines are too crowded, disorderly, and feel like a war zone so it’s not great either when resources are scarce but on a random day in the grocery store or parking lot, people see each other.

As a person of color, I give people the benefit of the doubt of not knowing how to act around me sometimes (maybe it’s not easy given the sensitivities of today) but it’s probably not that because I’ve seen it happen to others that’s not like me. I lean slightly more introverted than extroverted as well so I am not the most harm-warming person either. I suck at giving gifts, inviting people over, or even remembering the birthdays of people I care about. But I do my best to see people, look them in the eyes, and appreciate them. Occasionally, they do as well and it warms my heart.

Maybe some of this is fear, insecurity, or the person just happens to be in a bad place at that time. Looking people in the eye after all and smiling could make some feel unsafe or too vulnerable or too preoccupied that noticing may be a luxury. These are possibilities. I do hope they find that security though because without that it becomes a bit difficult to form a community.

I do hope those of us who can, despite our challenges and through our actions; show the next generation, our children to see and acknowledge others. A healthy cautiousness but not always assume bad intent. To acknowledge differences but find common ground too. To not mistake kindness for weakness. To be fair and just but also kind; towards others and also to ourselves. They say there is an epidemic of loneliness nowadays. The good news is that acknowledging others and showing kindness is free and would go a long way.

May your 2024 be better than ever.

Categories
Community General

Oh Twenty Twenty

As the year ends, I hope you join me in remembering our family, friends, and the almost 2 Million souls who will no longer be with us because of the many trials that 2020 came with.

We will remember them on other days. But for me, a lot of those good memories will be during these holiday seasons. So although bittersweet, I choose now.

They will live through us. As we live our meaningful lives, we hope to pass on their wisdom and virtues they taught us.

And a big Thank You, to those who continue to get us through these times, our heroes; the front-liner health workers, essential workers in other industries, and everyone who continues to contribute in big and small ways. May you continue to be well.

We may deal with these in different ways but one thing we all share for sure.We are still here!

We will rock (or flow – whatever works for you), learn, love, stay healthy, humble, kind, and hope for better years ahead.

Happy Holidays and stay safe from our family to yours!

Categories
Career Growth Community Engineering Leadership

First Principles, Frameworks & Guiding Principles

first principles, frameworks and guiding principlesWhen talking to other engineering leaders (new and even experienced ones – since every situation is different) it’s not uncommon to hear “this is great, your team/processes sound amazing but where do I really start?”.

“Where do I start?” is indeed a difficult question. A few clarifications and examples would help. We could identify a starting point and take it from there. There are also a lot of existing “how to do X or Y” everywhere online/offline so I am not going to talk about that here either.

I was thinking though, if I find myself asking the same question, what do I actually (or I think I) do.

So…. I believe I go through this process:
1- first principles (why)
2- framework thinking (how)
3- guiding principles (what ifs)

These are not my terms. The first one you can easily search (might even be in the dictionary) and Elon Musk (and others) has articles/interviews online that can explain it (or similar) better than me. The second one I did not find much except this article from Sean Johnson (http://www.sean-johnson.com/framework-thinking/) which captures a lot of what I had in mind. The 3rd one I’m sure we’ve heard everywhere.

To the best of my knowledge though even before I found out what they are called I have applied them in one way or another. Most of the time, if faced with a challenge; it is reasonable (maybe even best) to solve that problem specifically. In some cases, however, especially problems that keep coming back it helps to step back and look/think about it differently. What is the core of the issue, the root cause, the fundamental beliefs (or even facts) that my ad hoc solution did not address? And that to me is “first principles” – simple, fundamentals, facts (or as close as you can get).

Now that we have a better understanding of the “question/problem” there are frameworks that others have already used to address that. Or at least frameworks that I can try to explore more to address the problem. Frameworks are more generic than just how-to’s and usually can be applied to a variety of problems. Should I read books, do I listen to audio books, do I talk to someone and based on those are there further frameworks/techniques I can apply?

Using some (or combination) of the framework(s) we will hopefully find the solution to the problem and then we start building guiding principles. On top of making sure that it really does address your original question/problem, these also make sure that should you encounter similar questions in the future you might have some default response/actions or if it’s completely new then the response might just be back to square one (first principles -> framework thinking -> guiding principles).

Over time you build guiding principles that you keep on improving (or completely discard after giving it enough chance – i.e. it just doesn’t work).

First principles are fundamental and likely universal (or at least to a majority of our species). Frameworks may or may not work for some though the ones we find are likely those considered best practices already but take them with a grain of salt. Finally, you could use existing knowledge for guiding principles but do not forget that guiding principles is your own. Make it known to your circle to whoever you feel safe sharing it with. Refine them, share them and others might question them but it’s yours.

And if you lead a team, you share a part of your own guiding principles (its part of what we do is to sell that to our team) but help your team build it’s own as well. What you agree on, how to do things, what to do when things get tough and as important, what to do when things are great.

An analogy for software debugging/development might actually exist now that I think about it.
1- investigate the problem (why)
2- design and implement a solution (how)
3- create unit tests/automated tests and monitoring to help make sure it doesn’t happen again (what ifs)

So when faced with “where to start” this is what I do. Or at least what I think I do. At the very least this blog post is part of this process too.
1- I have a question which I think could benefit others and I’d love to share my thoughts on (why)
2- write and share on my blog (how)
3- I may not get feedback (I don’t expect anyone to read unless I point them here) or I get feedback (great – whether that’s good or bad) and I see if I could improve as I learn more – is my “what ifs”.

There will be guiding principles that will not be easy (e.g. do not lie – sounds simple but I don’t know if you can imagine how difficult that is with all the quirkiness/sensitivities of our modern world) but the good news is other than making it easy to make decisions at work, the side effect of these guiding principles maybe some peaceful goodnight’s sleep.

Keep learning, building and take it easy!

Categories
Uncategorized

Karma Go review – Prepaid Wifi on-the-go

karmagoUpdate (2017 April 28) – been in contact with their support since the device is on and signal LED lights are on but no internet. All I get is advice to reset 3-4 times (from different support personnel) using button presses and paper clip on reset pin. I can no longer recommend this product.

I’m a cheapskate. I don’t want to pay monthly for something I won’t use regularly enough. So I go prepaid whenever I can. No smartphones with monthly data plans for me (and my coworkers probably are tired of me saying that my 10$ flip phone can take pictures, email and browse too).

Between home and office wifi, I have more wifi than I would have wanted. If I need to get somewhere I have the good old Garmin GPS or an actual physical map so I barely need any portable wifi.

There is, however, those occasional

  • “toddler is getting too bored reading magazines in the dentist office”
  • while traveling, the “sure we can just eat the first restaurant we get our eyes on but while we’re here maybe we can check yelp for a better one”
  • oops, someone crossed some wires in the apartment’s internet/cable cabinet so your internet is down
  • hotel internet is too slow or expensive to pay for

Sure you can download videos offline, check out restaurants ahead of time, use Google’s free internet in Mountain View or just pay for that cafe/hotel internet, but having your own wifi/internet hotspot does come handy.

If you have a smartphone that comes with or can have a data plan then it might come out cheaper but if you don’t have and just want to get a hotspot or maybe you do but for some reason, your phone or provider does not allow tethering then you want a hotspot.

So we got a Karma Go from https://yourkarma.com/. They have monthly plans as well but I was more interested in the prepaid plan (as of this writing 1GB for 15$).

The hardware costs 149$ but you could get 50-100$ if you fill/load or get a monthly plan before Nov 30.

My thoughts on pros/cons below

PROS

  • bytes/credits does not expire
  • prepaid and all the good things that come with it – pay only for what you use
  • you can setup auto-refill if you don’t want interruption
  • they do have monthly plans if that works better for you
  • up to 8 devices connected simultaneously
  • setup was straightforward, instructions were clear

CONS

  • no wifi password
    • but they offer premium features for an additional fee
    • even without premium, whoever connects will need to signup for Karma account as well and will not use up your credit
    • no encryption might mean it’s easier for someone to snoop on your traffic but like above you can get premium features or by browsing only your trusted sites with https/SSL or using a VPN like TunnelBear (another fun/useful thing)
  • coverage could be less than say Verizon – you can check their coverage from https://yourkarma.com/coverage
  • took a week or two for unit to arrive but they did notify me of shipping delays and I was not in a hurry so all good but if you are in a hurry make sure to check with them (or see if there’s an expedited option)
  • US only (for now)

The cons are non-deal breakers for me so I got it. I am sure there’s more PROS/CONS but will leave that up to you and their FAQ.

Have yet to use this extensively (then again my reason for getting is because of those rare occasions) but setup experience, performance and look (nothing wrong with judging by looks right?) tells me it’s well built and so far so good.

You should check for promotions in their website banners but if none, you can click here to get 10$ off

Categories
Uncategorized

Mac OS X El Capitan upgrade – xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)

You’ve just upgraded to Mac OS X El Capitan, used git (or some other commands from terminal) and encountered this error

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

you can “fix” this by running this command in your terminal

sudo xcode-select --install

a dialog will appear prompting you to install, just follow instructions and after install try your command again and it should be back to normal working state

Hope all that works well for you

More details on

Categories
Career Growth Engineering Leadership

The 6 Different Leadership Styles You Need To Know About

Sharing an article written by the good folks at officevibe.com about leadership styles. The list could be endless, depending on who you ask and which book you read but I feel this captures them well enough for me to share. It’s a good reminder for those you might have had read too much books in the past and forgotten.

Leadership styles apply not just for work but even in the family, friends and politics. There are always debates on what works and doesn’t work which makes sense since every situation could be different. This does represent my own “default” though. And at the very least, knowing them will make us understand each other more and as they say, “if you only have a hammer everything is a nail”.

6 Leadership StylesThis infographic was crafted with love by Officevibe, the software that shows you how to be a good leader through employee feedback.

Categories
Tools and Utilities

.docker/machine/machines/default/ca.pem: no such file or directory

Was doing a
docker-machine env default
where it seems to be getting stuck (waiting longer than usual) and when I open Virtualbox and look at the preview, it is already initialized and ready to accept commands but my terminal command is still waiting.

Then when I exit (e.g. Ctrl+C or Cmd+C) this error will show up.
open /Users/yourUsername/.docker/machine/machines/default/ca.pem: no such file or directory

The error could also be
Daemon not responding yet: dial tcp : xxx operation timed out

These resolved it for me.

docker-machine regenerate-certs default
docker-machine restart default

I was not using existing/custom certificates and letting docker toolbox create/manage it and willing to loose any information in that virtual/docker-machine. It should be true for most people but if you use custom certificates or don’t let docker-machine manage it for you, this will not apply to you and you need to find answers elsewhere.

There is also some references that AnyConnect (VPN) + your VirtualBox networking settings could cause it so if these do not work, try turning it off as well. Then find out more about VirtualBox networking settings. If you must be in VPN then
> you can use this script (while on VPN) – script found here – it will fix routes/rules that gets changed by AnyConnect

References
* https://github.com/docker/toolbox/issues/76
* Docker Toolbox

Categories
Investing Personal Finance

I just bought while the stock market is 7% down, was I wrong?

I got some dividends lately (though not a lot) which went to a cash account. Today I logged in to my account and the Philippine Stock Market/Index was down 7%. Hmmm, but I went ahead anyway and bought a stock selling only about half of what I believe is fair value (according to COLFinancial – let’s just say they’ve proven their valuations to be valuable to me). I will just post this and I’m logging off to sleep (it’s trading hours there but it’s evening where I’m based at)

Many will say
* I should have waited for a bottom
* I shouldn’t have bought in the first place
* I should have sold instead (take profits and go on vacation)
* I should have… shouldn’t have (or maybe you wouldn’t care what I do – possible as well)

If you are a fundamental + technical investor then maybe yes, should have waited for a bottom or technical indicators for a rebound. Or not buy (or in fact sell) if technical indicators really say it’s that bad.

But more than buy-sell I suggest you choose a strategy first and stick with it (unless you don’t really believe in it – then maybe that means you haven’t done enough work/reading to see if that strategy would fit you – in which case keep looking). Maybe I have a reason why I cannot check for technical indicators (automated or otherwise).

I definitely appreciate those making it simple to encourage more people to invest in the stock market (I believe in the value of public exchanges/market) but I highly encourage everyone to choose a strategy instead of just following an advice that might not be the best for your situation. You might get lucky but blindly following an advice is very risky for you.

I do not want to lose money, it is very important to me and my family. It probably is for you as well so if you are in the market, learn as much as you can. I did not (do not) gamble, I believe the stock is cheap and I just don’t have time (or facility to automate) at this time to spend time on watching indicators. That’s why. And I think the “why?” is a better question than “is it right or wrong?”.

My outlook for the Philippines is positive and if the news are right it has a very strong economy (definitely somewhere in the top of the list) so I intend to support it any way I can and encourage everyone to do so. And hopefully these dips are temporary.

So yes, I may be wrong (in the opinion of a lot of people) but one thing for sure – I’m gonna sleep soundly tonight – that one at least no one can argue I got right…

Categories
Personal Finance

one possible path towards financial freedom

I ran into a question earlier about how to invest if you have limited income, where do you start.
I am not a professional financial advisor so please do your own due diligence.
To answer the question, I figured a picture could be worth a thousand words.

one possible path to financial freedom
one possible path to financial freedom

The shorter version would be “get a financial advisor” or read a lot since it’s sometimes (maybe most of the time) not as simple as that. Each block has experts in them (including the block on “believe you can be rich”) and whole books (and even libraries) on these topics but start by believing and always keep learning.

Wealth (being rich) is a matter of definition so although I may not be an authority in what most people define as being rich, I do consider myself happy and I believe I will definitely get to my goals so someone might find this useful. This is from personal experience, articles and books I have come across in the subject.

If you would like to learn about other possible paths, you might want to pick up IMHO one of the most comprehensive books on the topic – the Ten Roads to Riches by Ken Fisher

[amazon asin=0470481552&template=iframe image]