SlideShare a Scribd company logo
1 of 13
Download to read offline
So#ware	Cra#smanship	
Workshop	
Bal$more	So+ware	Prac$ces	and	Pa2erns																																				November	29,	2017	
Camille	Bell	
cbell@CamilleBellConsul$ng.com	
Twi2er	@agilecamille	
www.slideshare.net/Camille_Bell
So/ware	Cra/smanship	
cbell@CamilleBellConsul$ng.com																																																																																																																																			2	
•  Tradi8onally	cra/smen	prac8ced	a	lot	
•  Tradi8onally	cra/smen	worked	under	masters,	
who	guided	them	in	their	cra/	
•  Doctors	s8ll	work	as	appren8ces	under	masters	in	
their	internships	and	residencies	
•  But	so/ware	developers	don't	have	a	tradi8on	of	
prac8ce	mastering	our	cra/	
•  Code	Dojos	where	we	prac8ce	TDD,	Refactoring	
and	Pairing	can	fill	this	gap
cbell@CamilleBellConsul$ng.com																																																																																																																																			3	
Test	Driven	Development	Ensures	Quality
Develop	in	Baby	Steps	
cbell@CamilleBellConsul$ng.com																																																																																																																																	4	
•  Write	a	8ny	test	
•  Watch	it	fail	
•  Write	only	enough	code	
to	make	it	pass	-	KISS	
•  Watch	it	pass	
•  If	the	code	gets	messy,	
refactor	in	baby	steps	
•  Repeat
3	Rules	of	Test	Driven	Development	
1.  You	are	not	allowed	to	write	any	produc8on	code	unless	
it	is	to	make	a	failing	unit	test	pass.	
2.  You	are	not	allowed	to	write	any	more	of	a	unit	test	than	
is	sufficient	to	fail;	and	compila8on	failures	are	failures.	
3.  You	are	not	allowed	to	write	any	more	produc8on	code	
than	is	sufficient	to	pass	the	one	failing	unit	test.	
With	tests	you	are	in	control;	without	tests	you	aren’t!	
Bob	Mar8n	-	The	Three	Rules	of	TDD	
cbell@CamilleBellConsul$ng.com																																																																																																																																			5
Test	Driven	Development	Feedback	Loop	
Write	a	test	for	
new	low	level	
func8onality		
Run	the	test	and	
watch	it	fail		
(no	code	=	test	fails)	
Write	just	enough	
code	to	make	the	
test	pass	
cbell@CamilleBellConsul$ng.com																																																																																																																																			6	
Run	the	test	and	
watch	it	pass	
Clean	up	
complex	or	
messy	code	
Run	test	again		
to	make	sure	it		
s8ll	passes	
Check	in	
Code	&	
Tests	
Check	in	
Code	&	
Tests
Simplified	TDD	Flow	
(o/en	called	Red-Green-Refactor	
Write	a	failing	unit	test	
for	new	func8onality	
Write	just	enough	
code	to	pass	test	
Refactored	code	must	
also	pass	tests,		
no	new	func8onality	
cbell@CamilleBellConsul$ng.com																																																																																																																																	7	
TDD	is	Deep	Inside	Code:	Tes8ng	at	Unit	Level
•  Programmers	restructure	system	by	improving	the	design	of	exis8ng	code	
without	changing	its	behavior		
–  to	remove	duplica8on,	improve	communica8on,	simplify,	or	add	flexibility	
•  Refactoring	is	not	random	change,	instead	it’s	driven	by	learning	from	our	
tests	and	from	iden8fying	and	fixing	code	smells	
•  DRY	(Don’t	Repeat	Yourself)	
•  Refactoring	can	occur	just	prior	or	just	a/er	wri8ng	new	code	
•  Test,	code,	refactor,	re-test	
–  Very	short	cycles	–	refactor	in	baby	steps	
Refactoring	
When	fixing	bugs,	write	a	Red	test,	BEFORE	fixing		the	bug.	Test	will	run	Green	when	bug	fixed.	
When	working	with	legacy	code	make	sure	to	write	automated	tests	BEFORE	refactoring	code,	
If	tests	didn’t	exist.	
cbell@CamilleBellConsul$ng.com																																																																																																																																			8
Ping	Pong	Pairing	
cbell@CamilleBellConsul$ng.com																																																																																																																																	9	
Shared	
Computer	
Mary	 Tom	
Write	a	failing	test	
Make	test	pass	
Write	a	failing	test	
Make	test	pass	
Write	a	failing	test	
Make	test	pass	
								etc.	
Make	test	pass	
Write	a	failing	test	
Make	test	pass	
Write	a	failing	test	
Make	test	pass	
Write	a	failing	test	
								etc.	
Refactor	as	needed
Mob	Programming	
•  Whole	team	works	together	
•  On	the	same	thing	
•  At	the	same	8me	
•  In	the	same	space	
•  Using	the	same	computer	
•  Driver	rotates	
•  Everyone	par8cipates	
•  Great	for	training	&	prac8ce	
•  Great	for	collabora8on	
•  Everyone	up	to	speed	faster	
•  Some	teams	mob	always,	others	frequently	
•  Features	delivered	faster	–	single	piece	flow	/wo	handoffs	
cbell@CamilleBellConsul$ng.com																																																																																																																																	10	
1
Live	FizzBuzz	Code	Kata	
1		2		Fizz		4		Buzz		Fizz		
7			8		Fizz		Buzz		11		
Fizz		13		14		FizzBuzz	…	
Implement	FizzBuzz	using	TDD	
like	you	really	mean	it	
cbell@CamilleBellConsul$ng.com																																																																																																																																	11
Some	Kata	References	
cbell@CamilleBellConsul$ng.com																																																																																																																																	12	
•  The	Coding	Dojo	Handbook	
		Available	in	PDF	from	Lean	Pub	
		hmps://leanpub.com/codingdojohandbook	
•  Search	for	katas	available	online	(such	as):	
•  Bowling	Game	Kata	(Uncle	Bob's	classic)	
•  Red	Pencil	Promo8on	Kata	(Messy	Business	Rules)	
•  Credit	Card	Number	Validator	
•  Ordered	Jobs	Kata	
•  and	many	more
Camille	Bell	
Agile	Technical	&	Process	Coaching	
Retrospec8ves	
Agile	Boot	Camps		
Agile	Training	
Updated	Slides	
or	just	to	chat	about	things	agile	
cbell@CamilleBellConsul$ng.com

More Related Content

Similar to Software Craftsmanship Workshop

TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)Danny Preussler
 
How engineering practices help business
How engineering practices help businessHow engineering practices help business
How engineering practices help businessAndrey Rebrov
 
Growing Manual Testers into Automators
Growing Manual Testers into AutomatorsGrowing Manual Testers into Automators
Growing Manual Testers into AutomatorsCamille Bell
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast ProtypingSerdar Temiz
 
#Measurefest : 20 Simple Ways to Fuck Up your AB tests
#Measurefest : 20 Simple Ways to Fuck Up your AB tests#Measurefest : 20 Simple Ways to Fuck Up your AB tests
#Measurefest : 20 Simple Ways to Fuck Up your AB testsCraig Sullivan
 
Job descriptions 4.0 - The new frontier
Job descriptions 4.0 - The new frontierJob descriptions 4.0 - The new frontier
Job descriptions 4.0 - The new frontierJames Clift
 
Rock Content Marketing Webinar
Rock Content Marketing WebinarRock Content Marketing Webinar
Rock Content Marketing WebinarKabbage
 
To Estimate or Not to Estimate, is that the Question?
To Estimate or Not to Estimate, is that the Question?To Estimate or Not to Estimate, is that the Question?
To Estimate or Not to Estimate, is that the Question?TechWell
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is ImportaintSana Nasar
 
Biggest Mistake of Broke Web Designers
Biggest Mistake of Broke Web Designers Biggest Mistake of Broke Web Designers
Biggest Mistake of Broke Web Designers New Tricks
 
Litmus Live 2018: Reinvent Your Email Workflow
Litmus Live 2018: Reinvent Your Email WorkflowLitmus Live 2018: Reinvent Your Email Workflow
Litmus Live 2018: Reinvent Your Email WorkflowLitmus
 
Continuous Delivery Will Make or Break Your Product
Continuous Delivery Will Make or Break Your ProductContinuous Delivery Will Make or Break Your Product
Continuous Delivery Will Make or Break Your ProductAdam Zolyak
 
Agile Rabbit Holes
Agile Rabbit HolesAgile Rabbit Holes
Agile Rabbit HolesAslam Khan
 
10 steps to developing great products
10 steps to developing great products10 steps to developing great products
10 steps to developing great productsDigitalWoman.com
 
Abstract: Culture and Engineering
Abstract: Culture and EngineeringAbstract: Culture and Engineering
Abstract: Culture and EngineeringManfred M. Nerurkar
 
An Introduction to Kanban
An Introduction to KanbanAn Introduction to Kanban
An Introduction to KanbanCamille Bell
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedRichard Cheng
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Mozaic Works
 

Similar to Software Craftsmanship Workshop (20)

TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)
 
