[CR] Starbucks-Duo Delight

Duo Delight

  • ราคา 75 บาท
  • รสชาติ ตัวขนมปังมีลักษณะพิเศษกว่าแซนวิชอันอื่น แป้งมันจะคล้ายๆแป้งพิซซ่าครับโดยมีไส้ 2 แบบครับ ชอบตรงนี้
    • แบบแรก ไส้ไก่เครื่องเทศมายองเนส มีลูกเกดด้วย
    • แบบสอง ไส้เหมือน Egg-Salad ครับ
    • *รวมๆ แล้ว* ไส้น้อยไปนิดครับ แนะนำตอนกินควรขอซอสมะเขือเทศด้วยครับ อร่อยไปอีกแบบครับ
    • อ๋ออีกข้อครับ ชิ้นเล็กไปนิดครับ

Reference (พลังงานของแต่ละเมนู)

  • ยังหาไม่พบครับ แต่ถ้าพบแล้ว ผมจะมา Update ให้ครับ

[Jenkins] GIT Parameter fatal: Couldn’t find remote refs/heads/${BRANCH_ON_GIT}

หลังจากย้ายจาก SVN ไป GIT มันมีการแก้ Script ของ Automate Build ด้วยครับ มาดูพฤติกรรมของ Job Build กันก่อนไหมครับ

  • Job A : GIT_CONTROLLER_PIPELINE – โดยมีเรียก 1 Job ซ้ำกัน 3 ครั้ง ดังนี้
    • Job B: SOLUTION_GIT_PIPELINE – ส่ง Param สำหรับ SITE A
    • Job B: SOLUTION_GIT_PIPELINE – ส่ง Param สำหรับ SITE B
    • Job B: SOLUTION_GIT_PIPELINE – ส่ง Param สำหรับ SITE C

ปัญหา : มันเกิดขึ้นจากที่ Job A เรียก Job B ทำงานต่อ ตอนที่ส่ง Param ผ่าน Git Parameter มันเเกิด Error ดังนี้ครับ

Started by user admin
hudson.plugins.git.GitException: Command "git.exe fetch --tags --force --progress --prune -- origin +refs/heads/${BRANCH_ON_GIT}:refs/remotes/origin/${BRANCH_ON_GIT}" returned status code 128:
stdout: 
stderr: fatal: Couldn't find remote ref refs/heads/${BRANCH_ON_GIT}
   at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2450)
   at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2051)
   at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:84)
   at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:573)
   at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:365)
   at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:197)
   at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:173)
   at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:115)
   at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:69)
   at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:309)
   at hudson.model.ResourceController.execute(ResourceController.java:97)
   at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

การแก้ไข : ง่ายนิดเดียวเองครับ ใน Job Build ให้ติ๊กเลือก Lightweight checkout ออกครับ

[GIT] บน SVN มีเลข Revision แต่ใน GIT จะใช้อะไรแทน ?

ปกติแล้วตอน Build Program นอกจาก Stamp เลขเวอร์ชันตาม Tag หรือ ตามที่ผู้ใช้งานป้อนเข้าไปแล้ว ทางผมยังได้ใส่เลขอีกตัวนึง เพื่อเราไว้ค้นหาความจริงด้วยครับ

SVN ตัวเดิมๆ

  • SVN ตัวเดิมๆใช้คำสั่งตามนี้ครับ
svn info --show-item last-changed-revision
  • ผลลัพธ์ที่ได้จะเป็นตัวเลขของ Commit ซึ่งเป็นจำนวนเต็ม ที่ถูกอ้างอิงมาใช้ในการ Build ครับ

GIT เพื่อนใหม่หละ ?

  • ก่อนอื่นเลข GIT ไม่มีเลข Revision นะครับ ต้องของทดแทนครับ
    • วิธีแรก: ไม่มีเลข Revision ก็นับจำนวน Commit เลยและกัน
    • วิธ๊สอง: ใช้เลขของ Commit ของ Git ครับ แต่จะอ่านยากนิดนึงครับ
  • ทั้งสองวิธีมีข้อดี/ข้อเสียต่างกันครับ เดวลองมาดูในแต่ละห้วข้อย่อยๆกันครับ

– นับจำนวน Commit เลย

  • การนับจำนวน Commit ใน Git สามารถนับได้ ดัวยคำสั่ง
git rev-list --count HEAD
  • ผลลัพธ์ที่ได้ครับ
  • ข้อดี / ข้อเสีย
    • ข้อดี – อ่านง่าย
    • ข้อเสีย – อ้างอิงกับ Code ใน Repo มันยากครับ

– เลขของ Commit ของ Git ครับ

  • การดูว่า Commit ล่าสุดมีเลขอะไร จริงๆมันก็ไม่ใช่ตัวเลขนะออกจะเป็นการเข้ารหัสมากกว่าครับ โดยใช้คำสั่ง
git rev-parse HEAD
  • ผลลัพธ์ที่ได้ครับ
  • ข้อดี / ข้อเสีย
    • ข้อดี – อ้างอิงกับ Code ใน Repo มันยากครับ
    • ข้อเสีย – ผลลัพธ์ที่ได้มันยาวมากกกกกกครับ ถ้าจะเอาไปแนบใน Attribute ของ File จะมีข้อจำกัดอยู่ครับ
  • แถมจากข้อเสียใช่ว่ามันจะใช้ไม่ได้นะ – ตัดมันออกมาให้เหลือสัก 10-15 หลักแรกก็พอครับ ตัว GIT / GIT Lab มันเอาไป Search หา Commit นั้นใน Repo ได้อยู่ครับ
    • Linux Shell : ดึง GIT Commit และตัดให้เหลือ 10 ตัว โดยใช้คำสั่ง ดังนี้ git rev-parse HEAD | cut -c 1-10
    • Power Shell : ดึง GIT Commit และตัดให้เหลือ 10 ตัว โดยใช้คำสั่ง ดังนี้
      git rev-parse HEAD | % {$_.Substring(0,10)}
  • มาดูผลลัพธ์ของ Linux Shell กับ Power Shell กันครับ

[.NET] DevExpress เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข

สำหรับปัญหานี้เป็นปัญหาที่ท้าทาย และหาข้อสาเหตุของปัญหายากมากครับ เนื่องจากที่บริษัทได้ Upgrade ตัว DevExpress แบบก้าวกระโดดครับ

  • ของเดิมเวอร์ชัน 13.1
  • ชองใหม่เวอร์ชัน 20.2

ห่างกันตั้ง 7 เวอร์ชัน นอกจาก API ที่ถูกยกเลิก(Deprecate) แล้ว มันยังมี API ที่เพิ่มเติมเข้ามา ซึ่งมันไม่ได้บอกตอน Compile หรือตัว Tool ที่ Check Comparability ไม่สามารถตรวจสอบได้ครอบคลุมครับจึงเป็นที่มาของปัญหา

เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข

ปัญหาของเรื่องนี้ T__T
  • ปัญหาที่เกิดหลังใช้ DevExpress 20.2

แนวทางการแก้ไขปัญหา

  • ต้องย้อนอดีตกันก่อนครับ Dev Express 14.2 มันมี Export Engine ใหม่
    • WYSIWYG Export (ของเดิม) : จอแสดงอะไร ให้ในไฟล์ที่ Export ได้แสดงตามในจอได้ก็เพียงพอครับ
    • Data Aware Export (ของใหม่ Dev Express 14.2): เป็น Engine ที่ช่วยให้การ Export ข้อมูลในกลุ่ม Spreadsheet มันฉลาดขึ้นครับ อาทิ เช่น ถ้า Grid มีการ Sum ไว้ ใน Excel มันจะผูกสูตร Sum ให้เลยครับ สุดยอดไปเลยยย
  • เนื่องจาก Feature ใหม่ Data Aware Export ทำให้ตอน Export Excel ต้องมีการ Property เพิ่มสำหรับหน้าจอ Preview ที่ยังเป็น Mode WYSIWYG Export ต้องกำหนดค่า RepositoryItemTextEdit.XlsxFormatString เพิ่มเติมครับ มาดูตัวอย่างการใช้งานได้จาก Code ด้านล่างเลยครับ
public static void FormatGridColumn(GridView pGridView, GridColumn col, FormatType pColumnType, int pFormatCode, int pColumnWidth)
{
    if (pColumnType == FormatType.Numeric)
    {
        RepositoryItemTextEdit textEdit = new RepositoryItemTextEdit();
        col.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
        col.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Far;
        if (pFormatCode == FORMAT_PATTERN.CURRENCY_CODE)
        {
			textEdit.XlsxFormatString = "#,##0.00";			//Set Excel Export Format
			col.DisplayFormat.FormatString = "#,##0.00";
			col.DisplayFormat.Format = new NumberFormatter();
			col.DisplayFormat.FormatType = FormatType.Custom;
			col.Width = pColumnWidth > 200 ? pColumnWidth : 200;
		}
		else if (pFormatCode == FORMAT_PATTERN.RATE_CODE)
		{
			textEdit.XlsxFormatString = "#,##0.0000";		//Set Excel Export Format
			col.DisplayFormat.FormatString = "#,##0.0000";
			col.Width = pColumnWidth > 60 ? pColumnWidth : 60;
		}
	}
	else
	{
		//Do some logic 
	}
}

[CR] Starbucks-Mixed Roots Chips (Sea Salt Favor)

Mixed Root Chips (Sea Salt Favor)

  • ราคา 45 บาท
  • รสชาติ
    • เจ้า Roots หมายถึง มันครับ ซึ่งที่ผมได้ลองมา มีทั้งมัน (Potato) มันม่วง(Sweet Potato) และ มันเทศสีส้ม (Orange Sweet Potato)
    • ส่วนตัวผมว่าจืดไปนิดนึงครับ มันมีเกลือครับ แต่คิดว่ารสจะจัดกว่านี้ 555 แต่ทานเล่นได้เรื่อยๆครับ โดยสามารถทานคู่กับเครื่องดื่มได้หลากหลายแบบเลยครับ
    • พอหา Mixed Root Chips ผมเข้าใจว่าน่าจะเป็นการ OEM มานะครับ มีกันหลายร้านเหลือเกิน
  • พลังงาน 160 แคลลอรี่

Reference (พลังงานของแต่ละเมนู)

  • รอบนี้ไม่มี Link อ้างอิงนะครับ เอาจากข้างซองเลยครับ

[.NET] แก้ปัญหา Build แล้ว Error Your project file doesn’t list ‘win’ as a “RuntimeIdentifier”

blur close up code computer

Blog ตอนนี้ยังเป็น Blog ที่สรุปหลังปรับ Framework ขององค์กรครับ จาก Blog ก่อนหน้าที่ Error “The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located”

คราวนี้มาเจอ Error ใหม่ ที่มันกวนตีนกว่าเดิมครับ เพราะ มันเป็นบ้าง ไม่เป็นบ้าง และถ้า Build ผ่านตัว Visual Studio ไม่เจอนะ แต่ถ้า Build ผ่าน Command line พบเจ้า Error โผล่มาครับ

Your project file doesn’t list ‘win’ as a “RuntimeIdentifier”. You should add ‘win’ to the “RuntimeIdentifiers” property in your project file and then re-run NuGet restore.

ปัญหานี้เกิดจากอะไร

  • เกิดจาก Nuget แหละครับ บางทีมัน Restore Package มาไม่ครบทำ ทำให้ตอน Build มัน Error ขึ้นมาครับ

การแก้ไขหละ ทำอย่างไร ?

  • ทำให้ตัว Solution / Project ของเรา มันถูกสั่งให้ตรวจสอบ และ Restore Package / SDK ที่จำเป็นก่อนเหมือนกันตอนที่สั่ง Build ผ่าน Visual Studio ครับ โดยใช้คำสั่ง ดังนี้ ครับ
MSBuild -t:restore "<PATH TO SOLUTION / CS PROJECT" 
  • ตัวอย่างการใช้ครับ ของผมขออ้าง Path MSBuild.exe แบบเต็มๆเลยนะครับ ที่ถูกสั่งให้ Restore ไฟล์ WebAPI.sln ครับ
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe" -t:restore "D:\\APP\WebAPI.sln" 

Reference

[SW Process] มีกระบวนการที่ดี แต่ทำงานปัญหาเดิมยังอยู่?

มีกระบวนการที่ดี แต่ทำงานปัญหาเดิมยังอยู่? พอไปตรวจสอบเงื่อนไขการตรวจวัดต่างๆ มันก็ผ่านแล้วนะ ทำไหมหละ

ลองมายกตัวอย่างสักกระบวนการดีกว่า

