Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Starting book proposal #2

Open
wants to merge 32 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
94e0dd7
starting book proposal
gwincr11 Jan 18, 2019
eaf1e85
addintional excitement
gwincr11 Jan 18, 2019
4d2387b
starting chapter outline
gwincr11 Jan 22, 2019
537f3b9
more work on chapter outlines
gwincr11 Jan 25, 2019
bd23f78
more proposal
gwincr11 Jan 26, 2019
9f2a1e0
chapter outline
gwincr11 Jan 29, 2019
dd4a2d2
chapter #
gwincr11 Jan 29, 2019
88d028b
combine first 2 chapters
gwincr11 Jan 31, 2019
845ebc3
sample chapter started
gwincr11 Feb 2, 2019
d84c92d
organic
gwincr11 Feb 2, 2019
2dc7dfe
chapter work
gwincr11 Feb 3, 2019
195070c
more interviewing
gwincr11 Feb 4, 2019
c2d8bf3
sample chapter
gwincr11 Feb 4, 2019
b224e3f
editing
gwincr11 Feb 4, 2019
16194b1
more editing
gwincr11 Feb 4, 2019
37a7a43
language capture
gwincr11 Feb 6, 2019
1bfb972
second attempt at sample chapter
gwincr11 Feb 13, 2019
182d701
blocks
gwincr11 Feb 13, 2019
c805800
outline: minor typos
Feb 13, 2019
fbc2abf
proposal: minor edit suggestions
Feb 13, 2019
ebb89ee
proposal: minor edit suggestion
Feb 13, 2019
cd72da7
ch2 is so awesomegit push origin cg-book-proposal
Feb 13, 2019
48eb451
ch2 is so awesomegit push origin cg-book-proposal
Feb 13, 2019
3e39d4d
ch2 interview topic
Feb 13, 2019
66230b7
ch2 who to interview
Feb 13, 2019
781ec07
Merge pull request #3 from acrlewis/cg-book-proposal
gwincr11 Feb 13, 2019
37a23fe
cccchanges
gwincr11 Feb 19, 2019
9695c47
Merge branch 'cg-book-proposal' of github.com:gwincr11/Communicating-…
gwincr11 Feb 19, 2019
600a896
update outline and proposal
gwincr11 Feb 19, 2019
f15567c
book proposal
gwincr11 Feb 21, 2019
e2c8fc8
Update proposal
gwincr11 Feb 24, 2019
3cc1214
update proposal
gwincr11 Feb 26, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions book/proposal/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Proposal for Design Think for Developers
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible the publisher won't want to run with "Design" in the title, as it's easy to mistake for "Visual Design." In any case, you'll almost certainly be asked to provide several titles & subtitles for the book as part of your early interaction with your development editor.

It might be good to prepare some options. (This was one of the more surprisingly difficult tasks for me—besides writing the marketing copy and picking out a cover).

### By: Cory Gwin

## Overview
The agile manifesto states we should prefer customer collaboration over contract negotiation. As developers we often leave the customer collaboration to others in our organization, leaving only short user stories or issues to gather context. This leads to a number of problems including:

- Downstream communication issues.
- Misunderstood requirements.
- Incorrect implementations.
- Developer frustration.
- Scope change or creep.
- Lost context over time.
- Code that does not properly convey intent.
- Unintended consequence of poorly modeled data.
- Incorrect prioritization.

Our workflows and structures create communication barriers we must break down in order to move our implementations closer to their domains. As developers, our goals should include moving code closer to the vocabulary of the domain. This requires understanding not only the problem being solved by a feature but also, more broadly an understanding of the field we are working in.

Design thinking offers a toolset for gathering insight into the domain that can not only help engineers understand a user's problem more fundamentally, it can also offer byproducts such as:

- Providing a better understanding of the entire domain.
- A clearer path to a domain language.
- Understanding problem nuance.
- Gaining lessons learned of the user.
- Clear prioritization of tasks.
- Indetifying focused solutions.
- Providing insight into how an implementation may evolve.

Following the path of a team replacing a legacy application with a new application this book will explore tools that can be utilized to break down a domain and better communicate with domain experts. The book will introduce a number of design thinking exercises and explain how they can be applied in different scenarios to help agile developers craft clearer implementations.

## What this book will cover:

- Introduce the concept of design thinking.
- Introduce the following design thinking methodologies from the perspective of the developer:
- Stakeholder mapping.
- Interviewing.
- Job shadowing.
- Rose Bud Thorn.
- Affinity Mapping.
- Experience diagramming.
- Importance/Difficulty matrix.
- Feature Voting.
- Creative matrixes.
- Technical prototyping.
- Story boarding UI's
- Stakeholder validation.
- Introduce domain driven design concepts:
- Ubiquitous language.
- Context bounding.
- Domain events.
- Outline effective tools for using design thinking to create ubiqoutous language, bounded contexts and domain events.
- Outline rules for effective design thinking on agile teams.
- Discuss ideas for bringing these methods into teams that are not familiar with design thinking.

## Audience:
This book is suitable for developers, managers, product manager, project managers, designers and anyone looking for methods to bring implementation closer to a domain.

## Why is your book different?

Design thinking books are often aimed at hard D design. This book will focus instead on using design thinking tools to create a different sort of outcome then is
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is different, it really is.... But what to say what to say...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:)

your perspectively is always uniquely yours. Start with your experience and how that experience led up to this way of thinking.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.....your experience gives you a ton of credibility to your views....and your views on design thinking (especially the language/rosetta stone style concept) will prove extremely valuable to others....even those doing design thinking (or thinking they are designedly thinking :))


Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might make sense to take pains to indicate that these tools will be as "real world" and "actionable" as possible, using examples, concrete situations, etc.


## Why we should get excited about your topic:

In the Cathedral and the Bazaar a number of important ideas where set forth related to working closer with our stakeholder:

1. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although Markdown will take care of numbering during render, they'll probably read this as plain text. I'd suggest either number using incrementing numbers or (preferably) just use an unordered list.

1. Release early. Release often. And listen to your customers.
1. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
1. If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
1. The next best thing to having good ideas is recognizing good ideas from your users.
1. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
1. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. (Attributed to Antoine de Saint-Exupéry)
1. To solve an interesting problem, start by finding a problem that is interesting to you.
1. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

Interestingly it contridicts itself pointing out a major issue with the way we develop software:

1. Every good work of software starts by scratching a developer's personal itch.

The implication here is that we do not know how to collaborate with our users in the same way as when we develop to solve our own problems.

This book makes a case that in order to solve problems we need to move the solution architects closer to the domain space. I believe in order to replicate the success of the open source movement in a broader way, we need to find ways to bring domain experts together with solution architects to create a new way of interacting. If one is to believe "We are as gods and might as well get good at it" then we need to focus on creating tools for others in a manner we ourselves would accept.


Binary file modified workshop presentation/design thinking for developers.key
Binary file not shown.