How engineering practices help business
How engineering practices help businessHow engineering practices help business
How engineering practices help business
 
Growing Manual Testers into Automators
Growing Manual Testers into AutomatorsGrowing Manual Testers into Automators
Growing Manual Testers into Automators
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast Protyping
 
#Measurefest : 20 Simple Ways to Fuck Up your AB tests
#Measurefest : 20 Simple Ways to Fuck Up your AB tests#Measurefest : 20 Simple Ways to Fuck Up your AB tests
#Measurefest : 20 Simple Ways to Fuck Up your AB tests
 
Job descriptions 4.0 - The new frontier
Job descriptions 4.0 - The new frontierJob descriptions 4.0 - The new frontier
Job descriptions 4.0 - The new frontier
 
Rock Content Marketing Webinar
Rock Content Marketing WebinarRock Content Marketing Webinar
Rock Content Marketing Webinar
 
To Estimate or Not to Estimate, is that the Question?
To Estimate or Not to Estimate, is that the Question?To Estimate or Not to Estimate, is that the Question?
To Estimate or Not to Estimate, is that the Question?
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
Biggest Mistake of Broke Web Designers
Biggest Mistake of Broke Web Designers Biggest Mistake of Broke Web Designers
Biggest Mistake of Broke Web Designers
 
