Fast, Cheap, and Good: The Small Business Guide to Content Creation
Beyond Fast Good and Cheap
-
Upload
alan-stevens -
Category
Technology
-
view
2.284 -
download
0
description
Transcript of Beyond Fast Good and Cheap
![Page 1: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/1.jpg)
Beyond Fast, Good And Cheap
Alan Stevens
Finding our values in the face of uncertainty
![Page 2: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/2.jpg)
Contact Me
Slides: speakerdeck.com/alanstevens
Email/IM: [email protected]
Website: halanstevens.com
Twitter: @alanstevens
![Page 3: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/3.jpg)
nerdhiveindustries.com
![Page 4: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/4.jpg)
II. The Problem
III. Values
V. Rules
I. Backstory
IV. Principals
![Page 5: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/5.jpg)
I. Backstory
![Page 6: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/6.jpg)
I Hate Crappy Code
![Page 7: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/7.jpg)
The Real World
![Page 8: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/8.jpg)
Constraints
![Page 9: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/9.jpg)
Priorities
![Page 10: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/10.jpg)
Values
![Page 11: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/11.jpg)
II. The Problem
![Page 12: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/12.jpg)
The Project TriangleFast
GoodCheap
pick any two
![Page 13: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/13.jpg)
Fast
![Page 14: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/14.jpg)
Good
![Page 15: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/15.jpg)
Cheap
![Page 16: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/16.jpg)
How do we balance building the right thing with building it well?
![Page 17: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/17.jpg)
Building the right thing is always a higher priority!
![Page 18: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/18.jpg)
I'm never in favor of writing code poorly, but I am in favor of writing code to reflect your current understanding of a problem even if that understanding is partial.
Ward Cunningham“Ward Explains Debt Metaphor”
http://c2.com/cgi/wiki?WardExplainsDebtMetaphor
![Page 19: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/19.jpg)
Can we verify that we are building the right thing?
![Page 20: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/20.jpg)
The tests specify requirements in a way that does not require human interpretation to indicate success or failure.
Jim NewkirkTest Driven Development in Microsoft .NET
![Page 21: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/21.jpg)
Building it right has a minimum acceptable threshold which must be met
![Page 22: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/22.jpg)
Once you get your systems to work, you still have to go back and clean up the wreckage left behind by the victorious battle.
“Uncle” Bob Martin“The Rush”
http://blog.objectmentor.com/articles/2009/06/26/the-rush
![Page 23: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/23.jpg)
You are not done until the victorious code has been cleaned, polished, and oiled.
“Uncle” Bob Martin“The Rush”
http://blog.objectmentor.com/articles/2009/06/26/the-rush
![Page 24: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/24.jpg)
The Last 10% is 50% Of The Work
![Page 25: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/25.jpg)
How do we guarantee baseline design without impeding
productivity?
![Page 26: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/26.jpg)
Image credit : FlyoverPeople.net
III. VALUES
![Page 27: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/27.jpg)
The *ILITIESAgility
Testability
Readability
Reversibility
Changeability
Flexibility
Maintainability
Coined by Kevlin Henney
![Page 28: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/28.jpg)
Prevention is the best cure
![Page 29: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/29.jpg)
Continuous Improvement
![Page 30: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/30.jpg)
“With every mistake, I must surely be learning”
George Harrison
![Page 31: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/31.jpg)
As applications mature, they should become more maintainable, not less.
![Page 32: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/32.jpg)
Avoid Complacency
![Page 33: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/33.jpg)
IV. Principles
![Page 34: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/34.jpg)
Value Developer Cycles Over CPU Cycles
![Page 35: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/35.jpg)
Do the simplest thing that could possibly work
![Page 36: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/36.jpg)
Follow the “Boy Scout Principle”
![Page 37: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/37.jpg)
Manage Technical Debt
![Page 38: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/38.jpg)
I thought that rushing software out the door to get some experience with it was a good idea, but that of course, you would eventually go back
Ward Cunningham“Ward Explains Debt Metaphor”http://c2.com/cgi/wiki?WardExplainsDebtMetaphor
![Page 39: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/39.jpg)
as you learned things about that software you would repay that loan by refactoring the program to reflect your experience as you acquired it.
Ward Cunningham“Ward Explains Debt Metaphor”http://c2.com/cgi/wiki?WardExplainsDebtMetaphor
![Page 40: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/40.jpg)
Enable Change
![Page 41: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/41.jpg)
Build Architectural Seams
![Page 42: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/42.jpg)
At least build fault lines
![Page 43: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/43.jpg)
V. Rules
![Page 44: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/44.jpg)
the code is more what you'd call "guidelines" than actual rules
![Page 45: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/45.jpg)
a developer's career is spent pursuing better and better answers to the question "where should this code go?"
Jeremy MillerOn Writing Maintainable Codehttp://codebetter.com/blogs/jeremy.miller/archive/2006/12/06/On-Writing-Maintainable-Code.aspx
![Page 46: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/46.jpg)
Where should this code go?
![Page 47: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/47.jpg)
Don’t Repeat Yourself&
Separation of Concerns
![Page 48: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/48.jpg)
D RYDon’t
Repeat Yourself
![Page 49: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/49.jpg)
See it once: do it
See it twice: notice it
See it a third time:
Abstract It!
The Rule of Three
![Page 50: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/50.jpg)
Separation of Concerns
![Page 51: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/51.jpg)
![Page 52: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/52.jpg)
![Page 53: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/53.jpg)
High Cohesion &
Low Coupling
![Page 54: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/54.jpg)
![Page 55: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/55.jpg)
When you finally realize what your program is doing, you have to go back and make it look like you knew that all along.
Ward Cunningham“Mastering the Craft of Programming”http://railslab.newrelic.com/2009/09/15/ward-cunningham-aboutus-org
![Page 56: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/56.jpg)
Make it look like it was easy to write this program, even if it wasn’t.
Ward Cunningham“Mastering the Craft of Programming”http://railslab.newrelic.com/2009/09/15/ward-cunningham-aboutus-org
![Page 57: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/57.jpg)
Make it look like it was
easy to write.
![Page 58: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/58.jpg)
Thanks For Listening!
Email/IM: [email protected]
Blog: http://halanstevens.com
Twitter: @alanstevens
![Page 59: Beyond Fast Good and Cheap](https://reader033.fdocuments.in/reader033/viewer/2022052504/54552c7cb1af9fcf338b4727/html5/thumbnails/59.jpg)
Slides: speakerdeck.com/alanstevens
Email/IM: [email protected]
Website: halanstevens.com
Twitter: @alanstevens
Thanks For Listening!