It’s not just about code...




                    Dan Pickett
It’s about
efficacy in solving a
           problem
Don’t Reinvent
    minutiae
Don’t Reinvent
           minutiae

Leverage Frameworks
    to solve problems
Effectively Solve Problems With Frameworks:
    •   Brainstorming

    •   Conceptualization through Sketching and Design
...
CODE
CODE
Ok, well maybe a little code...
Agile        SCRUM

        XP
Agile          SCRUM

         XP


        WTF?
We are uncovering better ways of developing
       software by doing it and helping others do it.
        Through this wor...
“        I believe that the hardest part of
     software projects, the most common
                source of project fail...
Conceptualization

•Identify the problem
• Brainstorm on solutions
• Sketch Ideas
Identify Who Cares
New Hampshire Rubyists Want Us to Build Them A Site...




               Who should we talk to?
http://www.flickr.com/photos/spine/263214639/




 Listen,
then Ask
Why?
“I want a calendar”
• “...Why?”
• “So our users can stay up to date”
• “What do they want to be up to date
  about?”
• “Ou...
Why?

 Why?

 Why?

 Why?



Why?
Challenge
http://threetreesstudios.com/andscifi/tag/star-wars/




Brainstorming
Brainstorming Fundamentals

• There are no dumb ideas
• Don’t criticize other people’s ideas
• Build on other people’s ide...
Affinity Grouping
Mind Maps
It’s about brain power...
Courtesy: Jason Robb




Sketching
Failure In Design
Design With Constraints
More on Sketching...
Words Matter...
             http://www.flickr.com/photos/peterwalshprojects/




Maintain a Glossary
Words Matter...

              http://www.flickr.com/photos/enovember/3471675615/




Tell An Illustrated Story
User Stories
What’s a user story?
• indicates the person who is seeking some
  type of value from the software
• describes functionalit...
User Stories

    As a ...           In order to...
    I want to ...      As a...
    So that ...        I want to...


A...
User Stories
Independent
Negotiable
Valuable to users or customers
Estimatable
Small
Testable
Notice...
  Independent?
  Valuable?
  Small?

• Editing?
• Search?
• Deletion?
• Archiving?
• Permissions?
More on User Stories
Acceptance Tests
Convey Stakeholder Expectations

•   If I don’t enter a title or description, I should get
    an error and the job should...
User Stories +
  Acceptance Tests =
           Cucumber
Features



features/post_a_job.feature
Scenarios
Scenarios
Scenarios
Scenarios
You’re the developer...




Are we done yet?
Wait!




Valuable to the user or customer
Most Importantly,
  Assert Value
Steps
features/step_definitions/user_steps.rb




Then statements should have assertions
Lessons Learned

• AST Tables are no fun
• bmabey’s database_cleaner is awesome
• avoid sharing instance variables
• refac...
Lessons Learned
• AST Tables are no fun
• bmabey’s database_cleaner is awesome
• avoid sharing instance variables
• refact...
Track
Iterate
Don’t just be sorry.
             Think for a second!!!!
         Who broke the *#!?!#% build?




Continuous Integration
Don’t work in what you do
   Work on what you do
Learning
“ As the number of people on a project
increases, however, so does the number
      of communication paths. It doesn’t
   ...
Don’t Work With Bozos




   Love the ones you work with...
Love what you do...
Love what you do...
obsess about how to make it better
Thanks!!!

Twitter: dpickett
Site: www.enlightsolutions.com
IRC: #railsbridge on FreeNode
It's Not Just About Code
It's Not Just About Code
Upcoming SlideShare
Loading in …5
×

It's Not Just About Code

3,675 views

Published on

We spend so much time focusing on conventional programming. Everyone focuses on standards, code clarity, testing, and what gems to use. Let's chat about what's done before your fingers hit the keys. Let's talk about brainstorming, requirements, stakeholders, mock-ups, and writing solid user stories and acceptance tests with Cucumber. Every project has a story - how will your next one end?