Litmus Live 2018: Reinvent Your Email Workflow
Litmus Live 2018: Reinvent Your Email WorkflowLitmus Live 2018: Reinvent Your Email Workflow
Litmus Live 2018: Reinvent Your Email Workflow
 
Continuous Delivery Will Make or Break Your Product
Continuous Delivery Will Make or Break Your ProductContinuous Delivery Will Make or Break Your Product
Continuous Delivery Will Make or Break Your Product
 
Agile Rabbit Holes
Agile Rabbit HolesAgile Rabbit Holes
Agile Rabbit Holes
 
10 steps to developing great products
10 steps to developing great products10 steps to developing great products
10 steps to developing great products
 
Penjualan
PenjualanPenjualan
Penjualan
 
Abstract: Culture and Engineering
Abstract: Culture and EngineeringAbstract: Culture and Engineering
Abstract: Culture and Engineering
 
An Introduction to Kanban
An Introduction to KanbanAn Introduction to Kanban
An Introduction to Kanban
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions Exposed
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
 

More from Camille Bell

What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingCamille Bell
 
Remote Mob Programming
Remote Mob ProgrammingRemote Mob Programming
Remote Mob ProgrammingCamille Bell
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipCamille Bell
 
What They Didn't Tell You in CSM Clas
What They Didn't Tell You in CSM ClasWhat They Didn't Tell You in CSM Clas
What They Didn't Tell You in CSM ClasCamille Bell
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven DevelopmentCamille Bell
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingCamille Bell
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisectCamille Bell
 
Promoting Agility with Running Tested Features - Lightening Talk
Promoting Agility with Running Tested Features - Lightening TalkPromoting Agility with Running Tested Features - Lightening Talk
Promoting Agility with Running Tested Features - Lightening TalkCamille Bell
 
Promoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperPromoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperCamille Bell
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckCamille Bell
 

More from Camille Bell (10)

What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About Testing
 
Remote Mob Programming
Remote Mob ProgrammingRemote Mob Programming
Remote Mob Programming
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
What They Didn't Tell You in CSM Clas
What They Didn't Tell You in CSM ClasWhat They Didn't Tell You in CSM Clas
What They Didn't Tell You in CSM Clas
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven Development
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into Everything
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisect
 
Promoting Agility with Running Tested Features - Lightening Talk
Promoting Agility with Running Tested Features - Lightening TalkPromoting Agility with Running Tested Features - Lightening Talk
Promoting Agility with Running Tested Features - Lightening Talk
 
Promoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperPromoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - Paper
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation Unstuck
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
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
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
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.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
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
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
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
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
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
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
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
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
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...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
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
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
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
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
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...
 

Software Craftsmanship Workshop