Put up or shut up

Archive for November, 2011

A Tale of Two Entrepreneurs

There are only two kinds of entrepreneurs from behavioral economics point of view:

  • market entrepreneurs – sell products and services without a social mission
  • social entrepreneurs –  sell products and services with a social mission – Hapinoy, etc

Related links on social entrepreneurship:

Advertisements

There is No Best Tool

Courtesy:  Amir Khella

Switching to a new tool or programming language when starting a new project can dramatically increase chances of failure because it introduces more unknowns into the process, and eventually delays the journey from idea to a launched product. It’s the best form of “productive procrastination”: doing something that seems to be contributing to the project’s progress, while it actually has very little to do with it.

Professionals seem to know this rule much better than beginners. They learn, sometimes the hard way, that switching and upgrading to the best new thing doesn’t usually translate to better work. I know some bestselling authors who haven’t upgraded their laptops for the past 10 years, and a few amazing cartoonists who still use Flash MX 6 to do their artwork.

As Hugh Macleod puts it: “Fancy tools are just pillars to hide behind”.

So instead of asking: “what’s the best tool or language for a new project”, try asking yourself: “how can I use what I already know to get it done soon”. Even if you end up doing it in a crude way the first time around, it doesn’t matter. The goal is to first get it done, then get it right; To minimize time and friction from idea to execution.

 

 

 

DevOps

Courtesy:  Jez Humble

DevOps is not…
* A certification
* A role
* A set of tools
* A prescriptive process

DevOps is…
* A philosophy that starts with passion
* A cultural, professional movement with attitude and values
* A reaction to poor communication
* About creating visibility between dev and ops
* About the symbiotic relationship between dev and ops
* Cross-functional teams over organizational silos
* Products, not projects
* Automation over documentation (and more automation… and more…)
* About creating self-service infrastructure for teams
* Knowing that good software doesn’t end with development / release
* Software that doesn’t require support
* Ensuring a continual feedback loop between development and operations
* Cross-functional teams over organizational silos
* Creating products that are owned by the delivery team
* Knowing that a project is only finished when it is retired from production
* Something you can do without doing agile

What we want to achieve

* Operations and development are skills, not roles. Delivery teams are composed of people with all the necessary skills.
* Delivery teams run software products – not projects – that run from inception to retirement

 

 

Courtesy:  dev2ops

http://dev2ops.org/blog/2010/11/7/devops-is-not-a-technology-problem-devops-is-a-business-prob.html

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

 

Related negative posts:

DevOps is DOA

If you use iaas, saas, paas, this will only change the context. It will be another layer of abstraction. Great when it works, hard when it fails. The adagium that your SAAS provider will fix your stuff faster isn’t always true either. There is always a history and a context required to give good support, close constant collaboration can provide that better IMHO.

And because you rely on an external party, you will now have to monitor if it fails, check if you can switch to another paas provider, have a backup ready solution, need testing to avoid performance issues. So here come the operations/sysadmin tasks again, just in a different setting. You might say the developers can do it all themselves now, but in reality they are now taking on the sysadmin roles too.

Don’t get me wrong, I love *aas , but when the **** hits the fan, I’d favor someone I can really talk too, with options for my problem and not a generic problem. If you can get close to that level of collaboration with your SAAS provider, your saas has become another part of your devops team. (bridging collaboration). But my experiences are when things fails, communication often shuts down to a generic information level and isn’t focused on helping my specific issues. This can be done right, but if not, this will just be another silo you will have to bridge again.

DevOps is a Poorly Executed Scam

Since no methodology peddler ever wants to say this, I will: there’s a point where you’re simply fucked. Meaning, you can’t solve the problem with the tools available. Sometimes, you have to fire people who aren’t working out. Sometimes, you’re too deep in technical debt and too pressed for time to do it the “right way”. And sometimes, projects fail. It is what it is. This isn’t defeatist, it’s realist.

I am not trying to sell you a book, I am just being honest about the problems you face. None of this amounts to a methodology, as the Devops people would have you believe. If your developers and your sys admins are so culturally different that they can’t agree on a solution to a simple technical problem, then your organization will not be fixed by some sunshine-up-your-ass methodology you read about in a blog or hear about at a conference. You need to change the culture the hard way, or replace people as necessary until the culture works.

Knowledge and Action Asymmetry

As far as humans are concerned, reality exists in two dimenstions:

  1. idea – knowledge, abstraction, concepts
  2. action – implementation, instance,  software

Asymmetry refers to the disconnect or mismatch in ideas or actions between at least two people.

Knowledge asymmetry is the difference or incompatibility in idea. Action asymmetry is the difference in execution or instantiation.

Software is a manifestation of action. There is so much asymmetry or heterogeneity in software. Operating systems, middleware and applications. They are so diverse like ecology. Look at methodologies, frameworks, design patterns, open source vs proprietary, differences, heterogeneity, incompatibility and complexity all too common in software.

It is a crazy world, it is anything goes (Paul Feyerabend).

The asymmetry in knowledge and action existing in software only shows that traditional engineering pales in comparison to software engineering as far as complexity is concerned.  Traditional engineering is basically static, whereas software engineering is dynamic, adaptive and organic.

That is why there is Agile Manifesto, Extreme Programming, Test-Driven Development, etc that people concoct to bring order out of the chaos of software development.

From a vendor’s point of view, heterogeneity is complexity and interoperability is a necessary evil.  In contrast, homogeneity is a competitive advantage (just look at how integrated Apple is).

