SOFTWARE
ARCHITECTURE
POINTS TO CONSIDER WHEN DESIGNING A SOFTWARE
Foyzul Karim
OVERVIEW
• Scope
• Budget
• Time
• Plan
PROJECT
SCOPE
• Requirement analysis
• Project management
• Language selection
• Database selection
• Design principles identification
• SOLID
• DRY
• KISS
• YAGNI
• Design patterns identification
• State
• Strategy
• Repository
• Factory
PROJECT
SCOPE
• Project architecture
• Monolith
• Microservice
• Micro frontends
• Serverless
• Domain driven
• Test strategy
• Unit test
• Integration test
• Acceptance test
• Security test
PRODUCTIO
N SCOPE
• Infrastructure
• VPS
• Cloud
• Self managed
• Cloud managed
• Deployment
• Continuous integration
• Self managed (Jenkins etc.)
• GitHub, Azure DevOps
• Continuous delivery
• Self managed (GoCD etc.)
• BuildKite
PRODUCTIO
N SCOPE
• Scaling
• Horizontal
• Vertical
• Load balancing
• Security
• OAuth
• JWT
• Session
• Auth0/Okta/Cognito/AD
• Monitoring
• Azure AppInsight, AWS CloudWatch
• Datadog
• ELK
PROJECT SCOPE
SDLC, PROJECT MANAGEMENT METHODOLOGIES AND
CAREER IN PRODUCT MANAGEMENT
METHODOLOGIE
S
• Waterfall
• Agile
• Scrum
• Kanban
SCRUM
CEREMONIES
(WE
FOLLOW)
• Backlog grooming
• Sprint planning
• Daily standup
• Sprint demo
• Sprint ticket review
• Retrospective
KANBAN
CEREMONIES
(WE
FOLLOWED)
• Backlog grooming
• Backlog estimation
• Daily standup
• Biweekly demo
• Retrospective
CAREER IN
PROJECT
MANAGEME
NT
• How is software made anyway?
• Requirement  communication and
brainstorming
• Development  heavily depends on coding
• Release  heavily depends on DevOps
• Support  communication
• Salary
• Learning path
• Project Management Professional (PMP)
• Certified Associate in Project Management
(CAPM)
• Certified ScrumMaster (CSM)
• Professional Scrum Master (PSM I)
PRODUCT
MANAGER
(WHAT I
SAW)
• Collaborate with other stakeholders
(Analytics team, Sales, Marketing,
CX)
• Understand everything about the
product
• Imagine the feature and its impact
• Collaborate with the developers to
find out better solution / UX
• Knows SQL
DEVELOPMENT
& DEPLOYMENT
LANGUAGE,
DATABASE,
ARCHITECTURE,
DEVELOPMENT,
TESTING ETC.
THE HOLY
WAR OF …
• Which language is the best?
• Which framework is the best?
• Which database is the best?
• Which library is the best?
BEST
ANSWER
ONE COULD
GET IS …
• It depends
• Company
• Project
• Team
• Budget
• Maintenance
STOP
FIGHTING
• The decision is made by the
top management, not the developer
LET’S
DISCUSS
• Language selection
• JavaScript
• Python
• PHP
• C# / Java
• Database selection
• MySQL
• SQL Server
• MongoDB
• Postgres
• Design principles
identification
• SOLID
• DRY
• KISS
• YAGNI
• Design patterns identification
• State
• Strategy
• Repository
• Factory
• Project architecture
• Monolith
• Microservice
• Micro frontends
• Serverless
• Domain driven
• Test strategy
• Unit test
• Integration test
• Acceptance test
• Security test
• UI Test (cypress)
LET’S
DISCUSS
• Infrastructure
• VPS
• Cloud
• Self managed
• Cloud managed
• Deployment
• Continuous integration
• Self managed (Jenkins
etc.)
• GitHub, Azure
DevOps
• Continuous delivery
• Self managed (GoCD
etc.)
• BuildKite
• Scaling
• Horizontal
• Vertical
• Load balancing
• Security
• OAuth
• JWT
• Session
• Auth0/Okta/Cognito/AD
• Monitoring
• Azure AppInsight, AWS
CloudWatch
• Datadog
• ELK

Software architecture : From project management to deployment

Editor's Notes

  • #9 https://www.atlassian.com/agile/manifesto