Làm việc phân tán, hãy tận dụng sức mạnh của mã nguồn mở và các công cụ miễn phí

Mục tiêu bài viết này trước hết là để phục vụ cho các nhóm sinh viên do tôi hướng dẫn có được những phương tiện hiệu quả để làm việc hiệu quả hơn.  

1. Các công cụ chia sẻ online: 

Thời đại ngày nay là thời đại của sự online và phân tán, do đó các công cụ online sẽ rất cần thiết. 

  • Email và các công cụ của Google: gmail, calendar để sắp lịch hẹn. Google Calendar có thể sync vào điện thoại di động nên có thể nhắc lịch bạn mọi lúc mọi nơi. 
  • Google Docs: https://docs.google.com: Bộ office online cho phép ta tạo các file căn bản: Documents, Spreedsheet, Presentation,  và Form. Tôi tận dụng triệt để bộ Docs này để viết và chia sẻ ý tưởng, cũng như góp ý với sinh viên. Tránh được việc phải copy nhiều bản, gửi qua gửi lại attach trong email. 
  • Google Drive: https://www.google.com/drive/: ổ cứng trên cloud. Ưu điểm của ổ cứng này là không bị hư hỏng, mất mát (nếu giữ gìn password cẩn thận, và Google còn sống :-) Các docs của Google Docs cũng được lưu trên đây. Nhưng Drive cho ta lưu trữ tất cả các loại file còn lại (trong quotas cho phép). Cho nên lưu luận văn, code, công trình đang làm trên này sẽ khá an toàn. Quan trọng nhất là nó cho phép thiết lập thư mục synchronize với máy tính để bàn để tự động đồng bộ 
  • Dropbox - dropbox.com: đây cũng tương tự như Google Drive. 
  • Moqups: moqups.com: Chia sẻ ý tưởng thiết kế: việc lên mockup, wireframe cũng rất quan trọng cho việc trình bày ý tưởng. Moqups cho phép nhiều người cộng tác, góp ý và gần như thấy được sự thay đổi tức thời khi một ai đó trong team thay đổi nội dung.  
2. Các công cụ quản lý source code, versioning control. 

Trong việc lập trình việc quản lý source code, tracking sự thay đổi là rất cần thiết. May mắn là hiện nay có nhiều công cụ giúp ta quản lý source code, tracking được sự thay đổi, biết được ai thêm dòng nào vào file nào, phiên bản hôm qua khác với phiên bản hôm nay thế nào. Hay vào lúc cần thiết, ta có thể quay lại với phiên bản trước kia.  Nói một cách ngắn gọn, source code tracking & management là tối cần thiết cho việc phát triển phần mềm. 

Hiện nay có 2 công cụ phổ biến đó là SVN-Subversion và Git. Git là công cụ được phát triển bởi Linus Torvald, cha đẻ của HDH Linux, khi ông phát triển nhân Linux. Linus nhận ra tầm quan trọng của versioning control nên đã xây dựng GIT để các nhà phát triển phần mềm khắp nơi trên thế giới có thể cộng tác qua mạng được. 

Những ai chưa biết về versioning control thì nên bắt đầu học ngay từ bây giờ. Nó gần như là một skill bắt buộc đối với dân lập trình. Và nên bắt đầu từ GIT. Tài liệu để học Git được viết khá chi tiết và chuẩn trong quyển sách này https://git-scm.com/book/vi/v1 

Một khi bạn đã hiểu khái niệm Git rồi thì hãy tìm hiểu thêm các Git server miễn phí trên cloud để lưu giữ source code. Có 2 Git cloud phổ biến được nhiều lập trình viên sử dụng 
  • BitBucket: BitBucket.org: trang này phổ biến cho các team phát triển phần mềm nhỏ (dưới 5-7 người). Nó cho phép ta bảo mật project của ta, hay nói cách khác source code được để ở chế độ riêng tư, những ai trong team mới xem được! Tôi khuyến khích các bạn đang làm đề tài sử dụng BitBucket. 
  • GitHub: github.com : trang này rất phổ biến cho việc phát triển phần mềm miễn phí mã nguồn mở.  
Ngoài ra, nếu các bạn viết paper, khóa luận bằng LaTeX thì cũng có thể sử dụng GIT để tracking sự thay đổi các phiên bản luôn. 

