Zuehlke / machines-code-people

Open Source Book about practicaly proven concepts, best practices, cultural philosophies and great ideas that we use in our daily work in projects at Zühlke
Other
37 stars 41 forks source link

Article: Start with the Why (Coding On Purpose) #21

Open peitor opened 7 years ago

peitor commented 7 years ago

Content:

adiherzog commented 7 years ago

Just some thoughts when reading the title and the description:

Is this related to Simon Sinek's "Start With Why"?

I think it should at least have a reference to it, because that's what many people could think you are talking about. And it should probably also consider other authors with a similar message, for example "Impact Mapping" or even the old school "Inception phase" à la RUP, or tracability from features to user goals / business goals. In the end it's all about building things that matter... to someone with money... ;-). Y-Combinator says "Make something people want.".

I think the "why" question became more and more important in software engineering the more it turned into an industry and therefore the developers became more and more detached from the people that actually use the software (with outsourcing being an extreme case of this). I imagine that in the early days the programmer was usually also the one getting the use of the program. E.g. the accounting department programmed some accounting routines. Then later there was a programming department in the company that still knew the business quite well (and therefore the why). Then came consultants, that have to ask why a lot because their business is mainly software and not much the business the customer does. Then in the end came outsourced consultants, which did not only require more of the why questions but also made it harder to ask them. This in turn spawned a whole sub-industry of people finding new ways how to ask why in the best way ;-) I just made this up, but doesn't it have some truth in it?

On the other extreme of what I just described, it's quite easy to understand the why if the software you are writing is something you are also a user of. This makes it quite easy to understand the purpose of things like a search engine, a social network or a generic spreadsheet application. That's why I think writing generic or common sense software is in general a much easier task and can not simply be compared to writing bespoke software for a very specific need that even the business itself might not fully understand.

Another aspect I find important here: as a programmer at heart we often want to build a tool for everything. That's just what we do, what we know and what we are (hopefully) good at. But tools is not what our customers are looking for. Our customers are looking for solutions for their problems, and this solution might involve building a tool or not. Instead it might be better solved with changing a process, with buying and integrating some existing software, or maybe we should start with a prototype to find out whether the tool we want to build is actually the right one.

Loosely related talk by Paul Watzlawick: When the solution is the problem (https://www.youtube.com/watch?v=7etsh4HwG78). He tells a few stories that illustrate how having a certain solution in mind or having a certain mental model can be restricting in finding the right solution.

I guess the Stars to Road model is also somehow related to this: http://starstoroad.com/blog/

May I propose some additional questions to treat?

As I said, just some thoughts that came to my mind. Use them as you wish for the article. Or if you like, we can also sit together over a coffee to elaborate more on our ideas and maybe even write the article together.

peitor commented 7 years ago

Hey @adiherzog, great input. I think we have our 1st article almost already. What if you use your input as a starter and finish it up?

peitor commented 7 years ago

Key messages:

http://business-agility.tumblr.com/post/156618020634/are-we-all-focusing-on-the-right-metric-of

adiherzog commented 7 years ago

Just found this by accident, seems relevant: GOTO 2012 • Frankenbuilds; if Agile is so good, why are our Products so bad? • Gabrielle Benefield (https://www.youtube.com/watch?v=2JNXx8VdbAE)

After watching it, these are her key messages:

Outcomes over Output

Metrics

Empathy

mdf88 commented 7 years ago

Personally I don't care that much about the "why" but about the "what for", the purpose.

And there are a few very basic questions you need to have clear understanding about

1) For whom and what situation are you creating the product (service/system)? What will they want to achieve? 2) How relevant is this for them?

Inseperable with this question is the following: 3) What are possible solutions (products, services, systems, ..) ? 4) Which one offers the best compromise (benefit of using vs. cost of using and changing ones ways) and is the solution convincing enough so enough people take the trouble to learn something new?

Having good answers to the questions above will directly lead to the next question: 5) Who else needs to be on board so the solution can become reality 6) How will they be more successful/happier/... so that they are going to contribute

Hoovering over it is the Question: 7) Is the overall profit big enough so we should actually provide the solution?

abeggchr commented 7 years ago

@adiherzog would you like to take over the lead for this article? And would you like to contribute it during the pilot (until end of may) or later?

adiherzog commented 7 years ago

@abeggchr Yes, I would like to contribute this article, but I can't promise yet that I can finish it for the pilot.

@mdf88 Thanks for the input. I can see that "what for?" has a stronger focus on purpose while "why?" has a stronger focus on explaining a cause. Just found a nice example here: https://www.englishforums.com/English/WhatForVSWhy/xrkml/post.htm

Assume that I am slicing some chicken.

  • Why are you slicing some chicken? Well, the breast was whole (cause) so I am slicing it (effect).
  • What are you slicing some chicken for? I am slicing some chicken (cause) to make stir fry (effect).

