"Fly high but don't fly alone"
JIRA vs Trac vs Redmine
2 Aug 2010 03:25   [11688 views]

โปรเจคตอนนี้เยอะเกินไปละ (จริงๆเยอะนานละ) ต้องการเครื่องมือเพื่อช่วยเหลือการจัดการโปรเจคแบบด่วนๆ ก่อนหน้านี้เคยใช้ JIRA ตัว Project Management แบบโปรๆ...​ แต่ผลคือโปรเกินไปและมีแต่ปัญหาๆๆๆๆๆ เมื่อคืนเลยใช้เวลาทั้งคืนในการปล้ำกับ Trac ซึ่งเป็น Project Management แบบฟรีและเบาที่เขียนด้วยงู Python


แต่หลังจากลง Trac เสร็จและเล่นกับมันสามสี่ชั่วโมงก็พบว่า... มันก็ไม่ได้ลงง่ายหรือใช้ง่ายอะไรนักหรอก กว่าจะทำโน่นทำนี่ได้ต้องลง Plugin เป็นแสนตัวเลย ก็เลยมาตบท้ายด้วยการลง Redmine ซึ่งเป็น Project Management อีกตัวที่เขียนด้วย Ruby on Rails


สรุปคือตอนนี้ซัดไปแล้วสามตัวเหนาะๆ จะมาเทียบและแนะนำให้ฟังกันว่าถ้าจะใช้เนี่ย ใช้ตัวไหนดี



JIRA

อย่างที่บอกว่าตัวนี้โปรมาก... โปรเกินไป -_- ระบบทั้งหมดทำจาก Java ซึ่งเป็น Java จริงๆไม่ใช่ Javascript ดังนั้นมันจึงโหดมากอย่างหลีกเลี่ยงไม่ได้!!


JIRA ไม่ได้มาตัวเดียวแต่มาพร้อมกับ Plugin "ที่จำเป็น"...​ (ประมาณว่าถ้าไม่ลงก็ไม่มีประโยชน์ที่จะใช้... แล้วทำไมไม่รวมกันไปเลยฟระ!!!!!) โดยที่ใช้กันเยอะๆคือ FishEye เอาไว้เชื่อมกับ Version Control แบบต่างๆไม่ว่าจะเป็น svn, git ฯลฯ แล้วก็มี Bamboo ที่ทำให้สามารถสร้าง Agile Flow ได้


ดังนั้นข้อเสียแรกก็มาเลย (มาถึงก็พูดข้อเสียเลยนะ) ... ลงยากมากกกกกกกกกกกกกกกกกกกกกก มากจริงๆ ต้องอ่านเอกสารเป็นปึกๆ ถ้าพิมพ์ออกมาก็หลายสิบหน้าหละ ทั้งนี้เพราะต้องลงหลายตัว (บ่นอีกทีได้ป่ะ ทำไมไม่รวมกันไปเลยฟระ ป๋ำเป็ด!!)

ตอนโปรเจคที่แล้วเราใช้เวลาลงราวๆ 1-2 อาทิตย์เต็มๆ ก็ยอมรับนะว่าตอนนั้นโง่ด้วยแหละ แต่อีกส่วนก็ยอมรับอีกอ่ะว่าระบบมันทำมาซับซ้อนเกินไปจริงๆ เราต้องลงใหม่ประมาณ 4 รอบ เชื่อหรือไม่ว่าแต่ละรอบที่ลงให้ผลไม่เหมือนกันทั้งๆที่ Environment เดียวกัน!! เหนื่อยเลย เดี๋ยวตัวโน้นมีปัญหา เดี๋ยวตัวนี้มีปัญหา


