SlideShare a Scribd company logo
1 of 23
Do you want to code?
Lets Get Started
Jane Prusakova
@jprusakova
Green field development
• No prior system to fit into
• Define technology stack
• "File –> New Project/Solution"
Blank page is intimidating
Agile way: just start coding
• Decide what is the
most valuable thing to
build
•Write code
Before coding
• SCM repo
• Build process
• Deployment platform
• Test framework
•Write a test
•… then start coding
https://www.flickr.com/photos/eltpics @2013
But where do I start?
• Documentation
• Code examples
• Tutorials
• Frameworks
MVC application
Tutorial from CodeProject
Java with Hibernate
Tutorial from JavaTPoint
Android app
Article on AndroidAuthority
It works!
Something new and great
• Focus on functionality
• Refactor to achieve architecture
• Iterate
What to implement first?
YES
• Visible
• Important
• As small as possible
NO
• Inner layer
• First step of the flow
• Cross-functional concern
How much to implement?
• Production-quality code
• Automated tests
• Refactor
Iterate
• Build several useful features
• Refactor to reflect learning
• Notice patterns that apply
• Refactor to patterns if applicable
• Test everything continuously
But where is the flow?
• Developers are notoriously bad at
inventing user flow
• Less defined flow makes for better
usability
• Leave every path open
Linear vs Hub & spoke
Home
Pick a
product
Select
features
Retrieve
price
Select
quantity
Checkout
Home
Pick a
product
Select
features
Retrieve
price
Select
quantity
Checkout
Only one action is possible from every point. Any action is possible at any point.
Linear vs Hub & spoke
State
• Transition
• Context
Transition
• Action
• FromState
• ToState
State • Context
Transition • Action
Structured flow Open flow
• Houston Ballet
season subscription
1. Pick a package
2. Select day
3. Select performances
4. Review dates
5. Review seating prices
6. Select seating
7. Add to cart
Ah… so what do I code first?
• Implement a valid state
• Implement another valid state
• Implement transition
Valid options
 Nothing selected
Product selected
Product & term selected
Product Subscription
Term
Test scenarios
• Valid states exist
• Invalid states cannot exist
• Transitions out of valid states
• Transitions to valid states
• All valid states can be reached by
transition
Next steps
Add functionality
• Add states
• Add transitions
• Build additional linear paths
• Login
• Checkout
• Etc..
Invest in quality
• Refactor design
• Merge and split states
• Design additional paths
• Refactor code
• To fit the design
Do you want to code?
Lets Get Started
Jane Prusakova
@jprusakova

More Related Content

What's hot

Kanban like another approach for gaming projects, Катерина Гаськова
Kanban like another approach for gaming projects, Катерина ГаськоваKanban like another approach for gaming projects, Катерина Гаськова
Kanban like another approach for gaming projects, Катерина ГаськоваSigma Software
 
Automation pyramid within CI process
Automation pyramid within CI processAutomation pyramid within CI process
Automation pyramid within CI processUP2IT
 
Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous deliveryAviran Mordo
 
Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Paul Hacker
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesYevhen Shyshkin
 
Best Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentBest Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentApplause
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hellYun Ki Lee
 
Hacker News Meetup April 2014
Hacker News Meetup April 2014Hacker News Meetup April 2014
Hacker News Meetup April 2014Dan Quine
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingASIT Education
 
Automated Testing with Logic Apps and Specflow
Automated Testing with Logic Apps and SpecflowAutomated Testing with Logic Apps and Specflow
Automated Testing with Logic Apps and SpecflowBizTalk360
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоSigma Software
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-levelLars Thorup
 
1x10 - QA Engineer Role in JIRA
1x10 - QA Engineer Role in JIRA1x10 - QA Engineer Role in JIRA
1x10 - QA Engineer Role in JIRAmkujalowicz
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​HTC
 
Responsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design SystemResponsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design SystemKeir Bowden
 
Intelligent Testing with mabl
Intelligent Testing with mablIntelligent Testing with mabl
Intelligent Testing with mablmabl
 
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецAgile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецSigma Software
 
Addressing the elephant through persistence and perseverance
Addressing the elephant through persistence and perseveranceAddressing the elephant through persistence and perseverance
Addressing the elephant through persistence and perseveranceRanjeet Pethe
 

What's hot (20)

Benefits from AATs
Benefits from AATsBenefits from AATs
Benefits from AATs
 
Kanban like another approach for gaming projects, Катерина Гаськова
Kanban like another approach for gaming projects, Катерина ГаськоваKanban like another approach for gaming projects, Катерина Гаськова
Kanban like another approach for gaming projects, Катерина Гаськова
 
Automation pyramid within CI process
Automation pyramid within CI processAutomation pyramid within CI process
Automation pyramid within CI process
 
Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous delivery
 
Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Best Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentBest Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left Commitment
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hell
 