Điều đặc biệt quan trọng đó là khi các bạn dùng Git kết hợp với cloud thì hầu như việc hư hỏng đĩa cứng máy tính của bạn sẽ không dẫn đến mất mát dữ liệu. Vì các phiên bản làm việc sẽ được lưu phân tán ở máy của bạn, máy của đồng đội và trên cloud. 

Nếu bạn đi phỏng vấn xin việc làm, việc sử dụng thành thạo Git sẽ là một lợi thế vì đơn giản là ngày nay ít ai phát triển phần mềm 1 mình. Hãy học Git ngay hôm nay!  

3. Các công cụ truyền thông online 
Ngày nay, với sự phát triển của Internet, việc chúng ta ngồi làm việc ở cách xa nhau cũng khôgn ảnh hưởng nhiều đến sự cộng tác. Bởi vì có khá nhiều phương tiện/phần mềm giúp chúng ta trao đổi bằng lời nói, hình ảnh một cách nhanh chóng thuận tiện và miễn phí. 
  • Skype: skype.com, là một phần mềm Video Chat, gọi điện thoại IP thông qua Internet được khá nhiều team nhỏ sử dụng. Tôi cũng thường dùng cái này để chat với bạn bè, giáo sư trên thế giới. Điều đặc biệt thú vị là Skype được phát triển bởi các lập trình viên người Estonia, sau đó được Ebay mua lại với giá 1.9 tỷ USD, và tiếp theo được Microsoft mua lại với giá $8.5 tỷ USD (nguồn https://en.wikipedia.org/wiki/Skype). 
  • Viber - https://www.viber.com/en/: đây là 1 app trên điện thoại di động, ý tưởng của Viber cũng tương tự như Skype, nhưng điểm thú vị là account của Viber lấy chính số điện thoại di động mà bạn đang sử dụng làm account ID cho nên bạn không phải nhớ thêm 1 ID nào nữa. 
  • Whatsapp - https://www.whatsapp.com/: cũng tương tự như Viber, đa số người dùng ở Bắc Mỹ thích dùng Whatsapp 
  • Gotomeeting.com: đây là 1 công cụ khá mạnh, nó hỗ trợ web app, có nghĩa là bạn không cần phải cài thêm bất cứ cái gì vào máy tính. Nó cũng được các công ty thương mại dùng để họp online. GoToMeeting có nhiều mức giá khác nhau từ miễn phí cho đến có phí (https://www.gotomeeting.com/meeting/pricing-fdosbma).  
4. Những điều cốt yếu cần nhớ

Khi làm việc với tôi, các bạn cần có các kỹ năng sau: 
  • Sử dụng thành thạo một vài công cụ chia sẻ và giao tiếp online: Gmail, Google Calendar, Google Docs, Dropbox, Skype, Viber. 
  • Biết về Git và sử dụng GitHub, BitBucket và biết cách sử dụng các plugin trên IDE  hỗ trợ GIT (như trên IntelliJ, Android Studio, Visual Studio)  
  • Hãy dành thời gian cho gặp mặt trực tiếp vì đôi khi qua trao đổi trực tiếp, nhiều ý tưởng sáng tạo xuất hiện mà gặp online khó có thể có được. 

Kết luận
Mạng Internet đã mang lại cho chúng ta nhiều điều thuận lợi và quan trọng nhất là nó đã rút ngắn khoảng cách địa lý, giúp chúng ta cộng tác nhanh hơn tiết kiệm thời gian hơn nhất là khi tình trạng giao thông đã trở nên quá tải thì việc ngồi bất cứ nơi đâu có mạng thì ta cũng có thể cộng tác được. Điều quan trọng nữa đó là giúp chia sẻ dữ liệu nhanh chóng, an toàn và hiệu quả. 

Gmail, Calendar, Docs, Drive, Dropbox, Skype, Git, IDE, and Face to Face meeting

Cuối cùng, hãy lưu ý rằng, cho dù công nghệ có hiện đại đến đâu, cũng không thể thay thế được việc gặp gỡ, trò chuyện trực tiếp. Hãy kết hợp hài hòa giữa online và offline để đạt được hiệu quả cao nhất trong công việc.  

02:02, 22/2/2017, Viet Nam

Nhận xét