Thursday, May 14, 2015

Zero to One: Peter Thiel with Blake Masters

Peter Thiel's (with Blake Masters) Zero to One has been on my reading list for a while.

A random check on its availability at the local public library revealed it was actually available on the shelves! SO, a quick saunter to 658.11 THI, checkout, done.

At page 21 at the moment. Thus far has been a re-run of the boom-bust Internet 90's. Having been through that cycle myself, didn't learn anything new, but it was down a nostalgic road nonetheless. Including the reminder of the Mosaic browser, which I remember using back in school and building a CGI-based thing to extract metrics from any C/C++ source code you submit to the system.

ANYWAYS, back to Thiel.

So a contrarian view, of his, for startups that's resonated with me thus far:
- It is better to risk boldness than triviality
- A bad plan is better than no plan
- Competitive markets destroy profits
- Sales matters just as much as product

:: More to come ::

Saturday, February 2, 2013

ScrumBan?

You are a team lead, responsible for ensuring that you and your team deliver on what you've signed up for. Usually something where you want to "make a dent in the universe".

So how to ensure that you're team is making good progress with their work?
How do you track this progress with greater granularity?
How do you make sure that the team is working together in a tighter fashion, raising blocking issues in a timely fashion so that action can be taken etc?

Enter ScrumBan. Progeny of Scrum and Kanban.
Or atleast that's the claim.

If one were to search information on Scrumban, as both in Scrum and Kanban, there are as many definitions as there are search results. Clearly, ultimately, the definition is in the "eye of the beholder".

That said, here are some of my initial learnings as I begin to educate myself on this methodology.

  • You can go overboard with all of this and create a beautiful bureaucratic system that rivals anything the dreaded (to the Agile folks) Waterfallers ever created
  • Keep the process simple, lighweight, and most importantly meaningful to the team
  • Keep teams small. Small teams can execute faster, turn on a dime when needed (ie Agile?)
  • Ultimately its about FLOW (capitalized for effect, not an acronym). ie Get work going through the pipeline with the highest velocity possible (maximize for throughput?)
  • It's different for every team and project on the planet. To say that this particular process worked on a previous project/team, and therefore should work on the current, is an invitation to the team spinning its wheels for a long time until they figure out the bogus'ness of this idea
  • EXPERIMENT, EXPERIMENT, EXPERIMENT
  • That is, start with the basic principles built on Scrum and Kanban (which are?, for an article at a later time), and figure out what's working and what's not for the team, over time.
Things to look into for a future blog:
  • Kanban uses the principle of limiting WIP (Work In Progress) at each stage of the workflow. WIP is usually at some level well below maximum capacity of the team.
  • What specifically are best practices of Scrum that makes sense to combine with Kanban? Because as always, you can go overboard with each, causing the team to crash into endless meaningless process debates, vs getting real work done.
Some interesting reference material:

Wednesday, November 2, 2011

Giving up on Linux. Hello Windows!

So I finally ended my experiment with using Linux this weekend. When I reinstalled Windows 7 on my laptop, permanently erasing Ubuntu's Natty Narwhal (v 11.04) from the hard drive. With a sigh of relief, I'm back in an environment that I know well, and have come to respect even more, as a result of my jaunt into Linux land.

Linux is free, yes. But this is free with a cost. And for me, one cost was the time and effort spent to get basic stuff installed and/or working. Another cost was a lack of apps that I'd gotten really used to over the years. The final straw for me was when the DVD I'd ordered about youth soccer coaching was a format that was supported only on Windows. And after spending yet a few more hours searching forums and what not on how to get the format to play on Linux, I gave up.

The final decision point for me was whether I wanted the laptop to continue to be a tool for me, or a plaything. And after being blocked multiple times as a result of apps not working, or apps just not available, I decided it was time for the laptop to be a tool once again. When the OS or the apps actually start getting in the way of you being able to do stuff, then something is clearly messed up.

Needless to say it was a really interesting experiment, and one that I'm really glad I did. Ubuntu and many of the open source apps have come a long way. But they all still have ways to go to catch up to Windows' ease of use, quality and the multitude of applications available for Windows.

Saturday, January 22, 2011

Should we stop comparing the current economic distress to the Great Depression?

These are tough times. Millions are out of work, and have been out of work for a long time. Business profits continue to soar, and yet, the median income continues to drop. Especially in this country, the gap between the rich and poor continues to grow. Mirroring the situation in the "old" world, including countries like India (atleast before the economic boom of the last 10 years).

