Technical Excellence
Prayoch Rujira
Clock up Studio, Siam chamnankit
The Boomerang Jobs
May show every day in your work
เราทำงานกันอย่างไร?
เพิ่ม Feature ที่ 2 เข้าไป
ต้องปรับโค้ดเดิมก่อน
เมื่อเวลาผ่านไป...
มี Impact!!
HOTFIX!!
Hot fix of hot fix of hot fix of …
ไฟไหม้!!!!
ลองดูกราฟนี้
“เขียนใหม่เถอะพี่”
น้องโปรแกรมเมอร์ท่านหนึ่ง
ฝรั่งเรียกว่า
Technical debt
Ward Cunningham
Software Finance
แค่ทำงานให้เสร็จ กู้เงิน/รูดบัตร
Refactoring / ปรับปรุงคุณภาพ
โค้ด
จ่ายเงินต้น
เขียนโค้ดยาก งานเสร็จช้า แก้บั๊ก
ช้า
จ่ายดอกเบี้ย
คำพูดสุด Classic
“ทำออกมาเร็วๆเลยได้ไหม ลูกค้าไม่แคร์หรอกนะว่าโค้ดห่วยหรือเปล่า”
“ของมันใช้ได้อยู่ จะไปยุ่งกับมันทำไม”
“โค้ดมันเละมากเลยพี่ ผมไม่รู้เลยว่าต้องใช้เวลากี่วันกว่าจะเสร็จ”
“เขียนใหม่เถอะ ผมขอร้อง”
ผลกระทบจากการที่มีTechnical debt สูง
•ปรับปรุงผลิตภัณฑ์ตามความต้องการทางธุรกิจไม่ทัน
•โปรแกรมเมอร์ หมดไฟ
•ทำงานยาก สื่อสารลำบาก มีกำแพงระหว่างกัน
•ลาออก
Technical excellence
คือการลุกขึ้นมาต่อสู้กับปัญหา
เหล่านี้
การพัฒนา Software
เป็นเรื่องเกี่ยวกับการ
“เปลี่ยนแปลง”
ปรับจังหวะการทำงาน
พวกเราใช้
Engineering Practice
อะไรกันบ้าง
Communication
Pair programming
Mob programming
Coding dojo
Design studio
CRC cards
…Whatever collaboration
method
Source control
Easy build
+
Easy deployment
Test first
+
ATDD
+
TDD
TDD is about doing the
things right
ATDD is about doing the
right things.
from https://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
from https://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
Basic principles
+
Code smells
+
Refactoring
Collective code
ownership
Continuous
Integration
Continuous Delivery
& Deployment
Fast feedback
+
Continuous improvement
Optimise flow
over
maximise utilisation
แรงผลักดัน
ใส่ใจ User
ใส่ใจ Product
ใส่ใจเพื่อนร่วมทีม
ใส่ใจ Code
ใส่ใจตัวเอง
Software
craftsmanship
ภาพจากBlog
http://www.stevehuffphoto.com/2014/07/23/japan-with-the-om-d-m5-and-ft-lenses-by-ingo-socha/
Technical excellence

Technical excellence