ตัวอย่างกระบวนการที่ผมยกมานั้นเป็นกระบวนการบริการลูกค้า เมื่อเกิดปัญหาการใช้งาน Software โดยใช้ระบบ Ticket Management อย่าง Redmine / Jira เป็นต้นครับ โดยกระบวนการตัวอย่างผมมีรายการละเอียด ดังนี้

  • เมื่อลูกค้าพบปัญหาการใช้งาน Software เข้ามาใน Ticket Management โดยอยู่ในสถานะ New
  • ทีม Customer Support ได้การแจ้งเตือนว่ามี Incident ใหม่เข้ามาผ่าน Line และดึง Ticket นั้นเข้ามาตรวจสอบเปลี่ยนสถานะจาก New > CS Review และ ในช่วงนี้ Customer Support ต้องทำ
    • สรุปปัญหาที่เกิดขึ้น และข้อมูลจำเป็นว่า พบในเวอร์ชันไหน หน้าจออะไร อะไรที่ผิด และ อะไรที่ถูกต้อง รวมถึงข้อ Exception Message
    • พยายามหาวิธีการแก้ปัญหาเบื่องต้น (Work Around) และแจ้งลูกค้าให้รับทราบ และยอมรับวิธีการแก้ปัญหาเบื่องต้น ถ้าลูกค้า OK ทาง Customer Support เปลี่ยนสถานะจาก CS Review > Resolve ครับ
  • ในกรณีที่ CS ไม่สามารถแก้ไขปัญหาได้ ส่งต่อให้ทีม
    • ถ้าส่งให่ทีม Develop เปลี่ยนสถานะจาก CS Review > Dev Review
    • ถ้าส่งให่ทีม Business Analyst เปลี่ยนสถานะจาก CS Review > BA Review
    • เมื่อทีม Develop / Business Analyst หาวิธีการแก้ไขเบื้องต้นได้ หรือสรุปที่มาของปัญหาได้ ส่งให้ Customer Support ตรวจสอบ เปลี่ยนสถานะเป็น CS Review และแจ้งลูกค้า ถ้าลูกค้ายอมรับ และปรับสถานะสถานะ Resolve ครับ
  • สถานะ Resolve มีข้อกำหนดว่าต้องเปลี่ยนภายใน 1 วัน ไม่งั้นจะหลุด SLA ได้ครับ อันนี้มีระบบตรวจสอบทุกวัน และเก็บข้อมูล
  • หลังจากสถานะ Resolve ไปแล้ว สถานะถัดไป
    • ถ้าไม่ต้องแก้โปรแกรม Customer Support เปลี่ยนสถานะ Wait for Customer ลูกค้าเปลี่ยนสถานะเป็น Close
    • ถ้าแก้โปรแกรม Customer Support เปลี่ยนสถานะ Wait for Develop และ ทีม Develop เปลี่ยนสถานะเป็น Develop (แก้ Code) > Wait for Delivering (QA ตรวจผ่านแล้วรอส่งลูกค้า) > UAT (ติดตั้งที่ Site ลูกค้าแล้ว) ตามลำดับครับ
      • ถ้า UAT ผ่าน ลูกค้าเปลี่ยนสถานะเป็น Close
      • ถ้า UAT ไม่ผ่าน ลูกค้าเปลี่ยนสถานะเป็น Re-Open และทาง Customer Support มาเปลี่ยนสถานะเป้น CS Review ครับ
  • Note
    • นิยามของกระบวนการนะครับ ไม่รวมเคสที่ขอเปลี่ยนแปลงการทำงาน Change Request
    • การทำงานจริง Customer Support จะไม่ปรับสถานะ แต่จะเปลี่ยน Assignee แทน

หลังจากใช้กระบวนการนี้ไปปรากฏว่า

จำนวน Incident ไม่ลดลงเลย Incident คงค้างเพิ่มขึ้น แถมหลุด SLA (Resolve) อีก

Process ดูดีนะ แต่ทำไมมมมมหละ

นั้นแสดงว่า ปัญหาที่เกิดจากที่แจ้งมาเกี่ยวกับระบบไม่ได้ถูกแก้ไข โดยที่มีบาง Incident เกิน SLA บ้าง ไม่เกินบ้าง ลองมาหา Root Cause กันครับ

  • การทำงานจริง Customer Support ไม่ปรับสถานะ แต่จะเปลี่ยน Assignee
    • พบว่าการ Query ตรวจสอบงานนั้นยากกว่าเดิม และสับสนด้วย เพราะไม่รู้ว่า Incident ไหนถูกตรวจสอบไปแล้ว
  • การเข้าไป Audit Incident ที่ถูก Mark สถานะ Resolve (ลูกค้าสามารถยอมรับวิธีการแก้ปัญหาเบื่องต้น (Work Around) ได้) แต่จริงๆ แล้วพบว่า
    • มันไม่ได้แก้ปัญหาเลย ใส่แค่ว่าอยู่ระหว่างการหาสาเหตุ และดองมานาน จนอยู่ๆมาวันนึงก็ส่งต่อมาให้ทีมงานข้างหลัง แต่ไม่มีข้อมูลใดๆ ที่สามารถช่วยลดเวลาให้ทีม BA / DEV ที่เข้ามารับช่วงต่อได้เลย ดังรูป
    • หรือ ไม่จะเป็นอีกเคสลัดขั้นตอน ระบบตรวจสอบ SLA โดยการชิงเปลี่ยนสถานะ Resolve ก่อนจะครบเวลา 24 ชั่วโมง หรือ 1 วัน
    • ซึ่งการทำแบบนี้ มันแอบสร้างระเบิดเวลากับลูกค้าไว้ แล้วรอจนระเบิดออกมา เช่น ว่า ลูกค้าโวยว่า บริษัททราบปัญหาแล้ว ทำไมถึงไม่แก้ไข รอมา 3 เดือนแล้ว !!!
  • พอปัญหานี้มันสะสมมานานๆแล้ว สุดท้ายฝั่งทีมหลังบ้าน DEV / BA ต้องสละเวลามาจัดการกับปัญหา เพราะลูกค้าโวย หรือ ต้องปิดให้ได้ตามสัญญา่ เช่น 180 วัน ซึ่งมันจะไปส่งผลกระทบกับงานในส่วนอื่นๆได้ เช่น งาน R&D แต่ผู้บริหารไม่รู้นะว่ามาจากส่วนนี้

สรุป

  • ควรการตรวจสอบกระบวนการ เพื่อป้องกันผู้ปฏิบัติงานลัดขั้นตอน โดยใช้ขั้นตอนของกระบวนการเนี่ยแหละ ปรับเป็นประโยชน์ส่วนตัว แต่องค์กรจะแย่เอา
  • นอกจากนี้ควรหาสาเหตุด้วยว่าทำไมผู้ปฏิบัติงานลัดขั้นตอน เช่น
    • เวลาไม่เพียงพอ
    • ใช้ระบบงานที่ Support อยู่ได้ไม่คล่อง
    • ไม่เข้าใจปัญหาของลูกค้า
    • อธิบายสื่อสาร Flow งานกับลูกค้าไม่ชัดเจน และต้องให้ลูกค้านั้นยอมรับด้วย ยกตัวอย่าง เช่น นิยามของ Status Resolve
  • ควรการนำข้อมูลจากหลายๆแหล่งเข้ามาดูภาพรวมด้วยกัน อาทิ เช่น ทำไมทีม Support ตีความปัญหาจัดการปัญหาเบื้องต้นได้ทุก Incident แต่ทำไมทีมที่จัดการงานปลายทางถึงได้ใช้ Effort สูงขึ้นผิดปกติ
  • นอกจากการพัฒนากระบวนการแล้ว สิ่งที่หลายองค์กรมักลืมกัน คือ ตัวบุคคลที่ปฏิบัติงานเอง แม้ว่าทำตามกระบวนการได้ครบ แต่ถ้าไม่สามารถเข้าใจงานที่ทำได้ มันออกจะดูแย่ว่าหุ่นยนต์ หรือ AI บางตัวในสมัยนี้นะ ความรู้ความเข้าใจในงานจริงๆ ควรเข้าใจก่อน แล้วค่อยนำกระบวนการมาครอบอีกทีครับ