นอกจากข้อเสียเรื่องการติดตั้งแล้ว การใช้งาน (Usability) ก็เต็มไปด้วยข้อเสียเช่นกันเพราะมันหนักมากกกกกกกก ทำงานช้าสุดๆ โหลดขึ้นบ้างไม่ขึ้นบ้าง และทุกอย่างก็ทำมาเป็น Applet อย่าหวังว่าจะไปรันบนมือถืออ่ะ ถ้าเกิดนั่งๆอยู่ในรถแล้วเกิดอยากสร้าง Issue ขึ้นมา ทำอะไรไม่ได้นอกจากจดแล้วรอไปลงในคอมพ์ทีเดียว ฮ่วยยยย ไม่ Mobility เลย


สำหรับข้อจำกัดเจ้า JIRA ก็มีตามมาเป็นกระพรวนเพราะมันไม่ฟรีนั่นเอง ถ้าเกิดใช้เวอร์ชั่นถูก ($10 ต่อหนึ่งตัวที่ลงและเค้าจะเอาเงินไปบริจาคเพื่อการกุศล) ก็จะมีข้อจำกัดด้านการใช้งานเช่น FishEye จะสร้างได้แค่ 5 โปรเจคส่วน JIRA จะรับคนในระบบได้แค่ 10 คนเท่านั้น


ด้วยประการทั้งปวง... ถ้าเกิดต้องใช้ Project Management System ที่เหมาะสมกับการใช้งานจริง ขอให้ข้าม JIRA ตัวนี้ไป


สาเหตุที่เลือกใช้ตัวนี้ตอนแรกเพราะว่ามันเสียตังค์เลยคิดว่าน่าจะดีเลิศและทางโนเกียก็นำไปใช้ในการแจ้งบั๊กของ Qt ด้วย แต่พอมาใช้จริงแล้วก็เอิ่มๆๆๆ เมื่อคืนเลยหันหน้าหนีมาลง Trac แทน


Trac

สำหรับ Trac ก็ลงตามโนเกียอีกแล้วเพราะว่าโนเกียเพิ่งประกาศเปิดให้ใช้ Project Host ได้ฟรี (อารมณ์เดียวกับ github) โดยนำ Trac มาใช้ ด้วยความเชื่อที่ว่า Project Hosting ของโนเกียทำมาดูดีทีเดียวก็เลยขอลง Trac กับเค้าบ้าง!!


เอาจริงๆก็รู้จัก Trac มานานแล้วหละแต่ไม่มีโอกาสได้ลง เพิ่งได้เล่นจริงจังก็เมื่อคืนนี่แหละเพราะว่า Manage Project ไม่ไหวจนไฟลนตูด!! เลยซัดๆๆๆตั้งแต่ตีสองยันสิบโมงเช้า อดหลับอดนอนกันเลยทีเดียว -*-


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


ข้อดีของ Trac อย่างนึงคือลงค่อนข้างง่าย ใช้งานเกือบง่ายและทำงานเร็ว งั้นขอมาพูดถึงข้อเสียกันชุดใหญ่เลยละกันนะ!!


Trac ถูกพัฒนามาเหมือนทำเล่นๆยังไงไม่รู้ รู้สึกอะไรๆก็ไม่สมบูรณ์ เวอร์ชั่นนึง stable โดยไม่พัฒนาเพิ่มไปปีกว่าๆ แถมฟีเจอร์ก็ไม่ครบถ้วนจนต้องมีคนเปิดเว็บ http://trac-hacks.org/ ขึ้นมาเพื่อแฮคใส่โน่นใส่นี่เข้าไป สรุปคือกว่าจะทำให้มันใช้งานได้ในระดับนึงต้องลงไปทั้งหมด 5 ตัวโดยประมาณ แถมต้อง Config อะไรวุ่นวายอีกด้วย!! หลายๆอย่างที่ควรจะ Config หรือ Enable มาเลยเช่นหน้า Admin แบบ Web UI มันก็ไม่ Enable มาให้ ต้องมานั่งเซตเอาเอง ... ไม่ Make Sense เลย


