Developers รักษ์โลกด้วย ESG และ Green Coding

jo@sabotender
KBTG Life
Published in
7 min readJun 13, 2023
เป้าหมายด้านสิ่งแวดล้อมของธนาคารกสิกรไทย แน่นอนว่า KBTG ก็ย่อมเป็นส่วนหนึ่งที่สำคัญในการดำเนินการเพื่อให้บรรลุเป้าหมายนั้น

ย้อนไปก่อนหน้านี้สัก 10 กว่าปี ผมได้ยินเรื่องปัญหาโลกร้อน สภาวะเรือนกระจก ไม่กี่ปีมานี้ ผมได้ยินคำว่า Climate Change และถัดมาไม่นานผมก็ต้องผจญกับฝุ่น PM2.5 อย่างที่ไม่เคยคาดคิดมาก่อนว่ามันจะมีอะไรแบบนี้ได้ ล่าสุดต้นปี พ.ศ. 2566 ค่าไฟในประเทศไทยแพงขึ้นเป็นประวัติการณ์ ผมรู้สึกสะท้อนใจทันทีเลยว่าทุกวันนี้เราใช้พลังงานกันเยอะมาก ที่ผ่านมาเราก็ปล่อยเรื่องนี้ผ่านล่วงเลยไปเหมือนเป็นเรื่องปกติ จนมาถึงเวลาที่เราต้อง “จ่าย” อะไรบางอย่างที่มันมีนัยสำคัญ

Climate Change

Climate Change คำนี้หมายถึงการเปลี่ยนแปลงของรูปแบบอุณหภูมิและภูมิอากาศในระยะยาวหรือถาวร การเปลี่ยนแปลงนี้สามารถเกิดได้เองตามธรรมชาติ แต่หากตั้งแต่ปี ค.ศ. 1800 เป็นต้นมา มนุษย์เป็นตัวการหลักที่ทำให้เกิดการเปลี่ยนแปลงนี้ด้วยอัตราที่เร็วกว่าธรรมชาติอย่างมากกกกกกก ก.ไก่ไม่รู้กี่ตัว

Climate Change ยังหมายรวมถึงการเปลี่ยนแปลงที่เกิดขึ้นกับสภาวะของชั้นบรรยากาศในระยะยาว ซึ่งจะส่งผลต่อการเปลี่ยนแปลงของสภาพภูมิอากาศในระยะสั้นหรือที่เรียกว่า Weather Change ตัวอย่างหนึ่งที่เห็นได้ชัดก็คือการเพิ่มขึ้นของอุณหภูมิเฉลี่ยในชั้นบรรยากาศที่ส่งผลให้ค่าอุณหภูมิในแต่ละฤดูกาลสูงขึ้นด้วย ตัวอย่างอื่น ๆ ก็เช่น การเปลี่ยนแปลงวัฏจักรของน้ำ ช่วงเวลาของฤดูฝนที่ไม่แน่นอน ฤดูหนาวที่สั้นลง การเปลี่ยนแปลงของกระแสน้ำในมหาสมุทร ค่าความเค็มและค่าความเป็นกรดที่เปลี่ยนไป เป็นต้น เราจะเจอปัญหาน้ำท่วมและสภาพอากาศที่เลวร้ายสุดโต่งมากขึ้นเรื่อย ๆ ร้อนก็จะร้อนมาก หนาวก็จะหนาวมากขึ้น ด้วยความเร็วในระดับที่สิ่งมีชีวิตยากจะปรับตัวตามได้ทัน

เมื่อก่อนผมได้ยินแต่คำว่า Global Warming ซึ่งหมายถึงภาวะโลกร้อน ปัจจุบันมันกลายเป็น Climate Change เสียแล้ว นั่นแสดงว่าสิ่งเหล่านี้ไม่ใช่สิ่งที่กำลังจะเกิดขึ้น แต่มันได้เกิดขึ้นไปแล้ว!

Start With “WHY?”

Figure 1.1 in Ara Begum, R., R. Lempert, E. Ali, T.A. Benjaminsen, T. Bernauer, W. Cramer, X. Cui, K. Mach, G. Nagy, N.C. Stenseth, R. Sukumar, and P. Wester, 2022: Point of Departure and Key Concepts. In: Climate Change 2022: Impacts, Adaptation, and Vulnerability. Contribution of Working Group II to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change [H.-O. Pörtner, D.C. Roberts, M. Tignor, E.S. Poloczanska, K. Mintenbeck, A. Alegría, M. Craig, S. Langsdorf, S. Löschke, V. Möller, A. Okem, B. Rama (eds.)]. Cambridge University Press, Cambridge, UK and New York, NY, USA, pp. 121–196, doi:10.1017/9781009325844.003.

ทำไมเราถึงต้องให้ความสำคัญกับเรื่องนี้ ผมว่าเหตุผลมันเรียบง่ายมาก

“ไม่มีโลก ก็ไม่มีเรา”

ภาพด้านบนเป็นภาพจากรายงานผลกระทบจาก Climate Change ประจำปี 2022 ที่ผ่านมา ซึ่งจัดทำโดยหน่วยงาน Intergovernmental Panel on Climate Change (IPCC) ที่จัดตั้งขึ้นโดยองค์การสหประชาชาติหรือ UN เมื่อปี 1988 ในความร่วมมือเพื่อจัดทำข้อมูลและรายงานที่เป็นประโยชน์กับรัฐบาลของแต่ละประเทศสมาชิกในการวางนโยบายแก้ไขปัญหา Climate Change ร่วมกัน จากรูปแสดงให้เห็นถึงความหนาแน่นของผลกระทบที่เกิดขึ้นแล้วของปัญหา Climate Change ที่ประมวลผลด้วย Machine Learning บนกรณีศึกษา 77,785 เคสทั่วโลก