สุดท้าย

  • ลัดขั้นตอน = โกง แหละ
  • Blog นี้ บอกถึงปัญหาที่แท้จริงในการ Support แม้ Process จะสวยหรู แต่ถ้าผู้ปฏิบัติงานขาดความรู้และความเข้าใจในส่วนงานที่ตัวเองรับผิดชอบ ในที่นี้เป็นความเข้าใจใน Software ที่ Support แม้ว่าจะอธิบายกระบวนการได้ดีแค่ไหน แต่ปัญหายังคงค้างอยู่ หรือป่าว
  • อย่างที่บอก Process นี้ไม่รวมเคส Change Request ถ้าให้เล่าเดียวยาว เขีัยนได้อีกหลาย Story เลย 55555

[.NET] แก้ปัญหา Build แล้ว Error The build is configured to run SonarQube analysis

blur close up code computer

หลังจากปรับ Framework ของบริษัทให้เป็น .NET Standard เรียบร้อยแล้ว เมื่อทดสอบ Build ผ่านตัว Jenkins เกิด Error ดังนี้

The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located

ภาพรวมของ SonarQube Analysis นะครับ

ต้องเข้าใจก่อนนะครับ ว่าการวิเคราะห์ Code ของ SonarQube จริงๆ แล้ว มันแอบไปใช้งานตัว MSBuild.exe ครับ โดยมี 3 ขั้นตอนลำดับ ดังนี้

  • SonarScanner.MSBuild.exe begin
    • เปิดการเชื่อมต่อกับ SonarQube Server ครับ
    • และแอบไปเพิ่ม Config ให้กับ MSBuild.exe โดยจะไปเพิ่มไฟล์ SonarQube.Integration.ImportBefore.targets เพื่อใช้สำหรับขั้นตอนถัดไป (SonarScanner.MSBuild.exe analysis) ครับ ที่ Path %USERPROFILE%\AppData\Local\Microsoft\MSBuild\Current\Microsoft.Common.targets
    • ไฟล์ SonarQube.Integration.ImportBefore.targets ตัวเป็นๆครับ
    • แอบมาส่องไฟล์ SonarQube.Integration.ImportBefore.targets กันครับ
  • MSBuild.exe analysis
    • Build Project หรือ Solution โดยใช้ Config ที่ได้แอบไปแก้ไขใน MSBuild.exe ตั้งแต่ช่วง SonarScanner.MSBuild.exe begin
  • SonarScanner.MSBuild.exe end
    • เอาผลการวิเคราะห์ขั้นต้นที่ได้จาก MSBuild.exe ส่งไปยัง SonarQube Server ครับ
    • และปิดการเชื่อมต่อกับ SonarQube Server
    • รวมถึงลบ Config SonarQube.Integration.ImportBefore.targets ออกไปด้วย เพื่อไม่ให้ Build เพื่อจุดประสงค์อื่นๆเกิดปัญหาครับ

อะไรที่ทำให้เกิดปัญหานี้หละ

  • ตอนทำ Jenkins Step ลืมใส่ SonarScanner.MSBuild.exe end โดยแต่ละ Step ของ Sonar มันมีกระบวนการบางอย่างแอบไปเพิ่มใน MSBuild ครับ
  • เกิด Error ระหว่างที่่ทำ Sonar กำลัง Analysis ทำให้กระบวนการทำงานของ SonarQube ไม่สมบูรณ์ครับ

การแก้ไข

  • ลบไฟล์ SonarQube.Integration.ImportBefore.targets ออกจาก Path %USERPROFILE%\AppData\Local\Microsoft\MSBuild\Current\Microsoft.Common.targets

ในที่สุดสามารถ Build ได้ครับ สบายใจแล้ว Step ถัดไป มาไล่ Revise Flow ของ Automate Test ครับ

Reference

2020 ปีที่ยิ่งกว่า Y2K

ปีนี้เป็นปีที่มีอะไรที่พีคมากครับ ตั้งแต่ต้นปีเลยก็ได้ มันทำให้ย้อนนึกถึง เรื่อง Y2K ที่ตอนนั้นบอกว่าปี 2000 ระบบจะล่มหมด เพราะเก็บปีไว้เพียง 2 ตำแหน่งสุดท้าย แต่เราก็ผ่านมันมาได้ครับ มาสรุปแต่ละหมวดเมื่อเทียบกับปีก่อนๆ กันดีกว่าครับ

โควิด-19 (COVID-19)

  • เปลี่ยนวิถีชีวิตจริงๆนะ ทำให้เกิด New Normal
  • เกิด Digital Transformation ที่แท้จริง
    • Work From Home
    • Video Conference เช่น Zoom / MS Team เป็นต้น
    • VPN สำหรับคนอื่น อาจจะเป็นเรื่องใหม่ แต่ของผมใช้งานมาประจำและ 555
  • ทำให้บางเรื่องที่มันทำได้ยากกลับง่าย หรือยิ่งซับซ้อน

เรียนจบไหมนะ

  • เรียนจบ ป โท แล้วนะ มันก็รู้สึกแปลกๆนะ เอาจริงๆ มันว่างๆมาเกือบๆ 2 เดือน แล้วถึงจะมาสอบจบ
  • รับปริญญาเรียบร้อยแล้ว
  • ถ้าอยากรู้อะไรสามารถมาดูได้ในหมวด CUSE / Master Degree ได้ครับ
  • ปีนี้หลังเรียนจบมีไปเรียน Coursera มา 7 Course ครับ ได้มุมมองใหม่ๆของ Software Engineering เหมือนกันนะ เรื่องนี้ว่างๆ น่าจะมาเขียน Blog สรุปอีกทีนะ

