SlideShare a Scribd company logo
Replace Me!
(Bisa ditambahkan dengan image yang relevan)
Tetap Agile dengan Arsitektur
Monolith?
Ziya El Arief - Product Engineer Dicoding Indonesia
Marty Cagan At Hewlett-Packard
● 1980 was an engineer in HP
● One of the industry's best
technology companies
● They work hard for delivering one
great product
● What can be wrong?
Just one problem…..
Just one problem: No one bought it.
Lessons from Marty Cagan
● At least, half of our ideas are just not going to work.
● It typically takes several iterations to get the implementation of this idea to
the point where it delivers the necessary business value.
Agile
Agile is an iterative approach to project management and software development
that helps teams deliver value to their customers faster and with fewer
headaches. Instead of betting everything on a "big bang" launch, an agile team
delivers work in small, but consumable, increments. Requirements, plans, and
results are evaluated continuously so teams have a natural mechanism for
responding to change quickly.
https://www.atlassian.com/agile
Agile
Agile is an iterative approach to project management and software
development that helps teams deliver value to their customers faster and with
fewer headaches. Instead of betting everything on a "big bang" launch, an agile
team delivers work in small, but consumable, increments. Requirements, plans,
and results are evaluated continuously so teams have a natural mechanism for
responding to change quickly.
https://www.atlassian.com/agile
Ga cukup SDLC aja yang Agile,
Software Development juga harus
Agile.
Small App
Bigger App
Small App
Agile With Microservices
● Loosely Coupled
● Less Headache
● Iterate Faster
● etc.
Dicoding
● Small team, 7 Engineers
● A Big Application
○ 42++ Domains
○ 657++ Actions / Controllers
○ 400k++ users
Monolith
● Simple Deployment
● Simple Refactoring
● Simple Transaction
Monolith
But if we are not careful, this can happens
How to avoid this?
Introducing the Majestic Monolith
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
Monolith
Modules
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
Layered Architecture
Layered Architecture
Bounded Context
Can be fatty
Tightly Coupled
Multiple Reasons To
Change
Conflict Alert
Bounded Context
Single Responsibility
Duplication Problem
DRY Principle
Coding Fun Fact:
Reading VS Writing
80 : 20
Coding Fun Fact:
Reading VS Writing
Lets Optimize This 🔥
80 : 20
Coding Fun Fact:
Reading VS Writing
Demo Time!
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
Code Responsibly!
Developers, when change something
in their code
Make Changes Without Worry with
TDD
TDD
1. Create Acceptance Scenario
a. Specify Positive Flow
b. Specify Negative Flow
2. Create a test for the first negative case
3. Run test
4. Fail
5. Solve test until success
6. Move to the next test
7. If All negative cases have done, move to the positive cases
Why TDD not DDT ?
● Memaksa kita untuk membuat object yang mudah diuji
● Focus solving one problem at a time
● More empathy to business rules
● Fail Fast
Summary
● Karena perubahan itu adalah suatu hal yang pasti maka kode kita harus bisa
responsif terhadap perubahan.
● Majestic Monolith menggabungkan kesederhanaan monolit dengan struktur
dan fokus dari microservices.
● Prinsip-prinsip Clean Code dapat membantu kita untuk membangun software
dengan lebih cepat.
● TDD membantu kita untuk lebih tenang ketika melakukan perubahan
sehingga kita bisa tidur lebih nyenyak dan hidup lebih sehat.
References
● Inspired by Marty Cagan
● Domain Driven Development by Chris Evans
● Clean Code by Robert Cecil Martin
● The Majestic Monolith by David Heinemeier Hansson
● Majestic Modular Monoliths by Axel Fontaine
● https://www.artstation.com/artwork/nQoNAK
● https://thestorybookstore.com/wp-content/uploads/2019/12/Inspired-How-to-Create-Tech
-Products-Customers-Love-Marty-Cagan.jpg
● https://lukashajdu.com/img/majestic-modular-monolith/monolith-percaption.png
Thanks :)
LinkedIn: linkedin.com/in/ziyaelarief/
Email: ziya@dicoding.com