ผมคิดว่าคงไม่ต้องบรรยายมากว่าสภาพแวดล้อมในปัจจุบันนี้ทำให้เราใช้ชีวิตลำบากขึ้นเพียงไร มีหลายครั้งที่ผมเล่าให้ลูกฟังว่าตอนที่พ่อเป็นเด็กนั้นสภาวะแวดล้อมมันไม่ใช่แบบนี้เลย บางคนอาจจะบอกว่าแล้วจะให้ทำอย่างไร ถ้าไม่ทำงานก็อดตายวันนี้แหละ แต่ผมคิดว่ามันไม่ถึงขนาดที่เราจะต้องหยุดทำงาน หยุดเผาผลาญเชื้อเพลิงอย่างสิ้นเชิง ในโลกที่เทคโนโลยีก้าวหน้าระดับนี้ ทุกคนสามารถทำในสิ่งที่ต่างออกไปจากเดิมเพื่อช่วยเหลือและรักษาโลกได้ ตัวผมเองก็ไม่ได้คิดการใหญ่โตอะไร คิดเพียงแต่ว่าอยากให้ลูกหลานตัวเองลำบากน้อยลงสักนิดหนึ่งก็ยังดี

ที่สำคัญคือเราทุกคนสามารถเริ่มต้นได้ตั้งแต่ตอนนี้เลย เริ่มต้นด้วยการตระหนักถึงความสำคัญในการดูแลรักษาสภาพแวดล้อมรอบตัวเรา

คุณ Asim Hussain ที่เป็น Green Cloud Advocacy Lead ของบริษัท Microsoft ได้เขียนอธิบายไว้ในเว็บ principles.green ของเขาในหัวข้อ Green Software Engineering Philosophies แปลเป็นไทยก็คงประมาณ หลักปรัชญาของ Green Software Engineering ซึ่งถ้าเราลองเข้าไปในเว็บดู เขาจะเขียนอธิบายความหมายของคำว่า Green Software Engineering ก่อน ต่อด้วย 8 Principles of Green Software Engineering แล้วค่อยมาถึงตัว Philosophies เองในฐานะที่เป็นรากฐานของแนวคิดทั้งหมด แต่ผมเองอยากจะเริ่มด้วยสิ่งที่เป็นพื้นฐานความคิดก่อน ผมว่าหลักคิดมันสำคัญมาก ๆ และมันจะเป็นตัวที่กำหนดวิธีปฏิบัติของเราต่อไป

2 Green Software Engineering Philosophies

  1. ทุกคนมีบทบาทในการแก้ไขปัญหา Climate Change ทุกสิ่งทุกอย่างที่เกิดขึ้นเชื่อมโยงถึงกันทั้งหมด ความเปลี่ยนแปลงเพียงเล็กน้อยก็สามารถนำไปสู่การเปลี่ยนแปลงที่ยิ่งใหญ่ได้
  2. ข้อนี้ค่อนข้างที่จะต้องตีความครับ เพราะมันเป็นปรัชญา ผมเข้าใจว่าสิ่งที่เขาต้องการจะสื่อนั้นมีใจความดังนี้ครับ “คำว่า Sustainability นั้นมีคุณค่าที่ชัดเจนในตัวเอง การลงทุนใน Sustainability นั้นคุ้มค่า ไม่มีอะไรจะถูกไปกว่าและจะมีประสิทธิภาพไปกว่าการพัฒนาระบบที่ยั่งยืน”

Technology is a double-edged sword

หลายคนทราบว่าตัวการของภาวะโลกร้อนคือก๊าซเรือนกระจก (Greenhouse Gases, GHG) ซึ่งจริง ๆ แล้วก๊าซเรือนกระจกไม่ใช่ก๊าซเพียงตัวใดตัวหนึ่ง แต่เราใช้เรียกกลุ่มของก๊าซที่มีสมบัติเก็บกักความร้อนของแสงอาทิตย์เอาไว้ในชั้นบรรยากาศโลก ก๊าซเรือนกระจกสามารถเกิดขึ้นได้จากธรรมชาติด้วย แต่เทียบไม่ได้เลยกับส่วนที่เกิดมาจากกิจกรรมต่าง ๆ ของมนุษย์ และเรามักจะได้ยินจากสื่อวิทยุ โทรทัศน์ โซเชียลมีเดียต่าง ๆ ในปัจจุบันว่า บริษัทนั้นมีเป้าหมายที่จะลดการปล่อยคาร์บอนภายในกี่ปี บริษัทนี้จะบรรลุความเป็นกลางทางคาร์บอน แล้วคำว่า “คาร์บอน” มันมีความเกี่ยวข้องกันอย่างไร?

“คาร์บอน (Carbon)” เป็นคำที่ถูกใช้ในความหมายแบบกว้าง ๆ เพื่อสื่อถึงกิจกรรมที่มีการปล่อยของเสียหรือก๊าซเรือนกระจก ตลอดจนสื่อถึงผลกระทบของกิจกรรมนั้น ๆ ในแบบ Global Warming ไปจนถึง Climate Change และเนื่องจากก๊าซเรือนกระจกนั้นจริง ๆ แล้วมีก๊าซอยู่หลายตัว ไม่ใช่เฉพาะ CO2 (หรือที่เรารู้จักในชื่อคาร์บอนไดออกไซด์) เลยมีการสร้างหน่วยวัดกลางที่เรียกว่า Carbon Equivalence (เขียนย่อว่า CO2eq, CO2-eq หรือ CO2e) เพื่อให้เราสามารถแปลงค่าของก๊าซอื่นให้มาอยู่ในหน่วยเดียวกันได้ ยกตัวอย่างเช่น ก๊าซมีเทน 1 ตัน จะให้ผลประมาณเท่ากับคาร์บอนไดออกไซด์ หรือ CO2 หนัก 80 ตัน (80 tons CO2eq) สุดท้ายเวลาพูดกันก็พูดสั้น ๆ เหลือเพียงคำว่า “คาร์บอน” คำเดียว

