A plea to my fellow developers and our employers [Harm]

water waveRevelations today about a security breach at Sony Pictures. If the claims are true, the company failed to take even minimal steps to protect the identities of their users. Passwords were stored in plain text.

There are many reasons why this happens: naive business sponsors, inexperienced or pliable developers, poorly thought out or narrowly defined requirements, lack of regard for user privacy, and simple schedule pressure that leads to mistakes and cut corners.

It is unacceptable to assume stored user information is not sensitive simply because your site doesn’t do anything sensitive with it.

People re-use passwords. They shouldn’t but they do. They may only be signing up with you for access to white papers but that username and password may crack facebook, paypal, capital one, or any number of other websites.

We can’t treat websites as something less than software, cram as many front facing features into them with as little time and investment as possible and expect a serviceable, safe, and usable consumer experience.

We can’t treat developers as disposable widgets that are there to “work hard” and “do what they’re told” and expect them to watch our back by behaving as ethical professionals and crafts people.

We can’t expose customers to this kind of risk and expect to retain them as customers.

The best way to encourage new and onerous legal obligations is to act irresponsibly because there is no current legal obligation to do otherwise.

There is a historical pattern. A new field starts generating significant wealth and the resulting products and services become widely adopted by society. As a result of that success, failure becomes more visible, more frequent, destroys more wealth and harms more people.

The industry, practitioners and the government step in to reduce the failure rate. The typical result is government licensing of practitioners and regulation of businesses, accreditation of training organizations, and professional bodies with codes of practice and certifications.

I’m not against any one of these things if they evolve gradually.

But if we create another “software crisis.” This time one that affects the safety of large swaths of society or the wealth creation their trust of the internet represents. Then these things will happen too rapidly, too thoughtlessly.

So, here’s my plea to product people and executive sponsors:

  • Realize software is complex and websites are software.
  • Hire experienced, thoughtful developers, encourage them to tell you the truth and LISTEN TO THEM.
  • If you take risks to get something to market, take the time later to circle back and invest to bring that risk down.
  • Don’t take risks that can harm your end users.
  • Realize a website is not a onetime upfront spend but an ongoing commitment of time attention and resources.
  • Realize if you intend to use a website for a short time or an experiment, follow through and dispose of it — or be prepared to invest significantly more in turning it into a long-term asset.

Here’s the plea to my fellow developers:

  • Take the quality of our work seriously.
  • Learn, learn, learn how to write good code.
  • Take our end users seriously. DO NO HARM.
  • Band together and demand the best of each other

The existential joys of agile practice: angel on your shoulder

At Agile NYC I presented a pecha kucha. 20 slides. 20 seconds per slide. This is the fourth and final part.

Angel on your shoulder

play at your own riskAgile values call for honesty and trust. A shared ambition to do better and be better while causing each other less unnecessary pain.

I try to remember this in one on ones, retrospectives, coaching and in reflecting on my own decisions and actions.

The great thing about these values is that even as you strive towards them your co-workers will give you permission to demand more of them.

Just as they will demand more of you.

AngelThis demand gives you an angel on your shoulder. Watching you as you work. It inspires even as it shames you into substantial actions that go against your nature. And you do this because your team needs you to.

You invest in the hard daily work of adjusting your own bad habits one behavior at a time in the interests of the people you work with and the work you do together.

This isn’t easy. It’s mortifying. It’s scary.

TeamBut the reward is that you get to be the same person with your boss that you are with your peers that you are with your staff.

The reward is that you get to work at your best with other people working at their best.

And you carry that potential with you as you move on to other projects and other teams.

Building blocksUltimately, I want more than success on a project or in a particular job. I want a career.

I want to be proud of my accomplishments and I want to be proud of who I was as I attained them.

I want to spend my life loving what I do.

And I want to build things that are useful and delightful to people.

My pecha kucha topic was inspired by Samuel Florman’s book, The Existential Pleasures of Engineering

The main goal has always been to understand the stuff of the universe, to consider problems based on human solution, and to follow through to a finished product.

Existential delight has been the reward every step of the way…

— Samuel C. Florman