More Related Content

PPTX
Moving to microservices from idea to production - GitLabJP meetup
PDF
QA Automation - Agile Engineering
PDF
Comparison Between React & Angular JS Frameworks
PPTX
The StartUp Agency - A Case Study on CFPB
PPTX
Agile Metrics Meetup: What to Measure and How?
PPTX
DevOps game marshmallow challenge
PPTX
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Moving to microservices from idea to production - GitLabJP meetup
QA Automation - Agile Engineering
Comparison Between React & Angular JS Frameworks
The StartUp Agency - A Case Study on CFPB
Agile Metrics Meetup: What to Measure and How?
DevOps game marshmallow challenge
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action

What's hot (20)

PPTX
DevOpsGuys Performance Testing with APM Tools workshop
PPTX
Devopsguys DevOps 101 for recruiters
PPTX
BDD - Collaboration & Hands-on practices
PDF
Enterprise UI/UX - design as code
PPTX
DevOps make teamwork great.
ODP
Agileee 2012
PPTX
The What and Why of DevOps - DevOps Cardiff - May 2014
PPTX
01 why of dev ops - devopsguys - magentys - final
PDF
From Monolith to Microservices - What Could Go Wrong?
PPTX
With Great Power comes Great Responsibilities
PPTX
DevOps - Understanding Core Concepts
PDF
What is Scrum? An Introduction to the Scrum Framework
PPTX
The benefits of using an APM solution while performance testing
PDF
Continuous delivery with Spring Cloud Pipelines Case Study
PPTX
Sony lazuardi native mobile app with javascript
PDF
Muhammad azamuddin introduction-to-reactjs
PDF
Optimizing developer onboarding
PDF
The art of not being too good at the Marshmallow test
PDF
Continuous Delivery e-book
PDF
Salesforce DevOps: Where Do You Start?
DevOpsGuys Performance Testing with APM Tools workshop
Devopsguys DevOps 101 for recruiters
BDD - Collaboration & Hands-on practices
Enterprise UI/UX - design as code
DevOps make teamwork great.
Agileee 2012
The What and Why of DevOps - DevOps Cardiff - May 2014
01 why of dev ops - devopsguys - magentys - final
From Monolith to Microservices - What Could Go Wrong?
With Great Power comes Great Responsibilities
DevOps - Understanding Core Concepts
What is Scrum? An Introduction to the Scrum Framework
The benefits of using an APM solution while performance testing
Continuous delivery with Spring Cloud Pipelines Case Study
Sony lazuardi native mobile app with javascript
Muhammad azamuddin introduction-to-reactjs
Optimizing developer onboarding
The art of not being too good at the Marshmallow test
Continuous Delivery e-book
Salesforce DevOps: Where Do You Start?
Ad

Similar to Tetap Agile dengan Arsitektur Monolith - Ziya El Arief (20)