ทุกอย่างที่พวกเราทำล้วนแต่ปล่อย “คาร์บอน” ออกสู่บรรยากาศทั้งสิ้น ดังนั้นเป้าหมายของเราคือลดการปล่อย “คาร์บอน” ให้ได้มากที่สุดเท่าที่จะสามารถทำได้

ปัจจุบันเป็นยุคของเทคโนโลยี เราได้ยินคำว่า Disruption กันจนหูชา หลักฐานที่ชัดเจนที่สุดคือช่วงการระบาดใหญ่ของเชื้อโควิด-19 ที่เป็นตัวเร่งการ Disruption ขึ้นไปอีก ธุรกิจจำนวนมากต้องหันมาขายผ่านช่องทางออนไลน์ การทำธุรกรรมแบบไร้เงินสดที่เพิ่มขึ้นเป็นจำนวนมาก ในที่ทำงานเราได้ยินคำว่า Digital Transformation กันเป็นเรื่องปกติ สิ่งต่าง ๆ เหล่านี้เปลี่ยนรูปแบบการทำงานตลอดจนการใช้ชีวิตของมนุษย์ ช่วยอำนวยความสะดวกสบาย แต่ในอีกทางหนึ่ง การก้าวหน้าของเทคโนโลยีอย่างรวดเร็วก็ส่งผลเสียต่อสิ่งแวดล้อมไปพร้อม ๆ กัน

พลังงานสะอาด (Image By Freepik)

มีการเก็บข้อมูลโดย IEA (International Energy Agency) ว่า Data Centers และ Data Transmission Networks ใช้พลังงานไฟฟ้าคิดเป็นสัดส่วน 1–1.5% ของปริมาณการใช้ไฟฟ้าทั้งโลก และแน่นอนว่าในกระบวนการผลิตไฟฟ้าก็จะปลดปล่อย “คาร์บอน” ออกสู่บรรยากาศ ถ้าดูเฉพาะตัวเลข 1% เราอาจจะรู้สึกว่าน้อยจัง แต่อย่าลืมว่ามันเฉพาะ Data Centers และ Networks จิ๋ว ๆ ครับ ในชีวิตเรามีคอมพิวเตอร์ส่วนตัว มือถือ แท็บเล็ต อุปกรณ์ IoT การใช้งานอุปกรณ์เหล่านี้ รวมไปถึงกระบวนการผลิตชิ้นส่วนต่าง ๆ ของมันในโรงงานล้วนแล้วแต่ปล่อย “คาร์บอน” ทั้งสิ้น ซึ่งในรายงานของทาง IEA จะมีการจัดหมวดหมู่เอาไว้ครับ ใครสนใจสามารถเข้าไปศึกษาต่อได้

เราลองมาดูข้อมูลอีกด้านหนึ่ง

  • ภายในปี 2040 มีการคาดการณ์ว่าในภาคส่วนข้อมูลสารสนเทศและการสื่อสาร จะปล่อยคาร์บอนเป็นอัตราส่วนถึง 14% ของคาร์บอนของโลกทั้งหมด โดยเพิ่มขึ้นจากปี 2007 ที่คิดเป็นแค่ 1.5% เท่านั้น
  • นักวิจัยที่มหาวิทยาลัย Cambridge ได้ประเมินว่าพลังงานที่ต้องใช้ในการดูแลรักษาเครือข่าย Bitcoin มีปริมาณมากกว่าพลังงานที่ประเทศสวิตเซอร์แลนด์ใช้ทั้งประเทศ
  • การเทรน Neural Network เพียงหนึ่งโมเดลสามารถปล่อย “คาร์บอน” ออกมาเทียบเท่ากับปริมาณคาร์บอนที่ปล่อยตลอดอายุการใช้งานของรถยนต์ 5 คัน
  • นักวิจัยระบุว่า Data Center ใช้พลังงานประมาณ 200 เทราวัตต์-ชั่วโมงในแต่ละปีซึ่งมากกว่าการใช้พลังงานของบางประเทศทั้งประเทศ และมีแนวโน้มจะเพิ่มขึ้นถึง 10–15 เท่าในอนาคตอันใกล้

เทคโนโลยีเองก็เป็นส่วนหนึ่งของปัญหาครับ แต่ในขณะเดียวกันเทคโนโลยีก็เป็นเครื่องมือที่ช่วยเราแก้ปัญหาเช่นเดียวกัน เราอยู่ในจุดที่ไม่สามารถหยุดใช้เทคโนโลยีได้ แต่เราควรใช้มันในทิศทางเพื่อแก้ปัญหามากกว่าที่จะเพิ่มปัญหาให้กับโลกนี้

Here comes the Design for Sustainability

จากที่กล่าวมาทั้งหมดข้างต้น มันมีแนวคิดใหญ่ ๆ อยู่สองอย่างที่เกิดขึ้นภายใต้สถานการณ์นี้ครับ อย่างแรกคือ ESG (Environmental, Social, and Governance) ที่เป็นแนวคิดในการพัฒนาองค์กรอย่างยั่งยืน ซึ่งประกอบไปด้วย 3 ส่วนด้วยกัน คือ สิ่งแวดล้อม (Environmental) สังคม (Social) และการกำกับดูแล (Governance; ผมเห็นบางที่ใช้ศัพท์คำว่า ธรรมาภิบาล) ซึ่งต่อมากลายเป็นเทรนด์ที่แพร่หลายไปทั่วโลก มีตัวเลขเชิงสถิติและงานวิจัยมากมายที่ยืนยันว่า ESG เป็นที่สนใจอย่างมากในกลุ่มนักลงทุนทั่วโลก ทำให้เกิดเป็นกระแสต่อเนื่องไปยังบริษัทต่าง ๆ อย่างรวดเร็ว