เรื่องสุขภาพ

  • ปีที่ 2019 ที่เคยบอกไว้ว่าเคยน้ำหนัก 84 kg แล้วลดเหลือ 80 kg
  • แต่หลังจากโหมทำงานหนัก + ปั่นเรื่องเรียน ป โท และมี Work From Home ด้วย จาก 80 kg มันเลยพุ่งไปที่ 86.7 kg
  • หลังจากสอบจบ ป โท และปิดโครงการ Investment (IFRS9) มันถึงจุดที่ต้องตัดสินใจแล้วครับ เพราะ ค่าตับมันไม่ลดลงเลย แถมเพิ่มขึ้นอีกรอบนี้ผมเลยลงทุนสมัคร PT หรือ Personal Trainer ไปครับจำนวน 2 Course ครับ ราคา Course ละ 12,000 บาท หมดเงินไป 24,000 บาท เพื่อลดน้ำหนัก และมีคนสอนเล่น คุมอาหารอย่างถูกวิธีครับ ผลของมันคุ้มค่านะ
    • ค่าตับลดลงอย่างมีนัยยะสำคัญเลย – คุณหมอประกาศออกไมค์เลย
    • นำหนักหลัง Work from Home 86.1 kg ตอนนี้น้ำหนักประมาณ 74-75 kg ครับ
  • ปีนี้อายุ 30 แล้ว มีทำประกันชีวิต ดกับประกันสุขภาพเพิ่มเติมด้วยครับ
  • GOAL2021 : ลดนำหนักให้เหลือ 65-68 kg ครับ / %Fat เหลือ 18% ครับ

เรื่องงาน

  • ปัญหาที่ผมบ่นไปใน Year in Review 2019 สรุปแล้ว
    • ปัญหาเดิมยังคงอยู่ครับ สาเหตุหลักๆ เกิดจากที่เราไม่คุยกันเอง ไม่จำ State ล่าสุดกัน
    • ปีนี้คิดว่าเรื่องบ่นยังเยอะเหมือนเดิม แต่เรื่องด่าน่าจะลดลงกว่าเดิมเยอะนะ นับที่กระทบกระทั่งจังๆกับทีมอื่นมีอยู่ 1-2 รอบ ปีที่แล้วมีเกือบทุกสัปดาห์ครับ 555555ฃ
    • สำหรับปัญหาที่ผมบ่นด้าน Support เริ่มรู้สึกว่ามันเข้าท่าขึ้นมาเล็กน้อยจากเดิมที่ต้องมาตามตลอด เช่นพวก
      • What – เวอร์ชันที่เกิดปัญหา
      • Where- หน้าจออะไรที่มีปัญหา
      • When – ปัญหาเกิดตอนนี้ มีจุดสังเกตุอะไร
      • User Expected – ค่าที่ถูกมีอะไร
      • แม้ว่าจะใส่มาบ้าง ไม่ใส่บ้าง แต่โดยรวมๆจากเดิมที่ผมมองว่าติด ลบ ตอนนี้คะแนนกลับมาด้วยบวกบ้างเล็กน้อยยและ
      • อาจจะเพราะว่าปัญหาที่บ่นถูกดันเข้าไปเป็น Process ขององค์กรด้วยมั้ง
  • หลังจากบ่นไปเยอะได้หมวกมาอีกใบใน CMMI เป็น CMMI V2.0 Appraisal Team Member (ATM) ถ้าอยากรู้รายละเอียดว่าสอบอย่างไรลองอ่าน Blog ผมได้เลยครับ
  • ปีนี้ได้เข้ามาดู โครงการที่ Deal กับลูกค้าเต็มๆ 2 โครงการ
    • โครงการ Investment (IFRS9) – เป็นโครงการที่ Business เข้มๆ และมี Deal เรื่อง Interface กับระบบงานอื่นๆด้วย เน้นคุยกับ End-User นอกจาก Business แล้ว งานนี้มีลูกเล่นอยู่นะ การเชื่อมต่อ VB6 กับ .NET โดยใช้ NamePipe
    • โครงการเปลี่ยน HW มันเป็นการแบบคนละขั้วกับอันแรกเลยครับ มีแต่งานด้านเทคนิคเน้นคุยกับ IT ที่เปลี่ยนอะไรไปเยอะเหมือนกันนะ เช่น
      • ย้ายจาก AIX (CPU Power) มาเป็น RedHat Enterprise Linux (CPU x86)
      • นำ Container มาใช้ หลายคนอาจจะคิดว่าเป็น docker แต่เจ้า docker แต่เจ้า docker เองมีปัญหาเรื่องการใช้ daemon มัน required สิทธิเยอะ แต่อันนี้ลองใช้ podman ที่เป็น rootless container แทนครับ
      • เดียวระหว่างปีหน้าน่าจะมี Blog ที่เกี่ยวกับ Container + Podman มาเรื่อยๆครับ
  • สำหรับงาน Research ข้างใน
    • ยก Module ที่คิดว่ายากได้ขึ้นมาอีก Module กับน้องครับ
    • Automate Test เริ่มทยอยทำแล้วครับ ^__^
    • ย้ายเทคโนโลยีจาก .NET 4.7.2 มา .NET Standard กับเข้ามาดู .NET Core WebAPI บ้างและ
    • มีการใข้ NuGet
    • ผมได้ลองใช้ Git แบบถูกต้องสักที จากเดิมที่ทำแบบไม่ดี Push เข้า Master อย่างเดียว ตัว Thesis จบผมก็เล่นแบบนี้ 555
    • แต่ปัญหาก็มีนะ บางอย่างเราไม่รู้ แต่ต้องไปคุมน้องทำให้ต้องทำการบ้านเยอะเหมือนกันนะ อย่างเรื่อง Container เนี่ย หรือแม้แต่ตัว Spring Boot ที่เคยคิดว่า Thesis เราทำ Spring Boot เหมือนกันนะ พอดู Code ที่น้องเค้าเขียนมันซับซ้่อนกว่าเยอะเลย
  • ภาพรวมของปีนี้ ประชุมมากกว่า ทำเอง เน้นสั่ง และติดตามผลมากกว่า ซึ่งมันก็ขัดใจหลายเรื่องที่อยากลงมือทำเองครับ
  • GOAL2021:
    • ลอง Container / Podman น่าจะมีจุดที่ใช้ดูอีกนะ แม้ว่าจะงมๆกับมันมาน่าจะ 3-4 เดือนและ
    • อยากศึกษาพวก Spring Boot มากกว่านี้ และลองทำ Front-End บ้าง
    • ไม่เอางานมาทำวันหยุดและ รอบนี้ถ้าคนอื่นรับมาคงทำในวันปกติและ ร่างกายไม่ไหวจริงๆ