การติดตั้งที่บอกว่าซับซ้อนก็เพราะว่าระบบมันทำมาไม่ Flexible เอาเสียเลยเพราะมันมีหลายเวอร์ชั่น 0.10, 0.11, 0.12 และแต่ละเวอร์ชั่นก็ใช้ Plugin ร่วมกันไม่ได้ แถมเวลาจะเลือกว่าจะใช้ Database แบบไหนก็เซตยากเหลือเกินและแต่ละ DBMS ก็ทำงานไม่เหมือนกันอีก เอาเข้าไป


ระบบที่ไม่ชอบเป็นการส่วนตัวเลยคือระบบ Login ที่ไม่รู้คิดยังไงให้แต่ละโปรเจคต้อง Login แยกกัน!! ต้องมีคนมาเขียน Plugin เพื่อให้ Login ร่วมกันได้ แต่ว่ามันอุดมไปด้วยปัญหาเช่นเคยเพราะแบบง่ายก็ไม่ Share Role และ Permission ส่วนแบบยากก็ลงไม่ได้ด้วยมนุษย์ปุถุชน สรุปคือป่านนี้ก็ยังทำให้ Login แบบ SSO ทุกโปรเจคไม่ได้


ยังๆ Login แยกกันก็อย่างนึงแล้ว ความบะโซะมหันต์คือ 1 โปรเจคต้องทำการสร้าง Database 1 ตัวเพื่อรองรับ -0- นั่นแปลว่าถ้ามี 100 โปรเจคก็ต้องมี 100 Databases ในการเก็บ แม่เจ้า!!! มัน Manage ลำบากรู้ม้ายยยยยยยย นี่ก็เป็นอีกสาเหตุหนึ่งที่ทำให้รู้สึกไม่อยากใช้มันเลยเพราะอนาคตจะ Manage ยากสุดๆ เวลาจะเพิ่มโปรเจคทีต้องมาเพิ่ม Database และต้องมานั่ง Create Project ผ่าน Command Line ฯลฯ (เชื่อว่ามี Tools ช่วยอยู่ แต่ก็ต้องมาหาลงอีกอยู่ดีอ่ะ วุ่นวาย)


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


ด้านการทำงานกับ git ตัวนี้สนับสนุน Local Git Repository เท่านั้นเพราะต้องใส่ Path ของ .git แบบ Absolute Path ถ้าเกิดจะใช้กับ External Git Repository ก็ต้อง clone มาลง Server ก่อนและต้องตั้ง cron ให้มันคอย Fetch มาเรื่อยๆ


โดยสรุปเชื่อว่ามันโด่งดังได้เพราะว่ามีคนแฮคโน่นนี่ลงไปเยอะจนทำอะไรได้เยอะ หากต้องการจะทำอะไรจริงๆจังๆและสำเร็จรูปประหยัดเวลา... ตัวนี้ก็ไม่ใช่ตัวที่เหมาะสมเท่าไหร่นักเหมือนกัน -_-


Redmine

หลังจากลงเสร็จก็รู้สึกหงุดหงิดกับ Trac ที่ขาดโน่นขาดนี่ ปัญหาใหญ่สุดที่หงุดหงิดและคิดว่ามันไม่ใช่คือเรื่องระบบ Single Signon ก็เลยไปค้นหาตัวอื่น ซึ่งสุดท้ายไปเจอตัวที่ชือว่า Redmine ... ตัวนี้เคยได้ยินแบบแว่วๆและไม่ได้สนใจอะไร แต่พอได้อ่านรีวิวจากเมืองนอกแล้วก็รู้สึกว่ามันเป็นตัวที่น่าสนใจทีเดียว ที่ชอบคือคำว่า "มันลงทีเดียวแล้วทำได้ทุกอย่าง" ก็เลยถือโอกาสพิสูจน์ตลอดเย็นของเมื่อวาน


