tnpl.me

Java start-up time มี overhead หลายจุด จากความพยายามที่ผมพยายาม optimize ให้ระบบของบริษัท start ได้เร็ว เพื่อทำให้ productivity ของ engineer ดีขึ้น (ปัจจุบัน start up time ~30-40sec) แต่ก็ยังไม่สำเร็จ แต่ก็มีหลายเรื่องได้เรียนรู้ระหว่างที่ทำ

จากที่ลองทำ Profiler ออกมา เจอว่าตอนที่ java app ใช้ CPU ไปกับสิ่งเหล่านี้ในตอน start (เรียงจากมากไปน้อย)

Read more...

ที่บริษัทใช้ ELK (Elasticsearch, Logstash, Kibana) ทำระบบ centralize log และผมกำลังสนใจว่าอยากจะใช้ Elasticsearch ในการทำ time-series สำหรับ monitor ระบบไปด้วย เลยขอลงมาดูรายละเอียดงานด้วยตัวเองบ้าง

อันดับแรกคือทำอย่างไรให้ระบบ centralize log มีความเร็วเพียงพอต่อการ ingest log เข้าไป และจากนั้นค่อยดูว่าทำอย่างไรให้ query log/aggregate log data ได้รวดเร็ว

ตัวเลข stats ปัจจุบันที่ ELK แสดงมีดังนี้

  • 1,000,000 log lines in each minute (from Kibana)
  • 100,000 average ingest rate per minute (from AWS)
  • 9,200,000,000 searchable document (from AWS)
Read more...

หลังจากได้ฟัง Clubhouse ของต่างชาติเกี่ยวกับการทำงานของ Product & Engineer ก็มีประเด็นที่เค้าพูดกันถึง Retrospective มักจะ focus ผิดจุด เลยอยากเขียนเอาไว้เตือนความจำ

Retrospective ควรจะ focus ว่าเราจะ deliver value ให้ customer ได้เร็วขึ้นอย่างไร มี process ตรงไหนที่ทำให้ deliver value ช้า เช่น build นาน, ต้องรอ manual test, รอ review code นาน, แก้ code หลายรอบ, product spec ไม่เคยนิ่ง, ติด breaking change deploy ไม่ได้ ฯลฯ

ทำไมต้อง focus แค่ deliver value?

High-performance team กับ normal team ต่างกันตรง speed ในการ deliver value ทีมที่ deliver ได้เร็วกว่าจะมีเวลามากกว่าในทุกๆ เรื่อง เช่น เมื่อส่ง feature ได้เร็ว ทีมก็จะมีเวลาในการแก้ไขปัญหาได้เร็วด้วยเช่นกัน สามารถทดลอง idea ได้มากกว่า iterate ได้เร็วกว่า

ปัญหาของการทำ Retrospective แบบทั่วๆ ไป

  1. Retrospective ส่วนใหญ่ focus แค่ feeling ของคนในทีม ไม่ได้ focus เรื่องการ improve process ให้ deliver value ได้เร็ว
  2. มีแต่ปัญหา list ออกมา แต่ไม่มี solution/action ออกมา
  3. มี solution/action แต่ไม่มี ownership ที่ชัด
  4. มี ownership แต่ไม่มีการ follow up progress และ action ไม่เกิด
  5. มี action และ ownership แต่ปัญหาต้องการ buy-in จากคนอื่นๆ ซึ่ง owner ไม่มี power มากพอ
  6. มี action มี power แต่ปัญหาถูกแก้ช้าเกินไป ไม่ถูกทำให้มีความสำคัญ

ถ้าทำ retrospective ที่ focus on improve deliver process และมีการแก้ไขปัญหาได้เร็ว ทีมจะทำงานได้เร็วขึ้น สนุกขึ้น มีความสุขมากขึ้น และด้วย speed นี้จะทำให้ team ทิ้งห่างจากทีมอื่นๆ ได้เร็วยิ่งขึ้น

#agile #team