อีกแนวคิดหนึ่งคือ Sustainability ที่แปลว่า “ความยั่งยืน” เป็นแนวคิดที่มีความหมายครอบคลุมกว้างกว่า ESG ที่มีกรอบในการทำงานและการประเมินผลด้วยตัวชี้วัดที่ชัดเจนกว่า ไม่ต้องไปดูที่ไหนไกลครับ เราสามารถดูของจริงแบบไม่สแตนด์อินได้ที่ ธนาคารกสิกรไทย นั่นเอง นอกจากธนาคารจะดำเนินการตามหลัก ESG ที่เน้นผลลัพธ์ในด้านสิ่งแวดล้อม (Environmental) และสังคม (Social) ด้วยการกำกับดูแลที่ดีแล้ว ยังได้เพิ่มเติมเป้าหมายด้านเศรษฐกิจ (Economic) เข้ามาเพื่อให้ได้ผลลัพธ์ที่ครอบคลุมและครบถ้วนตามวิสัยทัศน์ “Bank of Sustainability” อีกด้วย ผู้ที่สนใจในรายละเอียดของการพัฒนาอย่างยั่งยืนสามารถเข้าไปอ่านรายงานประจำปีของธนาคารกสิกรไทยได้ในลิงก์ใต้รูปด้านล่างเลยครับ

KASIKORNBANK, A Bank of Sustainability

ถัดมาอยากจะกล่าวถึงสิ่งที่เรียกว่า SDGs (Sustainable Development Goals) สักหน่อย SDGs คือเป้าหมายของการพัฒนาที่ยั่งยืน ที่กำหนดโดยองค์การสหประชาชาติ หรือที่เราเรียกกันติดปากว่า ยูเอ็น (UN: United Nations) ซึ่งจำแนกออกเป็นทั้งหมด 17 วัตถุประสงค์ด้วยกัน

แนวคิด ESG เองก็อ้างอิงไปยังวัตถุประสงค์ที่สำคัญของ SDGs นี้แหละ โดยนำมาใช้เป็นแนวทางในการวัดและรายงานผลการดำเนินงานของธุรกิจในทั้ง 3 มิติ (E, S และ G) ซึ่งใช้เป็นมาตรฐานร่วมกันระหว่างประเทศ ถ้าเราลองไปดูรายงานของธนาคารกสิกรไทย เราจะเห็นว่ามีสัญลักษณ์ของ SDGs กำกับเอาไว้ด้วย

The UN’s 17 Sustainable Development Goals

ณ จุดนี้ ไม่ว่าจะเป็น ESG หรือ Sustainability ก็ดี มันมีอะไรที่เราชาว Developers หรือคนในสายงานไอที สามารถทำได้บ้าง?

ผมพาไปดูข้อมูลจาก InfoQ ก่อน ซึ่งเขาจะจัดทำรายงานเทคโนโลยีเทรนด์เป็นประจำทุกปี เพื่อบอกว่าเทคโนโลยีไหนกำลังมาแรง เทคโนโลยีไหนประมาณว่าเก่าแล้ว โดยผมนำข้อมูลล่าสุดในขณะที่ผมเขียนบทความมาให้ดูครับ คืออันนี้ Software Architecture and Design InfoQ Trends Report — April 2023

InfoQ — Architecture and Design as of April 2023

ในคอลัมน์ทางซ้ายมือสุดที่เป็นส่วนของ Innovators บรรทัดที่สาม เราจะเห็นอันนี้ครับ “Design for sustainability” โดยทาง InfoQ ระบุว่าเรื่องของ Sustainability หรือการลดปริมาณการปล่อย “คาร์บอน” ในระบบงานไอทีหรือการพัฒนาซอฟต์แวร์จะเข้ามาเป็นประเด็นหลักในการออกแบบและพัฒนาระบบในอีกไม่กี่ปีข้างหน้า จะไม่ใช่ประเด็นรองหรือเป็นแค่การเอาไอทีเข้ามาช่วยเพื่อลดต้นทุนในการทำงานขององค์กรอีกต่อไป แต่ที่ InfoQ จัดเรื่อง Design for Sustainability ไว้ที่กลุ่ม Innovators เพราะในปีนี้ (ค.ศ. 2023) องค์กรต่าง ๆ เพิ่งเริ่มจะหันมาสนใจอย่างจริงจังนั่นเอง

ก็สอดคล้องกับงานวิจัยของ Accenture ในปี 2022 ที่ทำการสำรวจบนบริษัทจำนวน 560 บริษัท และพบว่ามีเพียง 7% เท่านั้น ที่ผนวกฝ่ายธุรกิจเข้ากับฝ่ายเทคโนโลยีในการดำเนินการตามกลยุทธ์ของ Sustainability แม้ว่าบริษัทที่เหลืออีก 93% นั้นจะเห็นควรกับการผนวกทุกภาคส่วนเข้ามาทำงานเพื่อเป้าหมายนี้ร่วมกัน แต่พวกเขากล่าวว่าตอนนี้ยังมีข้อจำกัดอยู่มาก ซึ่งแบ่งออกเป็นการขาดแคลนของแนวทางและมาตรฐานที่ชัดเจน (40%) ความซับซ้อนในการดำเนินการ (33%) และการขาดความตระหนักถึงความสำคัญและผลกระทบของเทคโนโลยี (20%)

ความท้าทายของงาน Design for Sustainability นี้อยู่ที่การวัดปริมาณ “คาร์บอน” ในงานไอที แม้ว่าในปัจจุบันจะมีความร่วมมือระหว่างบริษัทเทคฯ หลายแห่งเพื่อการพัฒนาเครื่องมือที่จะมาช่วยในจุดนี้ แต่หลายบริษัทก็ยังใช้ตัวเลขของ “ต้นทุน” เป็นตัวแทนของผลกระทบต่อสิ่งแวดล้อม เพราะมันมีความสัมพันธ์แบบว่าถ้าคุณลงทุนเยอะ “คาร์บอน” ของคุณก็มักจะเยอะตาม ซึ่งวิธีแบบนี้ก็อาจจะยังไม่ถูกต้องนัก

