SzFMV
SzFMV
Clean Code
Self Documenting - No comments
Guidline - style
Naming
Variables
Why?
Function
Short functions
Does one thing
Scope
Functions - 1/scope
Variables - Scope
Communication - understanding what it does
Refactoring
Boy scout mantra
Code Smells
Long function
Too many parameters
God Class
Boolean parameter
Magic number
Circular dependency
Too complex
Review
QA should find nothing
Increases understandability
What?
Requirement
Architecture
Design
Work events
Code
Everything
Work Product - not te developer
Why?
Avoid errors
Levels
Formal
Traceble
Documented
Rule based
Dedicated roles
Minute taker
Expert
Moderator
Type
Walkthrough
Inspection
Technical
Informal
Over the shoulder
Pair programming
Finding
Severe - must be changed
Suggestion - may be changed
Question - wtf?
Action
Ignore
Fix
Answer
Explain
Promote
Debug ducky
Who?
Anyone who's competent in the topic
Arhitecture
Legacy Code
SOLID
Design Principles
Singe Responsibility
Open-Closed
Liskov's Substition
Interface Segregation
Dependency Inversion
Code without tests
Gets better or worse?
Sprout (method, class)
Avoid, rewrite
Legacy Code Dilemma
Cant change the code without adding tests
Have to change the code to add tests
Seams
Object Seam
Linker Seam
Preprocessor
Change the behavior without changing the code
Reason of change
Perfomance
Optimization
Functionality
Bugfix
New Feature
Structure
Refactoring
Overestimation
Get the opportunity to reverse legacy
Continous Integration
Interrupt
Losing hours of work
Workload reduction
Work automation
Structure
Version Tracking
Best practices
Synchronize often
Small changes
Merge often
Independent tasks
Continous Integration Server
Automatic Build
Jobs/Pipeline
Automatic Integration
Automatic Test
Automatic Release
Automatic Deploy
Feedback to stakeholders
Trigger
Nightly Build - time based
On push
Manual trigger
Pull request
Devops
Developers
Operations
Integration Strategy
Big-Bang
Risky-Hardest
Bottom-up
Top-down
Levels
Unit
Integration
Feature
System
Acceptance
Manual
Test Driven Development
SW Unit
Function
Class
Module
Test Suite
Test Case
Test
Single Assert
Logical, not semantical
Fast as hell (ms fast)
Effectiveness
Flow
AAA(A) Rule
Arrange
Set up system under test
Dependencies
Mocking
Database
Hardware
Mock object
Dummy
Stub
Fake
Mock
Spy
Act
Do the needful
Assert
Expected vs Actual
Single Assert
(Annihilate)
Free resource
Red->Green->Refactor
Write a failing
Make the pass
Code Golf
As little code as possible
Refactoring
Fastest feedback
Safety net
Getting stuck
Transformation Priorities
Done - potato mantra
Agile
SCRUM
Roles
Scrum Master
Developer Representative
Impediment handler
Facilitator
Ensures calm and uninterrupted working
Product Owner
Customer Representative
Creates PB
Prioritizes PB
Developer
Team
Self-organizing
Cross-functional
Epic
User Story
Task
Events
Sprint Planning
Daily Standup
3 questions
TimeBox
Always on the same time and at the same place
Standing up
Backlog Grooming
Refinimenet of User Story DoD
SMART goals
Specific
Measureable
Assigned
Realistic
Time-boxed
Effort estimation
Retrospective
Demo
Sprint Review
Artifacts
Sprint Backlog
Product Backlog
Spring Goal
Definition of Done
Burndown Chart
Board
Kanban
Continous (Not iterative)
No roles, no events
Board necessary - pcik top right task
Culture/Mindset
Agile Manifesto
Agile Principles
Iterative
Change handling
Waterfall/V-Model
Business Value