There is much hand-wringing by left-leaning economists of how the only way out of this mess is to mirror policies by Hoover and FDR during the Great Depression. A core principle cited is that of the Works Progress Administration (WPA) and other programs that created work for the unemployed, and helped buoy the populace past the economic crisis. The WPA was handled by a social worker by the name of Harry Hopkins, and was effective. The idea being that such a program or set of programs need to occur now too, handled by people who know a thing or two of what it takes to alleviate suffering.

Fast forward to today. Corporations, combined, have more economic clout than nations. Along these lines, was President Obama's decision to have Jeffery Immelt (CEO of GE) to lead the Council on Jobs and Competitiveness a wise one, or not? Only time will tell. But my sense is that we have to roll with the times. By shining the spotlight on a corporate icon to look beyond just increasing shareholder value, but also to the betterment of "the people", might actually work.

Sunday, January 9, 2011

Does capitalism need a conscience?

The December issue of Harvard Business Review had an excerpt of an interview with John Mackey, founder and CEO of Whole Foods. The complete interview is available here: http://bigthink.com/ideas/25555


That interview led me to an article where Mackey wrestles with the likes of Milton Friedman on the "soul" (if you will) of a corporation. The article, titled "Rethinking the Social Responsibility of Business" is a fascinating debate between 3 free-market libertarian types.

Milton takes the classic cold-hearted approach where the sole raison d' etre is to maximize profits for its shareholders. And everything else is secondary to that role.

Mackey takes the broader, worthier and pragmatically smarter (IMO), approach that profits are a means to an end, not the end itself. That business needs to create value for not only its investors, but also customers, employees, vendors, communities and the environment. And that by putting the well-being of customers, employees communities etc first, actually improves the business's profit potential and its own long term well-being.

I guess to show that even in libertarian ideology there is a leftist and right-wing spectrum of thought, there is also an opinion thrown in by T.J.Rodgers, CEO of Cypress Semiconductor. T.J.Rodgers pretty much takes the low-road, starts by calling Mackey a Ralph Nader in libertarian clothing and his opinion piece pretty much becomes manure quickly after that.

To me, the core idea of Mackey that struck a chord with me is that ultimately, the entrepreneur should be the one to guide the behavior of the organization she founded/created. The next layer is that the business cannot operate in a selfish cocoon and to succeed it needs to positively affect all who are involved. Or as Martin Luther King Jr put it "We are caught in an inescapable network of mutuality, tied in a single garment of destiny. Whatever affects one directly, affects all indirectly. "

Thursday, December 23, 2010

The role of a tester in the era of test-friendly devs

Back in the day (okay, if I can so use a term to denote the '90's), devs cared for one thing, and one thing only; the coolness to code. And to hell with whether the d**b-users got it on how to use the software. Or if the software was crappy.

Okay, so maybe I'm generalizing a bit here. But I do remember getting this piece of code thrown over the wall. I write a 1-line piece of test code that "new's" the class. I get a null-ref. And I'm sitting there thinking... "Really! The dev couldn't write 1 line to verify if the class could be instantiated??"

Fast forward to the early 21st century. The young-un devs I meet nowadays have one totally exemplary attribute. They get the need for quality. They write unit tests without nagging, begging, fisticuffs. They ask how they can help us in Test test better. They care about the quality of their code. They don't want to break the build. They want to find bugs BEFORE they checkin!

This is the world we in Test have been struggling for, for so long. Hurrah!!

Except...

Now that we're here, I believe an existential crisis is at hand: So why do we need Test? What's the role of the tester in this new world? Can devs not do the entirety of building and shipping quality software?

James Whittaker has a provocative and thought-provoking set of ideas on this topic in a webinar titled "More Bang for your Testing":

Tuesday, December 21, 2010

Setting up the Android phone for debugging

Now that my Linux laptop is setup for debugging Android, I need to make sure that my phone is in a debuggable state. Setting up the phone to do this is simple enough.


  1. Launch the Settings app on the phone, and select Applications as so:
  2.  In the Applications app, click on Development: 
  3.  In the Development app, make sure that "USB debugging" is enabled:

Now check to make sure that the Android Debugging Bridge (adb) does indeed see the phone device. To do this, from a terminal run:

$ adb devices
List of devices attached
T95960a0752a device

NOTE:
If you've restarted your machine, then in all likelihood "adb devices" will return a blank. In which case, kill and restart the adb service:

$ sudo ./adb kill-server
$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached
T95960a0752a    device