Green Coding

เมื่อก่อนตอนผมยังเป็นโปรแกรมเมอร์หนุ่มไฟแรง ผมสนใจแต่ว่าจะเขียนโปรแกรมอย่างไรให้โปรแกรมทำงานได้เร็ว ไม่มีบั๊ก สนใจว่าจะใส่ Design Patterns ตรงไหนมันถึงจะดีต่อใจ จะใช้ Framework หรือ Library อะไรมันถึงจะเจ๋ง และท้ายสุดก็คือรีบปั่นงานให้ทันตามหัวหน้าสั่ง… แต่อีกไม่นานต่อจากนี้ เราอาจจะโดนลูกค้าหรือแม้กระทั่งหัวหน้าของเราเองเดินมาถามว่า “ตอนนี้ระดับ Green Software ของเราอยู่ที่เท่าไหร่” หรือ “ช่วยส่งรายงาน ESG ของซอฟต์แวร์คุณให้ผมหน่อยได้ไหม”?

Green Coding เป็นแนวคิดในการพัฒนาและดำเนินการทางไอที โดยให้ความสำคัญกับการใช้พลังงานอย่างมีประสิทธิภาพสูงสุดเพื่อลดผลกระทบต่อสิ่งแวดล้อม จริง ๆ แล้วยังมีศัพท์อื่น ๆ อีกหลายคำในอินเทอร์เน็ต เช่น Green Software Engineering, Green Computing, Sustainable Software Development ฯลฯ แม้ว่าแต่ละคำจะมีความหมายแตกต่างกันอยู่บ้าง แต่ผมเชื่อว่าทุกคำนั้นล้วนมีเป้าหมายเหมือนกัน ส่วนตัวผมเองชอบคำว่า Green Coding จึงนำมาใช้ในชื่อบทความนี้ เพราะนอกจากมันจะสั้นและกระชับแล้ว คำว่า Coding ยังสื่อได้ตรงไปถึงชาว Developers อีกด้วย แต่ถ้ามองลึกลงไปในเนื้อหาแล้ว ผมต้องบอกว่ามันเหมาะที่จะเรียกว่า Green Software Engineering มากกว่า เพราะมันเกี่ยวข้องกับกระบวนการพัฒนาซอฟต์แวร์ทั้งระบบ ตั้งแต่ Requirement ยัน Operation ไม่ใช่แค่เพราะส่วนของการ Coding เท่านั้น

ในวันหนึ่งข้างหน้า ระดับ Carbon อาจจะเป็นหนึ่งใน Requirements ของระบบงานหรือ Application ที่คุณพัฒนา

รูป Concept Art ของ Green Coding ที่ผมลองให้ AI สร้างดูเล่น ๆ

ไม่ว่าจะเป็นซอฟต์แวร์ แอปพลิเคชัน หรือโปรแกรมใด ๆ ที่เราเขียนนั้นไม่ได้ปล่อยคาร์บอนออกมาโดยตรง งั้นคำถามคือ เราจะดูระดับของความ Green ของระบบหรือโปรแกรมนั้นจากตรงไหนล่ะ? คำตอบแบบกลม ๆ ก็คืออยู่ที่…

  • ปริมาณพลังงานที่ใช้ในการรันโปรแกรมนั้น
  • Hardware ที่ใช้ในการรันโปรแกรมนั้น
  • กระบวนการในการพัฒนาโปรแกรมนั้น

โดยแต่ละข้อนั้นก็จะมีรายละเอียดในเชิงลึกลงไปอีก ผมคงไม่สามารถอธิบายได้หมดรวดเดียวในบทความนี้ ซึ่งอาจจะเป็นโชคดีของท่านผู้อ่าน :P

Green Software Engineering ก็เหมือนกับศาสตร์และศิลป์ในการพัฒนาซอฟต์แวร์ที่เราเคยเรียนกันมาในมหาวิทยาลัยที่ประกอบด้วยวิชาต่าง ๆ มากมาย และยังต้องมีความรู้พื้นฐานในแขนงอื่นเพิ่มเติมไปจากที่อธิบายมาข้างต้นอีกด้วย โดยเฉพาะเรื่องเกี่ยวกับไฟฟ้าและพลังงาน (ผมเชื่อว่าหลายคนน่าจะมีอดีตกับวิชานี้สมัยเรียน) แต่เนื่องในโอกาสที่บทความนี้ผมตั้งใจจะไม่ลงลึกอย่างที่บอกไป ผมจึงอยากจะเขียนไว้เป็นหลักการที่เข้าใจได้ง่าย สามารถนำไปปฏิบัติได้ทันที และในช่วงท้ายก็อยากจะแนะนำสิ่งที่น่าสนใจสำหรับผู้ที่อ่านบทความผมแล้วรู้สึกสนใจที่จะไปศึกษาต่อครับ ว่าแล้วก็ไปเสพกันได้เลย