PDF
Devops, Secops, Opsec, DevSec *ops *.* ?
PDF
Why Agile? Back to Basics.
PPTX
Post-Agile Methodologies and all that Jazz
PDF
Agile methods and dw mha
PDF
Beyond Agile Software
PPTX
Technical Debt.pptx
PPTX
Use Design Principle to Improve code quality
PDF
Agile & Test Driven Development: The Ampersand Commerce Approach
PDF
How BDD enables True CI/CD
PDF
Introduction to Agile
PPTX
Balancing the tension between Lean and Agile
PPTX
TDD in Agile
ODP
Devops, the future is here it's not evenly distributed yet
PDF
The quest of one-piece-flow in IT by Pierre Masai, Toyota Motor Europe
PDF
Lean en gros, c'est comme l'Agilité, sauf que... - Martin Goyette
PPTX
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net
PDF
Devops, the future is here, it's just not evenly distributed yet.
PDF
The Business Analysts Role in Agile Software Development
PDF
The BA role in Agile software development
PDF
How to Drive More Value From Innovation Initiatives
Devops, Secops, Opsec, DevSec *ops *.* ?
Why Agile? Back to Basics.
Post-Agile Methodologies and all that Jazz
Agile methods and dw mha
Beyond Agile Software
Technical Debt.pptx
Use Design Principle to Improve code quality
Agile & Test Driven Development: The Ampersand Commerce Approach
How BDD enables True CI/CD
Introduction to Agile
Balancing the tension between Lean and Agile
TDD in Agile
Devops, the future is here it's not evenly distributed yet
The quest of one-piece-flow in IT by Pierre Masai, Toyota Motor Europe
Lean en gros, c'est comme l'Agilité, sauf que... - Martin Goyette
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net
Devops, the future is here, it's just not evenly distributed yet.
The Business Analysts Role in Agile Software Development
The BA role in Agile software development
How to Drive More Value From Innovation Initiatives
Ad

More from DicodingEvent (20)

PDF
Developer Coaching #114.pdf
PDF
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
PPTX
tantangan menjadi developer di abad 21
PDF
Mengenalkan augmented reality (ar) pada snapchat
PDF
Membangun Aplikasi Serverless di Platfrom AWS
PDF
IDCamp X Madrasah: Pengenalan Computational Thinking
PDF
Membuat Produk Digital Terbaik ala Startup Unicorn
PDF
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PDF
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
PDF
Potensi karier menjadi ios developer di masa depan
PDF
Id camp x dicoding live : persiapan jadi software engineer hebat 101
PDF
Tips sukses berkarir sebagai developer dan programmer 2021
PPTX
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
PDF
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
PDF
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
PDF
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
PDF
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
PDF
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
PDF
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Developer Coaching #114.pdf
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
tantangan menjadi developer di abad 21
Mengenalkan augmented reality (ar) pada snapchat
Membangun Aplikasi Serverless di Platfrom AWS
IDCamp X Madrasah: Pengenalan Computational Thinking
Membuat Produk Digital Terbaik ala Startup Unicorn
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Potensi karier menjadi ios developer di masa depan
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Tips sukses berkarir sebagai developer dan programmer 2021
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...

Recently uploaded (20)

PPTX
Intro to ISO 9001 2015.pptx wareness raising
PPTX
Anesthesia and it's stage with mnemonic and images
PPTX
lesson6-211001025531lesson plan ppt.pptx
DOC
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
PPTX
Human Mind & its character Characteristics
PPTX
chapter8-180915055454bycuufucdghrwtrt.pptx
PPT
First Aid Training Presentation Slides.ppt
PPTX
Research Process - Research Methods course
PDF
Presentation1 [Autosaved].pdf diagnosiss
PPTX
NORMAN_RESEARCH_PRESENTATION.in education
PPTX
Impressionism_PostImpressionism_Presentation.pptx
PPTX
MERISTEMATIC TISSUES (MERISTEMS) PPT PUBLIC
PDF
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
PPTX
Lesson-7-Gas. -Exchange_074636.pptx
PPTX
The Effect of Human Resource Management Practice on Organizational Performanc...
PPTX
_ISO_Presentation_ISO 9001 and 45001.pptx
PPTX
Tour Presentation Educational Activity.pptx
PDF
natwest.pdf company description and business model
PPT
The Effect of Human Resource Management Practice on Organizational Performanc...
PPTX
Module_4_Updated_Presentation CORRUPTION AND GRAFT IN THE PHILIPPINES.pptx
Intro to ISO 9001 2015.pptx wareness raising
Anesthesia and it's stage with mnemonic and images
lesson6-211001025531lesson plan ppt.pptx
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
Human Mind & its character Characteristics
chapter8-180915055454bycuufucdghrwtrt.pptx
First Aid Training Presentation Slides.ppt
Research Process - Research Methods course
Presentation1 [Autosaved].pdf diagnosiss
NORMAN_RESEARCH_PRESENTATION.in education
Impressionism_PostImpressionism_Presentation.pptx
MERISTEMATIC TISSUES (MERISTEMS) PPT PUBLIC
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
Lesson-7-Gas. -Exchange_074636.pptx
The Effect of Human Resource Management Practice on Organizational Performanc...
_ISO_Presentation_ISO 9001 and 45001.pptx
Tour Presentation Educational Activity.pptx
natwest.pdf company description and business model
The Effect of Human Resource Management Practice on Organizational Performanc...
Module_4_Updated_Presentation CORRUPTION AND GRAFT IN THE PHILIPPINES.pptx