การเงิน

  • ปีนี้แย่ครับ ยังคงเหมือนปี 2019 ครับ ค่าใช้จ่าเยอะพอตัวเลย โดยมาจากหลัก
    • โควิด-19 : งานสะดุด เงินสะดุดกันหมดครับ
    • ค่าใช้จ่าย ป โท : นอกจากค่าเทอม / ค่าใช้จ่ายสำหรับงานรับปริญญาแล้ว ยังมีค่าใช้จ่ายจุกจิอื่นๆอีก
    • ค่าใช้จ่ายด้านสุขภาพ : ค่าฟิตเนส อาหารคลีน และจุกจิ
  • ค่ารถตอนนี้ถ้าออกจาก บ ตอน 19:30 เป็นต้นไป อันนี้ยอมนั่ง Taxi และรอรถเมล์ไม่ไหวจริงๆ มันเหนื่อยล้ามาก
  • การลงทุนปีนี้ เพราะกลัวไปหมดเลยไม่กล้า
    • กล้าที่จะไม่เสี่ยงเอาเงินทุนไปลงกับตลาดหุ้นตอน 1,100 จุดตอนช่วงเดือน ก.พ-เม.ย 63 เพราะห่วงค่าเทอม ป โท กับโควิด-19
    • ลงทุน RMF/SSF น้อยไป แม้ว่าจะ DCA แล้ว
    • ลงทุนด้านสุขภาพ เพราะกลัวด้วย มีซื่อประกันชีวิต ประกันสุขภาพ ประกันโควิด-19
  • สัดส่วนเงินเก็บ จากเดิมที่เละเทะหมดตอนนี้กลับมาอดออมอย่างมีวินัยแล้วมั้ง แต่ยังสู้สมัยที่ทำงานตอนแรกๆไม่ได้ที่จะออม 55% ตอนนี้เหลือ 20% แทน
  • เป้าหมายที่จะเก็บเงินถึงล้าน ตอนนี้ถึงแล้วครับ ไม่มีหนี้ก็จริง แต่ก็ไม่มีสินทรัพย์อะไรเป้นของตัวเองเท่าไหร่เลย พวกรถ / บ้านอะไรงี้
  • รายได้เสริม อันนี้มี Google AdSense อันนี้เริ่มาสนใจตรงนี้แบบทางการและ หลังจากปลอยมันไปตามยถากรรม
  • GOAL2021:
    • สัดส่วนเงินออม อย่างให้ได้สัก 60% ของเงินเดือน
    • วางแผนเรืองรถ / บ้านได้และ
    • Google AdSense อยากได้เดือนละ 15-20 USD จัง

จิปาถะ

  • ตอนนี้อายุ 30 ปีแล้ว
  • ทำงานมา 7 ปีกว่าๆเกือบๆ 8 ปีแล้ว
  • อยากมีแฟนแล้ววววววววววววว ขอให้เจอสักทีแง่มๆ ชอบคนตัวเล็กนะ โอชิ Jane BNK48 ^__^

Blog น้อยๆอันนี้เปลี่ยนแปลงไปอย่างไรบ้าง

[CUSE] คำแนะนำในการเรียน หลังจากเรียนจบมาแล้ว

ฺBlog เรื่องนี้น่าจะใช้เวลาเขียนยาวที่สุดแล้วนะครับ มันเป็นการรวมประสบการณ์ และสรุปในมุมของผมนะครับ

ส่วน Question & Answer

Q: จำเป็นไหมที่เรียนสาขานี้ แล้วต้องจบปริญญาตรีด้าน Computer (IT, ComSci, ComEng) มา ?
A: ไม่จำเป็นครับ แต่ควรมีประสบการณ์ที่เกี่ยวกับการทำ Software จริงๆ เพราะ ตอนเข้ามาเรียนมีศัพท์ใหม่ๆเยอะมากกกกกกกกกกก ถ้าคนที่ไม่เกี่ยวกับ Domain ด้านนี้มาเรียน มางงแล้วไปยากครับ

  • ผมเคยเจอคำถามว่า Server คือ อะไร ? / Log คือ อะไร ?
  • ถ้าเรียนนอกเวลาด้วยแล้ว ต้องหาเวลาทวนที่สอน และเรียนรู้สิ่งที่ คนที่ทำงานเกี่ยวกับ Sofeware ควรมีครับ
  • พอเรางงแล้ว มันจะมีปัญหาเรื่องงานกลุ่มครับ ที่นี่งานกลุ่มเยอะมากกก ถ้าเราตามเพื่อนไม่ทัน คนในกลุ่ม ไม่กล้าเสี่ยงที่ให้งานไปทำครับ เพราะ ไม่อยากมานั่งโต้รุ่งทำในส่วนที่ขาดไป
  • หลังจากมืนเต็มที่แล้ว จะมีปัญหากับการสอบครับ

Q: มาเรียนคนเดียว หรือมากับเพื่อนดี ?
A: แนะนำให้มากับเพื่อนครับ เพราะ อย่างน้อยเราจะมี Buddy ที่เรารู้จักกันดี ในการทำงานกลุ่มครับ เพราะ ทุกคนมาจากหลากหลายทีครับ การจะจูนให้เข้าขานั่น ให้เวลาพอสมควรเลย สำหรับงานกลุ่มหนักในการเรียน Coursework ในช่วยปี 1 ครับ หลังจากนั้นเป็นงานเดี๋ยวแล้วครับ

Q: ภาษาอังกฤษ จำเป็นมากไหม ?
A: จำเป็นมากครับ เพราะ ทุกวิชามีการอ่าน Paper/Textbook ซึ่งตัว Paper/Textbook เป็นภาษาอังกฤษครับ (ส่วนตัวหงุดหงิดกับคนในกลุ่มเหมือนกัน ที่พยายามเลือก Paper ที่มีจำนวนหน้าน้อยๆ และไม่เอา Coding แต่เราเรียน Software Enginering นะ)

Q: งานกลุ่มมีเยอะไหม ?
A: สำหรับคนที่เรียนแบบนอกเวลาราชการแล้ว ทุกวิชาที่เป็น Coursework มีงานกลุ่มหมดนะครับ ไม่มีงานเดี๋ยว (แต่ถ้าเรียนในเวลา งานบางชิ้นอาจารย์ให้ทำเดี๋ยวนะครับ เพราะมองว่ามีเวลามากกว่าคนที่เรียนนอกเวลา)

Q: แผน ก หรือ แผน ข ดีหละ
A: ถ้าใครเรียนเพื่อทำงานจริงๆ ใจแข็งแผน ข ครับ เพราะ Scope งานอะไรน้อยกว่าเยอะครับ แต่ต้องระวัง

  • Scope จาก อจ ที่ปรึกษาครับ บางที่แผน ข เหมือนแผน ก เลยครับ กดดันมากด้วย เคสผมไปเรียนแบบไม่ถามชาวบ้านเลย เลยไม่ค่อยรู้ Style ของ อจ ที่ปรึกษา แต่ละท่าครับ ถ้ารู้มาก่อนจากเพื่อน หรือ อะไร เค้าจะรีบหา อจ ที่ปรึกษาตั้งแต่เนิ่นๆแล้วครับ มาหาตอนหลังๆมันจะไม่ได้คนที่มีเหมาะกับเราครับ
  • แต่ถ้าต้องการเรียน ป เอก ต่อ ยังไงก็ต้องแผน ก นะครับ
  • ส่วนตัว ถ้าย้อนเวลากลับไปได้ น่าจะคงเป็นแผน ข นะครับ เพราะรุนหลังๆ อจ หลายท่ายอมรับแผน ข แล้วครับ