Green Ways of Working ฉบับใกล้ตัว Developers

  1. Cloud-first Design ถ้าเลือกได้ให้ไปใช้ Cloud ครับ ด้วยเหตุผลแบบครอบจักรวาลเลยว่าบริษัทเทคฯ ยักษ์ใหญ่ที่เป็น Cloud Provider นั้นมีความก้าวหน้าในเรื่องของ ESG และ Green Software Engineering มากเป็นลำดับต้น ๆ ของโลก ตัวอย่างเช่น เขามีเทคโนโลยีในการเลือกใช้พลังงานสะอาดหรือนำกลับมาใช้ใหม่ในช่วงเวลาที่ต่างกันของแต่ละวัน มีเครื่องมือสนับสนุนการทำงานแบบ Automated ตลอดจนเครื่องมือในการเฝ้าดูและคำนวณค่าคาร์บอน และอื่น ๆ อีกมากมายสำหรับนักพัฒนา
  2. Carbon Footprint in Cloud สำหรับใครที่ใช้ Cloud อยู่แล้ว ลองส่องกล่องเครื่องมือใกล้ตัวดูครับ เครื่องมือเหล่านี้แม้จะยังไม่เพอร์เฟค แต่เขายังพัฒนาเพิ่มเติมอยู่อย่างต่อเนื่อง และจะทำให้เราเอาความ Green ออกมาเป็นตัวชี้วัดเพื่อพัฒนาปรับปรุงระบบและกระบวนการทำงานของเราได้ ผมแปะลิงก์ของเจ้าใหญ่ ๆ ไว้ให้ตามนี้เลย
    - AWS Carbon Footprint Tool
    - Azure Emissions Dashboard
    - Google Cloud Carbon Footprint
  3. ลดจำนวนเครื่องเซิร์ฟเวอร์ที่ใช้ลงให้เหลือเท่าที่จำเป็น และใช้แต่ละเครื่องให้คุ้มที่สุด ในการวัดปริมาณคาร์บอนของระบบงานไอทีนั้น เขาจะวัดรวมเอาปริมาณคาร์บอนที่ปล่อยจากกระบวนการผลิตเครื่องคอมพิวเตอร์ หรือเครื่องเซิร์ฟเวอร์ด้วย นั่นหมายถึงเราควรที่จะช่วยโลกด้วยการลดจำนวนเครื่องเซิร์ฟเวอร์ที่ใช้งานลง และใช้งานให้ Utilization Rate ของแต่ละเครื่องสูงเข้าไว้ จะดีกว่าการมีจำนวนเครื่องเยอะ ๆ แต่ไม่ค่อยได้ทำงานอะไร CPU วิ่งแค่ 20% งี้
  4. Agile Software Development Methodology หลายคนทำงานแบบ Agile ด้วยเหตุผลหลักที่ว่ามันทำให้การทำงานร่วมกันของทีมราบรื่นมากขึ้น ทำให้ลูกค้าได้เห็นของเร็วขึ้น บางคนแค่เห็นว่ามันเป็นเทรนด์เฉย ๆ แต่ที่สำคัญมากไปกว่านั้น Agile เป็นรูปแบบการทำงานที่ช่วยโลกนี้ตามหลักการของ Zero Waste การทำงานร่วมกันของทีมในแบบ Iteration ทำให้มีการตรวจสอบและปรับปรุงโค้ดที่เกิดขึ้นในแต่ละรอบได้โดยตลอด ส่งเสริมให้มีการใช้ทรัพยากรและพลังงานในการพัฒนาซอฟต์แวร์อย่างมีประสิทธิภาพ และลดการสร้างสิ่งของที่ไม่จำเป็น สร้างมาแล้วไม่ได้ใช้ หรือสร้างแล้วไม่ตรงกับความต้องการ ซึ่งทั้งหมดนี้จะช่วยลดผลกระทบต่อสิ่งแวดล้อมอย่างยิ่ง
  5. Automation เมื่อใช้คำนี้หลายคนอาจจะนึกถึง DevOps ก็ถูกต้องเลยครับ การทดสอบซอฟต์แวร์อัตโนมัติ การสร้างสภาพแวดล้อมทดสอบและการทำ CI/CD ซึ่งส่งผลให้เกิดความเสถียรและประสิทธิภาพในการใช้งานซอฟต์แวร์ ทำให้ลดการใช้ทรัพยากรและพลังงานในการดำเนินกิจกรรมต่างๆ ตั้งแต่ Development ไปจนถึง Operation
  6. เลือกอุปกรณ์ที่ประหยัดไฟเบอร์ 5 ข้อนี้ผมไม่ได้หมายความจะให้ซื้อแอร์หรือตู้เย็นมาใช้นะครับ แต่ผมหมายถึงเครื่องมือของชาวโปรแกรมเมอร์ครับ เริ่มที่ภาษาในการเขียนโปรแกรม Frameworks หรือ Libraries ต่าง ๆ พยายามเขียนโค้ดให้สั้นเพื่อประหยัดหน่วยความจำ เขียน Log เท่าที่จำเป็น โดยมีเป้าหมายเพื่อลดการใช้พลังงานของตัวโปรแกรม ในบทความเกี่ยวกับภาษา Rust ที่ผมเคยเขียนไว้ก่อนหน้านี้ก็มีกล่าวถึงงานวิจัยเกี่ยวกับ Greenest Programming Languages ด้วย
  7. ลดการใช้พลังงานใกล้ตัว ปิดคอม ปิดจอ ปิดไฟที่ไม่ใช้ ผมมั่นใจว่าข้อนี้ได้ยินกันบ่อยแล้ว แต่ผมมีตัวอย่างที่น่าสนใจเพิ่มเติมให้ 2 อันครับ อย่างแรกคือ Dark Theme หรือ Dark Mode ของโปรแกรมต่าง ๆ ที่เราใช้กันอยู่ เช่น IDEs, Browsers, แอปบนมือถือ ตลอดจน PowerPoint Templates จะเห็นว่าเขามักจะมี Dark Theme หรือ Dark Mode สำหรับเปลี่ยนฉากหลังของโปรแกรมหรือหน้าจอของเราให้เป็นสีโทนดำ จริง ๆ แล้วมันไม่ได้ออกแบบมาเพื่อความเท่อย่างเดียวนะครับ สิ่งที่ซ่อนอยู่คือการช่วยประหยัดไฟ! ดังนั้นนอกจากเราจะเปลี่ยนมาใช้ Dark Mode เองแล้ว เวลาเราพัฒนาแอปหรือเว็บก็ลองพิจารณา Dark Mode หรือ Dark Theme เป็นฟังก์ชันหนึ่งของระบบงานของเราเพื่อช่วยลดโลกร้อนกันดูนะครับ ส่วนตัวอย่างที่สองคือ การเปิดการเชื่อมต่อเท่าที่จำเป็นเท่านั้น เช่น ฟีเจอร์พวก Location-based หรือ Notifications ต่าง ๆ ที่เปิดปุ๊บ บริโภคไฟปั๊บ ถ้าเราสามารถเปิดใช้งานเฉพาะตอนที่ต้องการใช้จริง ๆ ก็จะช่วยในการประหยัดพลังงานครับ ซึ่งในมุมของคนพัฒนาแอปพลิเคชัน เราสามารถทำฟีเจอร์แบบ “Turn on while playing” หรือไม่ก็อนุญาตให้ผู้ใช้งาน “Turn off” ไปเลยถ้าไม่ต้องการใช้ ก็จะช่วยได้มากเลยครับ