As we are in the business of creating outcome, we better be informed about what outcome our customer wants to achieve ;-) Let's change the title to Start with the "what for". @peitor @abeggchr Fine with you? I can't change the issue title though... Is this a permission problem?

peitor commented 7 years ago

Start with the "what for".

I like that. That goes in the direction of focusing on the impact.

I would just create a new article (comment) -> then you can change the title.

adiherzog commented 7 years ago

Design Thinking puts "Empathize" first, as a title for "identifying and understanding customer needs": https://www.zuehlke.com/ch/en/about-us/academy/training/details/design-thinking-en/

Maybe that's even better than "What for"...

I'm a bit hesitant about writing this article, for the following reasons:

This topic is so basic that everybody should already know it

Counter argument to this concern: “People need to be reminded more often than they need to be instructed.” - Samuel Johnson

We could put something like this quote at the beginning of the article.

Start with the... sounds like work is just a sequence of steps

To mitigate this we should mention the ongoing importance of the "what for", the "why", the "Empathy", etc. Maybe we could even change the title to "focus on what really matters to your customer".

This topic is everywhere, there's really enough material on it...

I even read about this topic in the Joosr summary of a book on raising children (https://joosr.com/books/raising-can-do-kids):

We should teach our children the value of serving others—not only will this help them to build and sustain relationships, but in the world of work, the most successful businesses are those who solve a real problem for their customers or help them to live better lives. We should endeavor to model empathy and encourage our children to carry out acts of kindness for others and help solve problems in their lives.

Paul Graham of Y Combinator (just noticed they have a Y in their name...) says: Make something people want.

So...

It's important we do not just say what everybody else says but instead add some value through this post. One thing that came to my mind is a drawing (I can add a sketch of it later) that undermines the point. Furthermore we can think about how this principle looks in the everyday life of a software creator. Other ideas?

adiherzog commented 7 years ago

So here's a customer asking us to solve a problem for him. There are three quite different ways we can see our role as software developers, depending on whether we see our main duty to ask for How?, What? or What for?:

three_conversations

If we are really concerned about delivering the best possible solution for the customer, then we have to go down the "What for?" path. The customer might already have a very clear idea of "what" we should build and "how" we should build it, as shown in this picture:

solution_space_1

If we challenge this and search the entire solution space that the "what for?" questions gives us, we might find an even better solution that might even be cheaper:

solution_space_2

@peitor What do you think about these images?

peitor commented 7 years ago

Awesome!!! I ❤ the images!

adiherzog commented 7 years ago

Glad you like it :-) Yeah, a comic would be nice.

Just learned about another related principle: https://de.wikipedia.org/wiki/Subsidiarit%C3%A4t / https://en.wikipedia.org/wiki/Subsidiarity

the principle that a central authority should have a subsidiary function, performing only those tasks which cannot be performed at a more local level.

It originated in the Roman Catholic Church...

adiherzog commented 7 years ago

Ah, and there's micro-management as a negative example...

adiherzog commented 7 years ago

New idea for a title: "Optimize Outcome, not Output"

abeggchr commented 7 years ago

I added the article to the pilot and I hope that @adiherzog can come up with something in the next weeks (regarding the massive load of discussion here, I am quite optimistic!)

adiherzog commented 7 years ago

@abeggchr Yes that should be possible :-) When is the deadline?

adiherzog commented 7 years ago

Another article on this topic that a colleague just posted on LinkedIn: http://bravenewgeek.com/engineering-empathy/

adiherzog commented 7 years ago

http://xyproblem.info/

adiherzog commented 7 years ago

Twitter Post by John Cutler: https://twitter.com/johncutlefish/status/775523444385382400

peitor commented 7 years ago

https://twitter.com/_gregorilg/status/884663883172110336 Auch super mindset.

Call me to save time from emails +41798160297

Handcrafted on a mobile device http://blog.gfader.com/p/about-me.html

Am 11.07.2017 um 22:25 schrieb Adrian Herzog notifications@github.com:

Twitter Post by John Cutler: https://twitter.com/johncutlefish/status/775523444385382400

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

adiherzog commented 7 years ago

@peitor @abeggchr @mdf88 @bruderol I created a first draft of the article and opened a pull request: https://github.com/Zuehlke/zuehlke-book/pull/37

It's not finished yet, but I'm curious about your feedback. For now the article is just text, but in the end it should also contain some images (e.g. something similar to the ones shown above).

adiherzog commented 7 years ago

https://blog.leanstack.com/love-the-problem-not-your-solution-65cfbfb1916b

adiherzog commented 7 years ago

Quantify the un-quantifiable: Tom Gilb at TEDxTrondheim: https://www.youtube.com/watch?v=kOfK6rSLVTA

abeggchr commented 6 years ago

@adiherzog can you assign yourself to this issue? I can't... You somehow do not appear when I enter "adiherzog"

adiherzog commented 6 years ago

@abeggchr I can't change the assignment of the article. Could you please check my permission?

image