Hacker News Meetup April 2014
Hacker News Meetup April 2014Hacker News Meetup April 2014
Hacker News Meetup April 2014
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Automated Testing with Logic Apps and Specflow
Automated Testing with Logic Apps and SpecflowAutomated Testing with Logic Apps and Specflow
Automated Testing with Logic Apps and Specflow
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон Мужайло
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
 
1x10 - QA Engineer Role in JIRA
1x10 - QA Engineer Role in JIRA1x10 - QA Engineer Role in JIRA
1x10 - QA Engineer Role in JIRA
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​
 
Responsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design SystemResponsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design System
 
Intelligent Testing with mabl
Intelligent Testing with mablIntelligent Testing with mabl
Intelligent Testing with mabl
 
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецAgile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
 
Addressing the elephant through persistence and perseverance
Addressing the elephant through persistence and perseveranceAddressing the elephant through persistence and perseverance
Addressing the elephant through persistence and perseverance
 

Similar to Just startcoding

Thoughts on building software architecture
Thoughts on building software architectureThoughts on building software architecture
Thoughts on building software architectureJane Prusakova
 
Software architecture houstontechfest2020
Software architecture houstontechfest2020Software architecture houstontechfest2020
Software architecture houstontechfest2020Jane Prusakova
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comAviran Mordo
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?Vincent Biret
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testingDuy Tan Geek
 
Introduction to Testing and TDD
Introduction to Testing and TDDIntroduction to Testing and TDD
Introduction to Testing and TDDSarah Dutkiewicz
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdfSpiritsoftsTraining
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentSarah Dutkiewicz
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Dinis Cruz
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingNeotys_Partner
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentBill Ayers
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 
VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)Rob Hale
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDavide Benvegnù
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic applicationTaras Matyashovsky
 
How to Go Codeless for Automated Mobile App Testing
How to Go Codeless for Automated Mobile App TestingHow to Go Codeless for Automated Mobile App Testing
How to Go Codeless for Automated Mobile App TestingApplause
 

Similar to Just startcoding (20)

Thoughts on building software architecture
Thoughts on building software architectureThoughts on building software architecture
Thoughts on building software architecture
 
Software architecture houstontechfest2020
Software architecture houstontechfest2020Software architecture houstontechfest2020
Software architecture houstontechfest2020
 
Just start coding
Just start codingJust start coding
Just start coding
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testing
 
Introduction to Testing and TDD
Introduction to Testing and TDDIntroduction to Testing and TDD
Introduction to Testing and TDD
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdf
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 
VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)VT.NET 20160411: An Intro to Test Driven Development (TDD)
VT.NET 20160411: An Intro to Test Driven Development (TDD)
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
 
How to Go Codeless for Automated Mobile App Testing
How to Go Codeless for Automated Mobile App TestingHow to Go Codeless for Automated Mobile App Testing
How to Go Codeless for Automated Mobile App Testing
 
Key alias dev standard final
Key alias   dev standard finalKey alias   dev standard final
Key alias dev standard final
 

More from Jane Prusakova

Estimating software development
Estimating software developmentEstimating software development
Estimating software developmentJane Prusakova
 
Improving IT Performance
Improving IT PerformanceImproving IT Performance
Improving IT PerformanceJane Prusakova
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentJane Prusakova
 
Questions of Ethics in Software Development
Questions of Ethics in Software DevelopmentQuestions of Ethics in Software Development
Questions of Ethics in Software DevelopmentJane Prusakova
 
Managing remote teams.
Managing remote teams.Managing remote teams.
Managing remote teams.Jane Prusakova
 
Gender-neutral Recruiting
Gender-neutral RecruitingGender-neutral Recruiting
Gender-neutral RecruitingJane Prusakova
 
Privacy In The Digital Age
Privacy In The Digital AgePrivacy In The Digital Age
Privacy In The Digital AgeJane Prusakova
 
Interview: a Learning Conversation
Interview: a Learning ConversationInterview: a Learning Conversation
Interview: a Learning ConversationJane Prusakova
 
Lets talk about good code
Lets talk about good codeLets talk about good code
Lets talk about good codeJane Prusakova
 
Motivating Knowledge Workers
Motivating Knowledge WorkersMotivating Knowledge Workers
Motivating Knowledge WorkersJane Prusakova
 
Pragmatic Agile: distributed teams
Pragmatic Agile: distributed teamsPragmatic Agile: distributed teams
Pragmatic Agile: distributed teamsJane Prusakova
 
A case for remote teams
A case for remote teamsA case for remote teams
A case for remote teamsJane Prusakova
 
Lets talk About Good Code (Dallas TechFest 2014)
Lets talk About Good Code (Dallas TechFest 2014)Lets talk About Good Code (Dallas TechFest 2014)
Lets talk About Good Code (Dallas TechFest 2014)Jane Prusakova
 