Knowledge asymmetry and action asymmetry may explain why there is so much complexity in IT (specifically software).

CodeNow Zuckerberg Pitch

I have nothing against CodeNow, but consider the The Next Web blog post title:

CodeNow to train the youth of America to be the world’s next Mark Zuckerberg

Have you noticed what’s wrong with the title?  CodeNow’s goal is noble but the marketing pitch is misleading.

You are not Mark Zuckerberg. You are not Seth Godin. You are not Bill Gates nor Steve Jobs.

You are just one in a long tail of niche individuals that may carve a future in IT. Unless you emulate their perseverance.

One’s success is different among others.

To parahrase Steve Jobs:

Follow your heart…Don’t live someone else’s life.

Unschooling 101

What is Unschooling?
by Earl Stevens

“What we want to see is the child in pursuit of knowledge,
not knowledge in pursuit of the child.”

– George Bernard Shaw

It is very satisfying for parents to see their children in pursuit of knowledge. It is natural and healthy for the children, and in the first few years of life, the pursuit goes on during every waking hour. But after a few short years, most kids go to school. The schools also want to see children in pursuit of knowledge, but the schools want them to pursue mainly the school’s knowledge and devote twelve years of life to doing so.

In his acceptance speech for the New York City Teacher of the Year award (1990), John Gatto said, “Schools were designed by Horace Mann … and others to be instruments of the scientific management of a mass population.” In the interests of managing each generation of children, the public school curriculum has become a hopelessly flawed attempt to define education and to find a way of delivering that definition to vast numbers of children.

The traditional curriculum is based on the assumption that children must be pursued by knowledge because they will never pursue it themselves. It was no doubt noticed that, when given a choice, most children prefer not to do school work. Since, in a school, knowledge is defined as schoolwork, it is easy for educators to conclude that children don’t like to acquire knowledge. Thus schooling came to be a method of controlling children and forcing them to do whatever educators decided was beneficial for them. Most children don’t like textbooks, workbooks, quizzes, rote memorization, subject schedules, and lengthy periods of physical inactivity. One can discover this – even with polite and cooperative children – by asking them if they would like to add more time to their daily schedule. I feel certain that most will decline the offer.

The work of a schoolteacher is not the same as that of a homeschooling parent. In most schools, a teacher is hired to deliver a ready-made, standardized, year-long curriculum to 25 or more age-segregated children who are confined in a building all day. The teacher must use a standard curriculum – not because it is the best approach for encouraging an individual child to learn the things that need to be known – but because it is a convenient way to handle and track large numbers of children. The school curriculum is understandable only in the context of bringing administrative order out of daily chaos, of giving direction to frustrated children and unpredictable teachers. It is a system that staggers ever onward but never upward, and every morning we read about the results in our newspapers…..

CAN IT WORK IN THE REAL WORLD?

If unschooling can’t work in the real world, nothing at all can. People will say “How will they learn algebra in the real world?” Is there algebra in the real world? If not, why should it be learned? If so, why should it be separated artificially from its actual uses? “Why?” should always be the question that comes before “What?” and “How?” There is a Sesame Street book called Grover and the Everything in the Whole Wide World Museum. There is a “things under the sea” room and “things in the sky” room, but still each room is just a room in a museum, no windows, everything out of context. Then he opens a big door marked “everything else in the whole wide world” and goes out into the sunshine. There is unschooling.

NOT JUST FOR KIDS!

The way adults tend to learn things is the way people best learn—by asking questions, looking things up, trying things out, and getting help when it’s needed. That’s the way pre-school kids learn too (maybe minus the looking things up), and it is the way “school-age” kids can/should learn as well. Learning is internal. Teachers are lovely assistants at best, and detrimental at worst. “Teaching” is just presentation of material. It doesn’t create learning. Artificial divisions of what is “educational” from what is considered NOT educational, and things which are “for kids” from things which are NOT for kids don’t benefit kids or adults. Finding learning in play is like the sun coming out on a dank, dark day.

(courtesy of sandradodd.com)

More on Google (http://www.google.com/?q=unschooling)

Critique of IT Education

There are only two things wrong with the education system: what we teach, and how we teach it – ROGER SCHANK

I am not referring to CS education. You may burn your brains out all those 4 years in college, and I would not complain. CS (computer science) is all about theory. I am not talking about CS. I am talking about IT education. IT (information technology) is simply applied computer science, just as engineering is applied science.

My take on IT education is simply this: get more of thesis-style learning, and less about theory.

Specifically, 3 years of PhD-style hunting for knowledge (with practical hands-on) after 1 year of requisite theory.

Why?

It all starts with the question “why?”

Students, first and foremost, need to do some soul-searching of themselves. They need to examine their interests and passion.

Steve Jobs in his 2005 Stanford commencement address says:

You’ve got to find what you love…Don’t settle.

After the why is resolved individually, students need to realize their direction. To paraphrase Lewis Carroll,

If you don’t know where you’re going, it doesn’t matter which way you go.

If students know their why, the school kicks in with the what (ideas) and how (skills transfer).

How?

By guiding students to reach their potential, but in essence you don’t teach students how. They can do it by themselves. IT is 90% procedural. The 10% is left for educators to stimulate and sustain their thirst for knowledge.

In a word, IT education is simply a business of feeding the students’ passion.

So what’s the difference between traditional IT schools and technical/vocational centers? Nothing unless they go unschooling.