Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to plan a feature (short version)

How to plan a feature (short version)

Radoslav Stankov

July 06, 2023
Tweet

More Decks by Radoslav Stankov

Other Decks in Technology

Transcript

  1. ( Draw state/flow we want to achieve ) Draw current

    state/flow * Database structure ➡ What we need todo (plan) % Drawing
  2. , Tools Excalidraw - great for single player Whimsical -

    great for collaboration
 
 PlantUML - great for documentation Figma - for UI collaboration with designer Miro/FigJam - for group brainstorming ... use whatever works for you -
  3. Feature: Stacking on product page product page (not in stack)

    -> do you use -> yes -> review
 product page (not in stack) -> do you use -> no -> search (alternative) -> review 
 product page (in stack) -> still using? -> yes -> ask for tip -> add tip
 product page (in stack) -> still using? -> no -> search (alternative) -> review . Showcase 1 (end to end test scenarios)
  4. @startuml "Browser" -> "Cloudflare": HTTPS Request "Cloudflare" -> "AWS ELB":

    HTTPS Request "AWS ELB" -> "Frontend (AWS ECS)": HTTPS Request "Frontend (AWS ECS)" -> "Backend (AWS ECS)": GraphQL Request "Backend (AWS ECS)" -> "Redis (Rediscloud)": Cache Query "Backend (AWS ECS)" -> "Database (AWS RDS Aurora)": SQL Query "Backend (AWS ECS)" --> "Frontend (AWS ECS)": JSON Response "Frontend (AWS ECS)" --> "Browser": HTML Response @enduml PlantUML https://www.plantuml.com/
  5. ( Explain the problem to someone (vocal or in writing)

    ) Why something won't work / While doing this ideas will come / Explain the problem
  6. ( Create empty file on Desktop ) Write quick &

    dirty code in empty file * Imagine a perfect world for this code 0 Delete file # If solution is 1 ➡ think of something else ➡ If solution is ✅ ➡ use ideas in project ✍ Code Sketch
  7. 4 ...but “Why don't you use paper? ... I like

    using paper” “I can't draw, I don't have the skills.”
  8. 4 ...but “Why don't you use paper? ... I like

    using paper” “I can't draw, I don't have the skills.” 5 Paper is too small, I want infinite canvas 6 Paper is permanent, I want to re-arrange, update 7 I want to share with multiple people and collaborate
  9. 4 ...but “Why don't you use paper? ... I like

    using paper” “I can't draw, I don't have the skills.” If paper works for you ... amazing, keep using it 8
  10. 4 ...but “Why don't you use paper? ... I like

    using paper” “I can't draw, I don't have the skills.” I couldn't too, it took me 6~8 months to get good with Excalidraw ... I'm still improving. 9
  11. 4 ...but “Why don't you use paper? ... I like

    using paper” “I can't draw, I don't have the skills.”
  12. “A task aimed at answering a question or gathering information,

    rather than at producing shippable product. Sometimes we can't estimate until the development team does some actual work to resolve a technical question or a design problem.” - WikipediA Spike (software development)
  13. “A task aimed at answering a question or gathering information,

    rather than at producing shippable product. Sometimes we can't estimate until the development team does some actual work to resolve a technical question or a design problem.” - WikipediA Spike (software development)
  14. : Define scope and time-box ( Write quick & dirty

    code in a Pull Request ) Review the solution * Close Pull Request without merging # If solution is 1 ➡ Discuss new solution ➡ If solution is ✅ ➡ Open new Pull Request & Spike
  15. “The goal of a "spike" is to help you draw

    a map of how to implement a solution with confidence, not to implement a solution.” - Rado
  16. “The best feature of a "spike" is that it is

    a safe way to say this approach doesn't work.” - Rado
  17. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?”
  18. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?” Don't do it for every feature. Do it when you are not confident how to solve a problem. ;
  19. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?” Because of "Tunnel vision" and "sunk cost fallacy" ;
  20. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?” Because it is usually a mess. I don't delete it, I just copy parts I need into a clean new PR ;
  21. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?” Kinda - yes. The difference is in how big it is, who is meant for team or external, and do we ship it in production. -
  22. 4 ...but “We can't do a "spike" for every feature.

    It will waste too much time.” “You don't need a "spike" to show that your solution isn't good.” “Why do you need to throw away the code?” “Isn't this a Prototype, MVP, PoC?”