สำหรับ Redmine นี้มันเกิดมาจาก Ruby on Rails เวลาจะลงอะไรก็เลยต้องใช้ชุดคำสั่งของ Ruby on Rails ไม่ว่าจะเป็น gem, rake, mongrel ฯลฯ เรียกว่าอ้วกกันไปเลย แต่การลงก็ไม่ยากมาก ลองทำตามขั้นตอนนี้ดู "22 ขั้นตอนการลง Redmine" เป็นภาษาอังกฤษนะ แต่เชื่อว่าถ้าจะลงก็ต้องอ่านออก -0- (หมายเหตุ: ตัวอย่างที่ลงเป็น Debian นะ)


ก็อาจจะมีงงนิดงงหน่อยถ้าใครไม่ชินกับ Ruby on Rails แต่แค่ทำตามขั้นตอนก็ลงได้ละ สำหรับฐานข้อมูลที่ Redmine ใช้ก็คือ MySQL โดยสร้างแค่ Database เดียว ที่เหลือไม่ต้องไปยุ่งอะไรกับมันละ > <


งานนี้พอลงเสร็จก็... โอ้แม่เจ้าไปเลยทีเดียว ความประทับใจอย่างแรกคือ UI มัน Minimalist มากๆ ดูดี ดูใช้ง่าย และก็ไม่ได้หน้าตาดีอย่างเดียวด้วย มันทำได้ทุกอย่างจากการลงครั้งเดียวเลย มันเป็นความจริง!! :|


Redmine มาพร้อมกับ Source Browsing, Issue Tracker, User Management และสามารถเชื่อมกับ Version Control ได้เยอะมากทั้ง svn, Darcs, Mercurial, Cvs, Bazaar และ Git ... นอกจากนั้นก็มีทุกอย่างครบถ้วนที่ระบบ Project Management ดีๆควรจะมี ประทับใจมั้ยหละ


สำหรับการทำงานร่วมกันกับ Git ก็เหมือน Trac คือต้องใช้ไฟล์ที่เป็น Absolute Path ดังนั้นต้อง clone มาไว้ที่ Server ก่อน ส่วนในกรณีเรา เราตั้ง Git Server ไว้ที่เดียวกันเลยก็จะทำให้สะดวกขึ้นไปอีกหน่อยนึง


โดยรวมแล้วมันเป็น Project Management System ในฝันเราเลยแหละ คือลงทีเดียวแล้วที่เหลือไปทำในระดับ User Level ไม่ต้องมาเล่นกับ Database หรือ Source อะไรอีกแล้ว แถมทุกอย่างก็มีมาพร้อม ทำงานได้ดีเลิศประเสริฐศรี ... เทพ!!


หากให้คำนิยามสั้นๆ มันคือตัวที่มีความสามารถเทียบได้กับ JIRA ตัวน้อยแต่ลงง่ายและเบากว่ามากๆๆๆๆ นี่เรามานั่งใช้งานบนมือถือสนุกเลย :D


นะเอยฟัน!!

เป็นบทความที่สรุปข้อดีข้อเสียและฟันธงได้ง่ายมาก... "JIRA ไม่ดี Trac ไม่ดี ต้องใช้ Redmine เท่านั้น!!!" เพราะ Redmine เป็นอะไรที่สมบูรณ์ค่อนข้างมากแล้วและลงแค่ทีเดียวก็ทำได้ทุกอย่าง ส่วน JIRA และ Trac พิกลพิการและต้องลงมากกว่า 5 ตัวเพื่อให้มันใช้งานได้เทียบเท่ากับ Redmine แล้ว ... ขอยกให้ Redmine เทพสุดในนาทีนี้เลย!!

บทความที่เกี่ยวข้อง

Aug 12, 2010, 03:05
8937 views
BadaThai vs DroidSans กรณีศึกษาที่น่าสนใจ
Mar 21, 2010, 18:44
15804 views
s = ut + (1/2)at^2
0 Comment(s)
Loading