Notes on seeking wisdom and crafting software

On resourcing and engagement

Getting help is top of mind for me this week.

As an architect, we juggle with several things. Current state of the product, the consumer’s state of mind and finally, the future vision. Understanding state of being requires instrumentation, usage data analysis and a deep knowledge of the feature set. You need to empathize with the customer needs and learn their expectations from the system you’re building. This gives a solid set of requirements that feed into the vision.

All of this costs money.

Resources

We don’t have it. Feature teams are often busy with building features to be shipped next month. So there isn’t much help available for adding instrumentation. There is no one to analyze the data for you too.

I learnt two things in this setup.

First, if you can do the stuff, do it and unblock yourself. Always bias towards shipping and giving things! Never let the false ego take you for a ride. E.g. if I do instrumentation, what is the trade-off? Will it take away time from thinking about future? Doesn’t matter. What’s the point in thinking about an imaginary future which can’t be explained objectively? So go add the instrumentation.

If no one is throwing money, may be it is inconsequential. What if I am just going to produce an architecture that never gets shipped?

Second lesson. Wear the consultant hat. A consultant is hired to provide a service. It is upto the stakeholder to decide whether the service will be integrated today or tomorrow based on the priority of business.

Remember you do architecture for a living. Your job is to understand the scenarios, gather all requirements and produce a great design. Whether someone implements it or throws it away is a different concern.

This is hard. Everytime a great piece of art is shelved, it feels like an entire quarter is wasted.

Implementation is not under your control. Producing the best possible art is. Publishing the art is also with you. You own the bragging rights for that art as well. Spreading the joy of that creation also stays with you. Talking about failures is also yours. May someone learn a thing or two from your art, even if it never materializes.

Go out and talk about it.

Engagement

While we’re talking about talking, it is important to understand who your audience is.

It takes several trials to find that out. You’ll meet the dreadful silence quite often.

People don’t engage for several reasons - the published art is incompetant, people are incompetant and lack the vocabulary to engage, or they don’t care. Option one can be ruled out with a set of trusted friends. Ask them to poke holes and give you honest feedback. My request is to assume incompetant audience before declaring yourself as worthless ;) It never hurts to try a different audience. Reaching the conclusion that an audience doesn’t care is hard. I have learnt to timeout after a few trials and ask politely if there’s anything I can do to engage them. Usually the response is honest.