Published in: Technology
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total views
3,675
On SlideShare
0
From Embeds
0
Number of Embeds
187
Actions
Shares
0
Downloads
69
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide
  • TODO: Tell a better story
    Better transitions
    Show cucumber file structure
    Re-enforce idea of solving problems
    Show examples of AST Tables
    Show tagging example
    Maybe show generation and running of features
    Tell more of a story around solving problems? Joe w/ Factory Girl, Aslak w/ Cuke, DHH w/ Rails, etc etc
  • It's Not Just About Code

    1. It’s not just about code... Dan Pickett
    2. It’s about efficacy in solving a problem
    3. Don’t Reinvent minutiae
    4. Don’t Reinvent minutiae Leverage Frameworks to solve problems
    5. Effectively Solve Problems With Frameworks: • Brainstorming • Conceptualization through Sketching and Design Constraints • Writing User Stories and Acceptance Tests with SCRUM and XP • Automated testing with RSpec and Cucumber • Refining processes and working with a team...
    6. CODE
    7. CODE Ok, well maybe a little code...
    8. Agile SCRUM XP
    9. Agile SCRUM XP WTF?
    10. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
    11. “ I believe that the hardest part of software projects, the most common source of project failure, is communication with the customers and users of that software ” - Martin Fowler
    12. Conceptualization •Identify the problem • Brainstorm on solutions • Sketch Ideas
    13. Identify Who Cares
    14. New Hampshire Rubyists Want Us to Build Them A Site... Who should we talk to?
    15. http://www.flickr.com/photos/spine/263214639/ Listen, then Ask
    16. Why?
    17. “I want a calendar” • “...Why?” • “So our users can stay up to date” • “What do they want to be up to date about?” • “Our events and other local tech events.” • “What other local events?”
    18. Why? Why? Why? Why? Why?
    19. Challenge
    20. http://threetreesstudios.com/andscifi/tag/star-wars/ Brainstorming
    21. Brainstorming Fundamentals • There are no dumb ideas • Don’t criticize other people’s ideas • Build on other people’s ideas • It’s about quantity, not quality • Have a facilitator that enforces rules above
    22. Affinity Grouping
    23. Mind Maps
    24. It’s about brain power...
    25. Courtesy: Jason Robb Sketching
    26. Failure In Design
    27. Design With Constraints
    28. More on Sketching...
    29. Words Matter... http://www.flickr.com/photos/peterwalshprojects/ Maintain a Glossary
    30. Words Matter... http://www.flickr.com/photos/enovember/3471675615/ Tell An Illustrated Story
    31. User Stories
    32. What’s a user story? • indicates the person who is seeking some type of value from the software • describes functionality that delivers that value • includes acceptance tests that verify the value is realized
    33. User Stories As a ... In order to... I want to ... As a... So that ... I want to... As a NH rubyist I want to post a job advertisement So that interested candidates can inquire
    34. User Stories Independent Negotiable Valuable to users or customers Estimatable Small Testable
    35. Notice... Independent? Valuable? Small? • Editing? • Search? • Deletion? • Archiving? • Permissions?
    36. More on User Stories
    37. Acceptance Tests
    38. Convey Stakeholder Expectations • If I don’t enter a title or description, I should get an error and the job should not be posted • I should get a success message when I’ve entered everything properly • The listing should be publicly viewable upon successful posting • A job should display a title and description • I must be logged in to create a new job
    39. User Stories + Acceptance Tests = Cucumber
    40. Features features/post_a_job.feature
    41. Scenarios
    42. Scenarios
    43. Scenarios
    44. Scenarios
    45. You’re the developer... Are we done yet?
    46. Wait! Valuable to the user or customer
    47. Most Importantly, Assert Value
    48. Steps features/step_definitions/user_steps.rb Then statements should have assertions
    49. Lessons Learned • AST Tables are no fun • bmabey’s database_cleaner is awesome • avoid sharing instance variables • refactoring steps proves difficult • slow
    50. Lessons Learned • AST Tables are no fun • bmabey’s database_cleaner is awesome • avoid sharing instance variables • refactoring steps proves difficult • slow
    51. Track
    52. Iterate
    53. Don’t just be sorry. Think for a second!!!! Who broke the *#!?!#% build? Continuous Integration
    54. Don’t work in what you do Work on what you do
    55. Learning
    56. “ As the number of people on a project increases, however, so does the number of communication paths. It doesn’t increase additively, as the number of people increases, it increases multiplicatively, proportional to the square of the number of people. ” - Steve McConnell
    57. Don’t Work With Bozos Love the ones you work with...
    58. Love what you do...
    59. Love what you do... obsess about how to make it better
    60. Thanks!!! Twitter: dpickett Site: www.enlightsolutions.com IRC: #railsbridge on FreeNode

    ×