Green Coding กับ 17 UN’s SDGs

เราลองมายกตัวอย่างกันหน่อยว่า Green Coding ตอบโจทย์อะไรตาม SDGs บ้าง

Example: SDGs and Green Coding
  • 7 Affordable and Clean Energy (พลังงานสะอาดที่เข้าถึงได้) ปัจจุบันมนุษย์เราใช้เทคโนโลยีหรือว่าแอปพลิเคชันกันเยอะมากอยู่แล้ว ถ้าแอปเหล่านั้นพัฒนาด้วยหลัก Green Software Engineering แล้วไปทำงานอยู่บน Green Host ก็เหมือนกับเรามีส่วนช่วยให้ผู้คนเข้าถึงพลังงานสะอาดที่เป็นมิตรต่อสิ่งแวดล้อม
  • 12 Responsible Consumption and Production (การบริโภคและการผลิตที่รับผิดชอบ) Green Coding ส่งเสริมการใช้ทรัพยากรและพลังงานอย่างคุ้มค่า กระบวนการทำงานแบบ Zero Waste ลดการสร้างขยะอิเล็กทรอนิกส์ ทำงานอย่างรวดเร็วด้วย CI/CD
  • 13 Climate Action (การแก้ไขปัญหาการเปลี่ยนแปลงของสภาพภูมิอากาศ) ข้อนี้ตรงไปตรงมาเลย เพราะ Green Coding ช่วยลดปริมาณการใช้พลังงานและการปล่อยคาร์บอน ซึ่งมีผลกระทบต่อสภาพภูมิอากาศ เริ่มตั้งแต่กระบวนการผลิตซอฟต์แวร์ไปจนถึงการทำงานของตัวซอฟต์แวร์เอง

Review, Reuse, Reduce

ผมชอบหลัก 3Rs ของในบทความของ ITFAQ — Digital Labs ที่เราชาว Developers สามารถนำไปเป็นหลักปฏิบัติอย่างง่ายได้ทันทีระหว่างรอมาตรฐานหรือเครื่องมือต่าง ๆ ที่จะออกมาในอนาคต เลยจะขอแถมให้สักหน่อย

Review

  • Review โค้ดเป็นประจำ ลบส่วนที่ไม่ได้ใช้งานออก ลดส่วนที่ซ้ำซ้อน ลดจำนวนบรรทัดของโค้ดลง ลดหน่วยความจำที่ใช้งาน
  • Monitor ค่าพลังงานที่ใช้หรือปริมาณคาร์บอนของระบบ จัดให้มีการ Review เพื่อหาวิธีการปรับปรุงค่าเหล่านี้ให้น้อยลง

Reuse

  • จัดทำ Reusable Libraries หรือ Shared Modules ลดความซ้ำซ้อนของโค้ดภายในโปรเจคและระหว่างโปรเจค
  • DRY (Don’t Repeat Yourself) ใช้ Free Open-Source Software (FOSS), Frameworks และ Libraries ของดีที่มีอยู่แล้ว

Reduce

  • ลดขนาดไฟล์ ลดจำนวนบรรทัดของโค้ด
  • สำหรับ Legacy Software ที่ใช้มานาน การโละเขียนใหม่อาจจะทำให้ใช้พลังงานได้อย่างมีประสิทธิภาพกว่า
  • ลดจำนวน Hardware ลง และใช้ Hardware ให้เต็มประสิทธิภาพและเต็มอายุการใช้งาน ดูแลรักษาเพื่อให้มีอายุการใช้งานที่ยาวนานขึ้น

What’s Next?

ผมสังเกตว่าในบริษัทเทคฯ ยักษ์ใหญ่แทบทุกบริษัท เขาจะมีฝ่ายงานและตำแหน่งงานเกี่ยวกับเรื่องของ Sustainability โดยตรง ดังนั้นการให้ความรู้ การสื่อสาร เครื่องมือต่าง ๆ และการผลักดันให้เกิด Design for Sustainability จะมีคุณภาพมากทั้งในแง่ปริมาณและคุณภาพ แต่เราอยากจะศึกษาด้วยตัวเองก่อนโดยไม่รอบริษัท ซึ่งแน่นอนผมสนับสนุนครับ และเช่นเคย ผมจะมาแนะนำแหล่งความรู้สำหรับผู้ที่สนใจไปเริ่มต้นศึกษา หรือจะเป็นการต่อยอดก็ย่อมได้ครับ

1. Green Software Practitioner ของ Green Software Foundation

Green Software Foundation องค์กรที่มีสมาชิกจากบริษัทเทคฯ ยักษ์ใหญ่ มีพันธกิจสำคัญในการคิดค้นและจัดทำมาตรฐานต่าง ๆ ในการพัฒนา Green Software และมี e-Learning บน The Linux Foundation เป็นคอร์ส LFC131: Green Software for Practitioners ให้กับผู้ที่สนใจโดยไม่เสียค่าใช้จ่าย เนื้อหาจะเป็นในลักษณะของความรู้ความเข้าใจพื้นฐาน คอนเซ็ปต์และความเป็นมาของคาร์บอน วิธีคำนวณเชิงคณิตศาสตร์ เชื่อมโยงกับกระบวนการพัฒนาซอฟต์แวร์บ้าง แต่ยังไม่ได้ลงลึกในส่วนของเทคโนโลยีหรือการเขียนโปรแกรมแบบเฉพาะเจาะจง เรียนแล้วได้ Badge บนแพลตฟอร์ม Credly ด้วยนะ แน่นอนว่าผมไปสอยมาเป็นที่เรียบร้อย