Women in Technology. Things that hold women back.
Women in Technology. Things that hold women back. Women in Technology. Things that hold women back.
Women in Technology. Things that hold women back. Jane Prusakova
 
Building great teams: the power of a nudge.
Building great teams: the power of a nudge.  Building great teams: the power of a nudge.
Building great teams: the power of a nudge. Jane Prusakova
 

More from Jane Prusakova (20)

Estimating software development
Estimating software developmentEstimating software development
Estimating software development
 
Better remote teams
Better remote teamsBetter remote teams
Better remote teams
 
Improving IT Performance
Improving IT PerformanceImproving IT Performance
Improving IT Performance
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Questions of Ethics in Software Development
Questions of Ethics in Software DevelopmentQuestions of Ethics in Software Development
Questions of Ethics in Software Development
 
Good code
Good codeGood code
Good code
 
Managing remote teams.
Managing remote teams.Managing remote teams.
Managing remote teams.
 
Gender-neutral Recruiting
Gender-neutral RecruitingGender-neutral Recruiting
Gender-neutral Recruiting
 
Privacy In The Digital Age
Privacy In The Digital AgePrivacy In The Digital Age
Privacy In The Digital Age
 
Interview: a Learning Conversation
Interview: a Learning ConversationInterview: a Learning Conversation
Interview: a Learning Conversation
 
Effective Code Review
Effective Code ReviewEffective Code Review
Effective Code Review
 
Effective Code Review
Effective Code ReviewEffective Code Review
Effective Code Review
 
Lets talk about good code
Lets talk about good codeLets talk about good code
Lets talk about good code
 
Motivating Knowledge Workers
Motivating Knowledge WorkersMotivating Knowledge Workers
Motivating Knowledge Workers
 
What is good code?
What is good code?What is good code?
What is good code?
 
Pragmatic Agile: distributed teams
Pragmatic Agile: distributed teamsPragmatic Agile: distributed teams
Pragmatic Agile: distributed teams
 
A case for remote teams
A case for remote teamsA case for remote teams
A case for remote teams
 
Lets talk About Good Code (Dallas TechFest 2014)
Lets talk About Good Code (Dallas TechFest 2014)Lets talk About Good Code (Dallas TechFest 2014)
Lets talk About Good Code (Dallas TechFest 2014)
 
Women in Technology. Things that hold women back.
Women in Technology. Things that hold women back. Women in Technology. Things that hold women back.
Women in Technology. Things that hold women back.
 
Building great teams: the power of a nudge.
Building great teams: the power of a nudge.  Building great teams: the power of a nudge.
Building great teams: the power of a nudge.
 

Recently uploaded

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Just startcoding

  • 1. Do you want to code? Lets Get Started Jane Prusakova @jprusakova
  • 2. Green field development • No prior system to fit into • Define technology stack • "File –> New Project/Solution"
  • 3. Blank page is intimidating
  • 4. Agile way: just start coding • Decide what is the most valuable thing to build •Write code
  • 5. Before coding • SCM repo • Build process • Deployment platform • Test framework •Write a test •… then start coding
  • 7. But where do I start? • Documentation • Code examples • Tutorials • Frameworks
  • 10. Android app Article on AndroidAuthority
  • 12. Something new and great • Focus on functionality • Refactor to achieve architecture • Iterate
  • 13. What to implement first? YES • Visible • Important • As small as possible NO • Inner layer • First step of the flow • Cross-functional concern
  • 14. How much to implement? • Production-quality code • Automated tests • Refactor
  • 15. Iterate • Build several useful features • Refactor to reflect learning • Notice patterns that apply • Refactor to patterns if applicable • Test everything continuously
  • 16. But where is the flow? • Developers are notoriously bad at inventing user flow • Less defined flow makes for better usability • Leave every path open
  • 17. Linear vs Hub & spoke Home Pick a product Select features Retrieve price Select quantity Checkout Home Pick a product Select features Retrieve price Select quantity Checkout Only one action is possible from every point. Any action is possible at any point.
  • 18. Linear vs Hub & spoke State • Transition • Context Transition • Action • FromState • ToState State • Context Transition • Action
  • 19. Structured flow Open flow • Houston Ballet season subscription 1. Pick a package 2. Select day 3. Select performances 4. Review dates 5. Review seating prices 6. Select seating 7. Add to cart
  • 20. Ah… so what do I code first? • Implement a valid state • Implement another valid state • Implement transition Valid options  Nothing selected Product selected Product & term selected Product Subscription Term
  • 21. Test scenarios • Valid states exist • Invalid states cannot exist • Transitions out of valid states • Transitions to valid states • All valid states can be reached by transition
  • 22. Next steps Add functionality • Add states • Add transitions • Build additional linear paths • Login • Checkout • Etc.. Invest in quality • Refactor design • Merge and split states • Design additional paths • Refactor code • To fit the design
  • 23. Do you want to code? Lets Get Started Jane Prusakova @jprusakova