Tetap Agile dengan Arsitektur Monolith - Ziya El Arief

  • 1. Replace Me! (Bisa ditambahkan dengan image yang relevan) Tetap Agile dengan Arsitektur Monolith? Ziya El Arief - Product Engineer Dicoding Indonesia
  • 2. Marty Cagan At Hewlett-Packard ● 1980 was an engineer in HP ● One of the industry's best technology companies ● They work hard for delivering one great product ● What can be wrong?
  • 4. Just one problem: No one bought it.
  • 5. Lessons from Marty Cagan ● At least, half of our ideas are just not going to work. ● It typically takes several iterations to get the implementation of this idea to the point where it delivers the necessary business value.
  • 6. Agile Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly. https://www.atlassian.com/agile
  • 7. Agile Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly. https://www.atlassian.com/agile
  • 8. Ga cukup SDLC aja yang Agile, Software Development juga harus Agile.
  • 11. Agile With Microservices ● Loosely Coupled ● Less Headache ● Iterate Faster ● etc.
  • 12. Dicoding ● Small team, 7 Engineers ● A Big Application ○ 42++ Domains ○ 657++ Actions / Controllers ○ 400k++ users
  • 13. Monolith ● Simple Deployment ● Simple Refactoring ● Simple Transaction
  • 15. But if we are not careful, this can happens
  • 16. How to avoid this?
  • 24. Can be fatty Tightly Coupled Multiple Reasons To Change Conflict Alert Bounded Context
  • 29. 80 : 20 Coding Fun Fact: Reading VS Writing
  • 30. Lets Optimize This 🔥 80 : 20 Coding Fun Fact: Reading VS Writing
  • 34. Developers, when change something in their code
  • 35. Make Changes Without Worry with TDD
  • 36. TDD 1. Create Acceptance Scenario a. Specify Positive Flow b. Specify Negative Flow 2. Create a test for the first negative case 3. Run test 4. Fail 5. Solve test until success 6. Move to the next test 7. If All negative cases have done, move to the positive cases
  • 37. Why TDD not DDT ? ● Memaksa kita untuk membuat object yang mudah diuji ● Focus solving one problem at a time ● More empathy to business rules ● Fail Fast
  • 38. Summary ● Karena perubahan itu adalah suatu hal yang pasti maka kode kita harus bisa responsif terhadap perubahan. ● Majestic Monolith menggabungkan kesederhanaan monolit dengan struktur dan fokus dari microservices. ● Prinsip-prinsip Clean Code dapat membantu kita untuk membangun software dengan lebih cepat. ● TDD membantu kita untuk lebih tenang ketika melakukan perubahan sehingga kita bisa tidur lebih nyenyak dan hidup lebih sehat.
  • 39. References ● Inspired by Marty Cagan ● Domain Driven Development by Chris Evans ● Clean Code by Robert Cecil Martin ● The Majestic Monolith by David Heinemeier Hansson ● Majestic Modular Monoliths by Axel Fontaine ● https://www.artstation.com/artwork/nQoNAK ● https://thestorybookstore.com/wp-content/uploads/2019/12/Inspired-How-to-Create-Tech -Products-Customers-Love-Marty-Cagan.jpg ● https://lukashajdu.com/img/majestic-modular-monolith/monolith-percaption.png