Daniel Miller
Seeking, stories, beauty, meaning
Entrepreneurs?
Managers?
Developers?
Students?
Other?
Software development process
How software is built
a series of repeatable actions
the golden goose to building creative confidence
http://bit.ly/creative-confidence
Bad process and the journey out of it
Good process is always important. Why?
What we did to get good process
It's the wild west
This engenders cowboy coding
https://en.wikipedia.org/wiki/Cowboy_coding
"Cowboy coding" commonly sees usage as a derogatory term when contrasted with more structured software development methodologies.
bad process == bad code == bad product == no sales
We would use GitHub tickets, but everyone managed their own work
todo lists
searching assigned tickets
email...
How to keep the plane in the air while changing out the engines?
The first step is admitting you have a problem.
Any improvement is progress.
Choose your tools based on your process, not the other way around.
Maintaining institutional knowledge
Good ones are hard to find
Even good ones do not know your system yet
Replacing developers is one of the most expensive things you ever have to do.
Huge features may take so long that they get dropped completely as a new priority arises.
Stick to manageable milestones, and re-group once you get there.
It just kind of creeps up on you
We use Huboard, but others exist: Trello, Waffle
Everyone knows what's being worked on, and can participate in planning and triage.
Huboard stores everything in Github, so we keep one source of truth.
Store the project in source control (Git, SVN)
Write new code on a new branch
Open a Pull Request for someone to review
Don't deploy your own changes!
1-2 week sprints
(3 weeks is too long for our 5-member team)
Good sprint planning is difficult
Track all the things!
How much unplanned work entered the sprint?
What planned work didn't make it through the process and why?
(shorter sprints are easier to plan)
Do sprint retrospectives and planning as a team
Involve non-devs
We do retrospectives and planning in the same meeting
Celebrate!
usually for 1 hour between 2 week sprints
Tests will save your bacon
Tests are code
Schedule for tests or they won't get done
Start with test coverage for the most critical parts of your app
We still don't have tests for large chunks of our system
We do not bake enough time into our schedule for writing tests, regular maintenance and unplanned work
Enforcing the process / business buy-in:
Educating others on the value of the process
Helping them integrate it into their workflow
But we are getting better!
...the “aggregation of marginal gains.”
We work normal hours and are rarely stressed out
We have time to work on important things
These slides:
http://bit.ly/dev-process-that-works
The Phoenix Project:
http://bit.ly/the-phoenix-project
Huboard:
https://huboard.com/
Trello:
https://trello.com/
http://bit.ly/trello-scrum-0
http://bit.ly/trello-scrum-1
(just google 'trello scrum')
Waffle:
https://waffle.io/
By Daniel Miller