The existential joys of agile practice

  1. A family tradition of care and craft
  2. I want to live in our imperfect reality
  3. People over process
  4. Angel on your shoulder

The existential joys of agile practice: people over process

At Agile NYC I presented a pecha kucha. 20 slides. 20 seconds per slide. This is the third of four parts.

People over process

Cathleen P. Black, who took over as New York City schools chancellor in January, at the Tuesday meeting of the Panel on Educational Policy.

Robert Stolarik for The New York Times

Cathie Black was Chancellor of New York City Schools for three months. She was hired despite having no education experience and no affinity for public schools, parents, teachers and students because she was, “an excellent manager”.

I love that agile doesn’t celebrate management. It relies on individual contributors. It relies on community.

painting by Eiko JudyThe oozy failure wrapped in the chocolatey success of agile is when we focus on process mechanics and lose sight of people.

If we do, our practice becomes arbitrary and abstract.

There’s a study that claims the best and worst performers have more in common with each other than those in the broad middle.

NYC Lego First PitsWhile the best are energized by their caring and use that passion to drive to the best outcomes, the worst are demoralized and ruined by it.

The indifferent middle, they just plug away.

When we impose a process upon a workplace to avoid failure. We rob the best performers of opportunities to engage and care.

Sunset Big IslandWe preclude the best in an attempt to avoid the worst and ensure mediocrity.

I acknowledge that successful products can emerge from awful workplaces. And that that good teams often create failed products.

But working in a way that tears down talented people’s desire for work is tragic. To repeatedly do this this is to sap the world of its limited supply inspiration, creativity and joy.

The existential joys of agile practice: I want to live in our imperfect reality

At Agile NYC I presented a pecha kucha. 20 slides. 20 seconds per slide. This is the second of four parts.

I want to live in our imperfect reality

Extreme beyond this pointAs agile becomes popular it becomes a buzzword. It gets promoted as a tool that solves problems when at its heart it is a set of values that encourage you to confront problems.

We should all recognize these organizing principles…

  • Collaboration over negotiation
  • Working software over specification
  • People over process
  • Responding to change over following a plan

In addition, Bob Martin’s “Quality over crap”

Worship the plan. The plan is good.Let’s talk about following a plan… worshipping a plan

I think of this every time I think of worshipping a plan…

A driver put her faith in her satellite navigation system. It told her to turn onto a bridge. Problem was the bridge had been washed away. She drove her $160,000 Mercedes into the flood where it was swept away. She had to be rescued as it sank.

black holeWhere the customer doesn’t entirely know what will succeed… Where they aren’t entirely steeped in the technology…

Specifications become a black hole so dense with detail that even light cannot escape.

Project schedules become the most boring fairy tails ever told.

Mocks mock us.

dandelionAnd process gates (“handoffs”) kill collaboration.

We put a lot of energy into delivering the wrong thing on time and on budget.

And we don’t even recognize or care about that thing by the time it goes live – if it ever does.

walk don't walkI want to live in our imperfect reality.

…Focus on what I did, what I’m doing and what I want to do next.

I want to know what we are trying to achieve and converse with people I’m achieving it with.

Dart arrows missing targetI accept failure if we call it out as we recognize it, applaud the attempt and make changes so that we don’t repeat that exact failure again.

In short, I love an iterative, reflective way of working because I dearly want to spend each day doing a little less crap and a little more not crap than the day before.

And I want to do it without simply handing off my crap onto others.

The existential joys of agile practice

  1. A family tradition of care and craft
  2. I want to live in our imperfect reality
  3. People over process
  4. Angel on your shoulder

Nine software development aphorisms (that are sometimes true)

  • Beneficial change results from cycles of learning, doing and self-reflection.
  • Success derives from delivering small things of value regularly and often.
  • A discreet piece of work is either done or it is not done.
  • Better to risk a bad decision than make no decision at all.
  • The wisest decision is made just before it can be most efficiently acted upon and no earlier.
  • Most features will receive little or no use. 60% of what you want is better than 100%.
  • Plans document one scenario that will not happen and describe some other application than the one that was built.
  • On time and on budget are not synonyms for success.
  • In human endeavor, every enlightening truth contains a lie. The road to hell is paved with…