Q: นอกเวลา ต่างกับ ในเวลาราชการอย่างไร ?
A: เดี๋ยวผมขอ List เป็นข้อๆ แล้วกันนะครับ

  • ค่าเทอม แน่นอน ในเวลาราชการถูกกว่าครับ
  • วิชาเรียน ถ้าเรียนในเวลาราชการมีวิชาให้เลือกมากกว่าครับ แต่ถ้านอกเวลาราชการ จะอารมณ์กึ่งบังคับ เพราะ บางวิชาเปิดปีเว้น ปีครับ ถ้าอยากเรียนก็ต้องรอครับ

Q: การติวหละ
A: อย่าทำแบบตอนเรียนปริญญาตรีมาเด็ดขาดนะครับ มาแบบหัวโล่งๆ การติว มันคือ การเติมเต็มครับ ควรเตรียมตัวมาก่อน เพราะ ถ้าเราอ่านเอง มันมีจุดที่หลุดไปแน่ๆ การติวเป็นการ Cross Check ครับ

Q: ทำงานไปเรียนไป เหนื่อยไหม
A: เหนื่อยมากครับ แต่ต้องดูที่ทำงานด้วย อย่างเพื่อนที่เรียนด้วยกัน บางคนงานชิวๆ แต่สำหรับ Developer อย่างผม เวลาไม่เคยพอครับ ต้องพยายามจัดให้เวลาเรียนกับเวลาทำงานมาชนกันครับ เวลาสำคัญมากครับ อย่างของผม เริ่มตัวเองก่อน ถ้าไม่มีงานกลุ่มอะไร จะเตรียมทำสรุปตั้งแต่เนิ่นๆเลยครับ เวลาสอบจะได้ไม่ติดปัญหาว่าทำ Term Project และก็สอบ

Q: ทำงานไป เรียนไป มีปัญหากับบริษัทไหม ?
A: มีครับ หลายเรื่องเลยครับ

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

Q: เวลาเพียงพอไหม ?
A: ไม่พอครับ ถ้าไม่ได้แบ่งดีๆ ถ้าดูจากที่ผมบ่นเรื่องงานแล้ว Q&A แบ่งเวลาให้งานแล้ว อย่าลืมดูครอบครัวด้วยนะครับ ของผมเจอช่วงนึงคุณแม่ป่วยต้องเข้าโรงพยาบาล ต้องมาดันให้เรียนจบกันไปครับ

Q: เข้ามาแล้ว มีลาออกไปไหม ?
A: มีครับ อย่างรุ่นผมที่เข้ามาตอนเทอม 2 เข้ามา 10 คน แต่หลัง Midterm ของเทอมแรกผ่านไป เหลือ 4 คน (น่าจะเป็นแล้วแต่รุ่นนะครับ) ถ้าลาออก ไม่เรียนแล้วควรแจ้งเพื่อนๆในกลุ่มที่เราทำงานด้วยนะครับ เพราะมันมีผลกับการแบ่งงานนำเสนองาน จากประสบการณ์ส่วนเจอคนที่แบบว่าอยู่ๆหายไปเลย ทำให้ต้องมาเผางานส่งกับในคืน หรือ ก่อนจะ Present เลย

Q: หน้าที่การงานกับการเรียนปริญญาโทหละ ?
A: ส่วนตัวมองว่า การเป็น Junior กึ่ง Senior แล้วมาเรียนจะเหมาะสมที่สุดครับ เพราะ เวลาเราเรียนไป เวลาเดินไป และหน้าที่การงานของก็ก้าวหน้าขึ้นไปครับ

  • อย่างเคสของผม ไปๆมาๆ หน้าที่การงานเพิ่มขึ้นจนได้กลับบ้านช่วง 3 ทุ่มกว่า ถึง 4 ทุ่ม จนกลายเป็นเวลาปกติที่เลิกงานของผมในช่วงปี 2018 ครับ
  • อีกทางนึง คือ เลือกบริษัทที่สนันสนุนการเรียนครับ ถ้าให้ทุนได้ยิ่งดีเลยครับ

Q: งานกลุ่มหละ เป็นไงบ้าง เจออะไรแย่ ดราม่าไหม
A: คนมาจากหลายที่ครับ ยังไงเรามีโอกาสเจอคนที่ดีมากๆ และคนที่แย่สุดๆ

  • บางครั้งเราต้องเป็น Leader นะ เพราะ ถ้ามีคนเก่ง แต่ไม่มีคน Lead ปัญหา คือ งานจะไม่เดิน หรือเดินไปกันคนละทาง
  • อะไรที่ทนได้ ทนครับ อย่าดราม่ามาก กลุ่มไหนไม่ดี เราก็เปลี่ยนกลุ่มครับ คิดไว้ว่างานกลุ่มทำไปไม่ได้เงิน อย่าไปเครียดกับมันมากครับ
  • งานกลุ่ม อย่าลืมทำ check list นะครับ ส่วนตัวเคยทดลองในวิชานึงรอบแรกทำ check list เอาไว้ใน Google drive กับไม่ทำ ปรากฏว่า งานที่ทำ Check List ดูตรงกับความต้องการของ อ มากกว่า ส่วนแบบที่ 2 งานไปคนละทิศทางเลย
  • เอ็นดูเขา เอ็นเราขาดครับ ผมเองเคยเจอเคสที่ว่ามีคนที่ไม่ช่วยงานกลุ่มเลย เน้นงาน Thesis ตัวเอง สุดท้ายเค้าจบ 2 ปี ส่วนเรา 3 ปี เซ็งมากๆครับ
  • งานกลุ่มจำนวนคนมีความสำคัญนะครับ – อย่างกลุ่มผมมีสมาชิก 5 คนทำงานได้จริง 4 คน กลับกลุ่มที่มีสมาชิก 6 คน ทำงานทุกคน เนื้องานมันต่างกันมากครับ