LFC131: Green Software for Practitioners

2. The Principles of Sustainable Software Engineering ของ Microsoft

e-Learning ของทาง Microsoft Learn ว่าด้วย 8 Principles of Green Software Engineering ที่ผมได้กล่าวถึงไปในตอนต้นของบทความ เนื้อหาจะคล้าย ๆ กับของ Green Software Foundation พอสมควร ซึ่งก็ไม่แปลกใจเพราะ Microsoft ก็เป็นหนึ่งในสมาชิกของ Green Software Foundation ด้วย

3. awesome-green-software on GitHub

Awesome Green Software on GitHub

ใครเป็นแฟนเพจ Awesome ทั้งหลายน่าจะชอบ เพราะ Awesome Green Software เป็นศูนย์รวมลิงก์ข่าวสารของเครื่องมือ บทความ งานวิจัยที่เกี่ยวข้องกับ Green Software โดยจัดเป็นหมวดหมู่ให้เลือกดูได้ง่ายอีกด้วย

4. The Original Website Carbon Calculator และ The Green Web Foundation

สำหรับใครที่พัฒนาหรือว่ามีเว็บไซต์ของตัวเองแล้ว อยากจะทดลองคำนวณค่าคาร์บอนของเว็บไซต์เรา สามารถเข้าไปที่เว็บ websitecarbon.com แล้วป้อน URL เว็บของเราเข้าไปทดสอบได้เลยครับ เว็บเขาแสดงผลลัพธ์ได้น่าสนใจมาก ๆ พร้อมทั้งมีบอกข้อเสนอแนะในการปรับปรุงด้วย ทีเด็ดคือสามารถทำเป็น Badge ไปแปะไว้ที่เว็บเราได้อีกต่างหาก แน่นอนผมไปลองกับเว็บของ KBTG มาแล้วได้ผลเป็นที่น่าพอใจ แต่ก็ยังมีสิ่งที่ปรับปรุงได้อยู่เยอะเหมือนกันครับ

Result of Carbon Calculator on www.kbtg.tech, as of May 2023
Examples of Carbon Badges from WebsiteCarbon.com

ส่วนของทางเว็บ Green Web Foundation นี่มีของเล่นคือ Green Web Checker ที่เราสามารถไปเช็คความ Green ของ Host ของเว็บไซต์เราได้ครับ รูปด้านล่างผมก็ได้ไปเช็คเว็บไซต์ของ KBTG มาก็พบว่า Host ไว้ Green มากทีเดียวเชียว

The result of Green web check for KBTG website

แต่ผมแนะนำว่าของเล่นพวกนี้ ถ้าจะนำผลลัพธ์ที่ได้ไปอ้างอิงต่อ ก็ควรศึกษาวิธีคำนวณของเขาไว้ด้วยนะครับ ^^

คุยกันช่วงท้าย มันมีช่วงเวลาหนึ่งที่ผมศึกษาข้อมูลเกี่ยวกับ ESG มากขึ้น ๆ ช่วงเวลาที่ส่วนหนึ่งของผมมีความรู้สึกว่าพวกเราเรือหายแล้ว เราติดลูปนรก ตัวอย่างง่าย ๆ เลยคือพอยิ่งร้อน เราก็ยิ่งใช้ไฟ พอยิ่งใช้ไฟ เราก็ยิ่งเผาผลาญเชื้อเพลิง ปล่อยคาร์บอนสู่บรรยากาศมากขึ้น แล้วพอคาร์บอนมากขึ้น ก็ยิ่งทำให้โลกเราร้อนขึ้น แล้วเราก็ยิ่งกลับมาใช้ไฟ… วนลูปไปอย่างนี้ แล้วเราจะออกจากลูปแบบนี้กันได้อย่างไร? ผมตระหนักเป็นอย่างยิ่งว่าสภาพแวดล้อมบนโลกของเรามันทรุดลงอย่างรวดเร็ว เพียงแค่ในหนึ่งชั่วอายุคน (เอาจริงผมยังไม่แก่มากนะ =w=) เรายังเห็นความเปลี่ยนแปลงไปได้ขนาดนี้ อีกส่วนหนึ่งของผมก็หวังเป็นอย่างยิ่งว่าเราจะร่วมมือกันแก้ไขได้ทัน

ผมหวังว่าเวลาที่ผมแก่จริง ๆ พื้นที่กรุงเทพฯ และอีกหลายจังหวัดในภาคกลาง คงไม่จมอยู่ใต้น้ำ ลูกหลานผมคงไม่ต้องอพยพไปอยู่แนวที่ราบสูงทางภาคเหนือหรืออีสานกันหมด และที่สำคัญผมยังอยากให้เรายังมีพื้นที่ที่สามารถเดินสูดอากาศบริสุทธิ์ได้ โดยที่ไม่ต้องใส่หน้ากากใด ๆ ผมเองอย่างน้อยขอเป็นส่วนหนึ่งเล็ก ๆ ที่ได้ร่วมกันแก้ไข บรรเทา และเยียวยาโลกใบนี้ แล้วคุณล่ะ?

Happy Green Coding!

สำหรับใครที่ชื่นชอบบทความนี้ อย่าลืมกดติดตาม Medium: KBTG Life เรามีสาระความรู้และเรื่องราวดีๆ จากชาว KBTG พร้อมเสิร์ฟให้ที่นี่ที่แรก

--

--

jo@sabotender
KBTG Life

principal DEVelopment eXcellence engineer — DEVX@KBTG / Full-time Daddy / Console Gamer & Gunpla Collector