ข้อคิดอื่นๆ นอกจากในส่วน Q&A

  • Project Management เรียนแล้วเอามาปรับใช้จริงด้วยนะ เพราะหลายๆครั้ง เราไม่สามารถเห็นปัญหาอะไรที่เป็น Critical Path ได้ แล้วมาเป็นหมีแพนด้ากันช่วงใกล้สอบ ทั้งที่ความจริง มันมีเวลาว่างเยอะมากกกกกก ในการจัดการ แต่ไม่เอาเวลานั้นมาใช้งานให้เหมาะสม
  • งานเอกสาร – หัดได้หัดครับ เพราะมันมีต้องทำรายงาน ไม่ได้เน้นสวยนะครับ แต่เน้นความเป็นมืออาชีพ อาทิ เช่น การจัดเลขหน้า และ
  • เรียนปริญญาโทแล้ว – แบ่งเวลาให้เป็นด้วยนะครับ เคยเจอบางคนเรียน กับไม่เรียนพฤติกรรมเหมือนเดิม มันจะซวยที่งานกลุ่มนี่แหละ เช่น อยากไปงาน Concert ถ้ารู้ว่าตัวเองมีกำหนดการณ์อยู่แล้ว ควรจะทำงานให้เสร็จ แล้วบอกสมาชิกลุ่ม ไม่ใช่หายไปจนเพื่อนที่เหลือมานั่งเผาทั้งคืน
  • เรียนทีนี้ก็ดีอย่างนึงนะ เพื่อน อจ ไม่ได้สอน/เรียนอย่างเดียว มีสังเกตุด้วย ว่าใครเป็นยังไง ช่วยๆกันครับ

ทำ IS หรือ Thesis ภายใต้รอยยิ้มนั้นมีน้ำตาซ่อนอยู่

  • ที่มาของหัวข้อมีหลายแบบครับ
    • หัวข้อที่ทำต่อจากเพื่อน/รุ่นพี่ ถ้าคนก่อนหน้าทำไว้ชัดเจน สามารถต่อยอดได้ง่ายครับ
    • แต่ถ้าทำไว้แต่ไม่ชัดเจน อันนี้ลำบากครับ ส่วนตัวมองว่าของตัวเองจะเข้าข่ายเคสหลังครับ ต้องมาเขียนคำอธิบาย และทวนงานเก่าเยอะอยู่ครับ
    • หัวข้อที่ อจ คิดไว้แล้ว อันนี้ง่าย แต่ต้องคุม Scope
    • หัวข้อที่คิดเอง – อันนี้คุยกับ อจ ยากนิดนึง ต้องอธิบาย
    • สุดท้ายขึ้นกับ Scope ครับ ว่าระว่างทางนิ่งไหม หรือเพิ่มขึ้นเรื่อยๆ หรือ วนไปวนมา
  • บางคนทำเรื่อง
    • ที่ไม่ชอบ แต่มันเป็นแนวที่จบง่าย เพราะไม่มีใครทำกัน มันก็เลยจบง่ายสอบสะดวกก็มี
    • ทำเรื่องที่ชอบ แต่โดนบิตๆ Scope ไปจนไม่ชอบ
    • หรือ บางคนได้ทำเรื่องที่ชอบ และมี Passion ในการทำกับมันครับ
    • ยังไงก่อนเลือก อจ ที่ปรึกษาตรวจสอบ ถามเพื่อนๆพี่ๆที่ทำมาก่อนนะครับ
  • งานเอกสาร – ทำของตัวเองให้ดีนะครับ ไ่ม่ใช่ทำชุ่ยๆ แล้วเอามาสร้างภาระให้ อจ หรือ ให้เพื่อนที่ อจ บอกให้ช่วยตรวจมาตรวจทาน มันอ่านแล้วหงุดหงิดมาก
  • การนำเสนอ – ได้ถูกบังคบัให้ทำครับ พูดดีช่วยให้ผู้ฟังเข้าใจง่ายด้วยครับ อย่างผม จะเจอปัญหาว่าผมคุยกับคอมได้ดีกว่าคนครับ ตอนนำเสนอลำบากอยู่ 555 แต่เรื่องนี้สำคัญจริงๆนะ เพราะเพียงคำพูด การนำเสนอบางคนกรรมการลด Scope ให้ แต่ถ้าพูดไม่ดี Scope มันจะเพิ่ม หรือ โดนคำถามเยอะครับ
  • ภาษาอังกฤษ – นอกจากอ่านแล้ว เรื่องการเขียนก็สำคัญนะครับ อย่าลืมนะ ว่าต้องมีการเขียน Paper เพื่อนำเสนอในงาน Conference หรือ เขียน Journal
  • พวกที่หายไปหลายนานๆ แล้วโผล่มาเวลาสุดท้าย อันนี้คุณควรเกรงใจคนอื่นที่เค้าเข้าคิวทำงานเรื่อยๆมาตามปกตินะ มันกลายเป็นว่าคุณไปแทรกคิวคนอื่น และอาจจะทำให้ อจ และคนอื่นต้องมาร่วมลำบากดันคุณให้จบไปด้วย
  • เอ็นดูเขา เอ็นเราขาด
    • เพื่อนร่วม Lab ตามได้ ควรตามระดับนึง ไม่ต้องตามมาหรอก โตแล้วควรรับผิดชอบได้แล้ว
    • อย่างผมแอบเซ็งเหมือนกันที่ไม่กล้าขอ อจ อีกรอบ เพื่อให้จบเร็วขึ้นอีกเทอม เพราะมันมีเคสของเทอมถัดมาที่มีเพื่อนลองขอหลายรอบแล้ว อจ ยอมสำเร็จประหยัดเงินไปได้เยอะอยู่ครับ

สำหรับผมแล้วท้ายที่สุดที่ได้เรียนมา

  • ถ้าย้อนเวลากลับไปได้คงเลือก แผน ข และถ้าย้อนเวลากลับไปได้อีกคงไม่เรียนครับ เพราะ
    • สิ่งหนึ่งที่พบในการพัฒนา Software เรื่องของคนครับ มันใช้ Soft Skills มากกว่าในการจัดการปัญหาครับ เอาเรื่อง Technical เข้มๆไปคุยมนช่วยไม่ได้นะบางครับ
    • ใช้เวลาเรียนมากกว่าที่คิด มันเสียเงินมากกว่าที่วางแผนไว้ ทำให้แผนการจัดการเรื่องเงินของผมบิดเบี้ยวไปในส่วน 3-4 ปีนี้ครับ
  • ได้รู้จัก
    • เพื่อนใหม่ สังคมใหม่ และโลกที่กว้างกว่าเดิม ได้เห็นอะไรที่มากกว่าโลกที่ตัวเองเคยอยู่ครับ อย่างผมเนี่ยได้เจอโลกหลายใบเลยครับ กับคนมาจากหลายหลากอาชีพครับ
    • เทคโนโลยีใหม่ หรือ หัวข้อใหม่ๆ อย่างผมนอกจะเชี่ยวเรื่อง Testing ยังไปเชี่ยวด้วย BPMN Engine อีกครับ ก็ต้องลองดูครับว่าในไทยจะมีงานด้านนี้ หรือป่าวครับ
    • Limit ของตัวเอง ที่ควรรู้ว่าอะไรควรถอย อะไรสู้ต่อ ต้องมีการวางแผน และจัดสรรเวลา
    • หัดนำเสนอ / ทำ Slide ซึ่งมีประโยชน์กับงานที่ทำด้วยครับ
    • สรุปเขียน Blog แชร์ประสบการณ์ต่างๆ ที่เรียน ป โท