Triển khai phần mềm  
 

(Post 27/01/2006) Chúng ta đã được nghiên cứu rất cẩn thận về quy trình sản xuất phần mềm, tuy nhiên trong khuôn khổ bài viết này tôi muốn bàn luận về một số kinh nghiệm trong công việc Triển khai Phần mềm tại Việt Nam theo một cách nhìn thực tế.

Để dễ dàng trình bày, tôi mạnh dạng cho rằng một sản phẩm phần mềm được đưa vào ứng dụng có thể so sánh với việc một tác phẩm âm nhạc được đưa ra phổ biến trong dân chúng. Thật vậy, nếu bỏ qua những đặc thù của từng loại thì có thể so sánh quy trình hình thành hai loại sản phẩm này như sơ đồ hình ở trên

Một tác phẩm âm nhạc đi đến với công chúng thường có 3 tầng sáng tác: Nhạc sĩ, ca sĩ và người nghe. Nhạc sĩ sáng tác là điều tất nhiên. Ca sĩ cũng sáng tác ra cách để biểu diễn và truyền đạt cảm hứng của nhạc phẩm ứng với từng sân khấu, từng đối tượng nghe. Người nghe mỗi người hiểu và thưởng thức nhạc phẩm theo cách riêng, không gian riêng, tâm trạng riêng của mình.

Có rất nhiều nhạc phẩm sau khi được sáng tác thì chính nhạc sĩ đó biểu diễn luôn ví dụ như các tác phẩm của các nhạc sĩ Thế Hiển, Đức Huy hay Quốc Bảo… nhưng hầu hết các nhạc phẩm được sáng tác bởi một nhạc sĩ và được biểu diễn bởi một số ca sĩ mà không phải là chính nhạc sĩ đã sáng tác ra nó, đôi khi nguyên nhân rất đơn giản là do người nhạc sĩ không có chất giọng tốt. Mức độ thành công của kiểu nói trên thật khó so sánh, nhưng phải chăng nó hình thành ngay trong chúng ta một số khái niệm đó là khả năng và sự phù hợp.

Hiện nay, việc triển khai phần mềm đã được nhìn nhận và đánh giá cao hơn bởi hai nguyên nhân chính, thứ nhất là nó đã mang lại một doanh số khá cao, thứ hai là những phần mềm của nước ngoài như Solomon, ERP, Aptra… thì Việt nam chỉ có triển khai chứ không sản xuất. Tuy nhiên, theo tôi còn một nguyên nhân khá quan trọng nhưng ít được nói đến là “ôm khách hàng”, nhiều doanh nghiệp ngầm xem việc đưa quân mình đi triển khai là con đường ngắn nhất để tạo uy tín và thương hiệu đối với khách hàng.

Cần phải nói thêm rằng càng ngày nhu cầu triển khai phần mềm tại Việt Nam càng được tăng cao, đã qua rồi cái thời các phần mềm theo kiểu “may đo” nhỏ lẻ mà thay vào đó là các yêu cầu tích hợp phần mềm, phần mềm dùng chung…đó là các phần mềm được triển khai toàn quốc, hay toàn tỉnh nên nhu cầu về cán bộ triển khai sẽ được chú trọng trong thời gian tới.

Như vậy, xét ở góc độ kinh doanh thì rõ ràng xứ mệnh của công việc triển khai phần mềm không hề nhỏ chút nào. Điều đáng nói ở đây là hầu hết các nơi đào tạo chuyên viên CNTT chỉ nhấn mạnh đào tạo học viên trong việc sản xuất phần mềm, còn việc triển khai phần mềm coi như là tất nhiên. Ai cũng biết rằng trong “Water fall” đã có “Deployment” nhưng những kỹ năng cần thiết của ca sĩ và nhạc sĩ thì không thể đánh đồng, bao hàm.

Bây giờ chúng ta thử đi vào ghi nhận lại những tồn đọng mà việc triển khai phần mềm đang gặp phải, chúng ta sẽ cố gắng bỏ qua những tồn đọng do nguyên nhân khách quan mà chỉ tập trung vào những nguyên nhân chủ quan.

Quản lý cấu hình

Điều này thường xuyên xảy ra đối với các cán bộ triển khai (CBTK) được lấy ra từ đội sản xuất. Cho dù có quy định thế nào đi nữa thì việc các CBTK ngồi sửa code tại khách hàng là điều khó tránh khỏi, vì theo suy nghĩ của họ thì chỉ cần sửa nhỏ chút xíu mà chương trình đáp ứng yêu cần của người dùng, sau này về cơ quan sửa lại. Tuy nhiên, khi về cơ quan thì vì rất nhiều nguyên nhân khuyến họ không còn nhớ việc đó nữa, nhiều người như vậy để rồi cuối cũng thì mỗi đơn vị khách hàng có một phiên bản khách nhau, đến một thời điểm thì việc quản lý cấu hình không còn khả thi. Điều này đã rất nhiều đơn vị gặp và hậu quả của nó là không thể thu thập đầy đủ các phản hồi của người dùng và cực kỳ khó khăn khi cài đặt phiên bản mới. Việc này có thể ví như anh chàng nhạc sĩ tự biểu diễn bài hát của mình, gặp hôm nào thấy đau cổ họng thì rút viết ra chỉnh lại vài nốt nhạc cho dễ hát.

Đóng gói

Thông thường thì đội sản xuất sẽ không mấy tập trung cho việc đóng gói sản phẩm, bởi khi họ trực tiếp đi triển khai thì việc cài đặt, cấu hình như thế nào sẽ không là vấn đề. Vấn đề sẽ cực kỳ gian nan với những CBTK mà không phải xuất thân từ đội sản xuất đó, họ phải làm quen hàng loạt thông số, dữ liệu, và đôi khi cả cấu trúc của chương trình. Đau khổ hơn là khi trực tiếp triển khai mới phát sinh lỗi mà lỗi này do một thông số nào đó mình chưa được đào tạo lại hoặc mình quên. Điều này giống như ca sĩ phải trình bày một nhạc phẩm sau khi nghe ai đó đã hát mà không được xem bản nhạc gốc, nên việc hát sai nhạc, sai lời là chuyện thường.

Tiếp nhận phản hồi

Khi khách hàng yêu cầu chỉnh sửa hoặc bỗ sung một số chức năng, nếu CBTK là người xuất thân từ đội sản xuất, thay vì anh ta ghi nhận hoặc giải thích thì anh ta lại đứng phân tích ngầm trong đầu: Việc này cần phải sửa database, sửa code, sửa report… nếu thấy sửa nhiều quá thì anh ta tìm mọi cách để áp đặt khách hàng làm theo ý mình, ngược lại, nếu thấy chỉ sửa nhỏ thì anh ta đồng ý. Rất nhiều khách hàng bực bội và cho rằng họ bị áp đặt và có một số trường hợp người dùng sẽ tẩy chay chương trình. Việc tiếp nhận phản hồi của khách hàng là một may mắn của sản phẩm phần mềm nếu so với tác phẩm âm nhạc, không có khán thính giả nào lại yêu cầu ca sĩ “về nói ông nhạc sĩ viết lời lại và chỉnh một số nốt nhạc thì tôi mới nghe”, mà ngược lại nếu nghe không hay thì người ta bỏ luôn. Chúng ta cần tận dụng tối đa may mắn này trong việc sản xuất phần mềm.

Hiểu nghiệp vụ

Hầu hết các doanh nghiệp chỉ chú tâm rằng nhân viên triển khai của mình đã nắm bắt được các tính năng của chương trình hay chưa, chứ không mấy quan tâm đến việc nhân viên của mình đã hiểu nghiệp vụ của người dùng hay chưa. Rắc rối này thường gặp nhất ở các nhân viên trẻ, trong quá trình đào tạo, họ thường chú tâm đến những gì phần mềm mình có mà rất ít khi quan tâm đến thực tế khách hàng làm việc thế nào, đã nhiều lần tôi gặp trường hợp khá buồn cười: sau khi hướng dẫn cho khách hàng đầy đủ các tính năng của chương trình Quản lý Công văn, khách hàng lấy ra một vài công văn yêu cầu CBTK áp dụng thử thì chịu, vì CBTK không biết được đâu là trích yếu, đâu là số ký hiệu gốc…của Công văn ấy. Đó là chưa nói có rất nhiều từ ngữ nghiệp vụ của khách hàng mà chúng ta hầu như chưa tìm hiểu bao giờ, ví dụ: “sao y” khác với “chứng thực” thế nào, “đăng bộ” là gì, “tống đạt” là gì… Tất nhiên, không môi trường đào tạo nào có thể giảng dạy đầy đủ, tuy nhiên việc chỉ tập trung nắm bắt các tính năng của chương trình mà quên đi nghiệp vụ đã để lại không ít hoài nghi trong suy nghĩ của khách hàng. Điều này cũng giống như ca sĩ chỉ cố công gào thét, còn gào thét để làm gì thì không xác định được.

Dẫn dắt vấn đề

Lần này thì giả sử họ hiểu nghiệp vụ rất rõ, nhưng tôi lại muốn nói đến khía cạnh CBTK dẫn dắt người dùng vào chương trình của mình như thế nào. Thường thì có 2 cách dẫn dắt: “1- các anh chị dùng tính năng X của chương trình để làm công việc A” hoặc “2- Khi có nhu cầu làm công việc A thì các anh chị mở tính năng X ra để áp dụng”, về ý nghĩa thì như nhau, nhưng hầu hết các CBTK thường dùng cách 1, trong khi cách 2 thường mang lại hiệu quả hơn, kiểu dẫn dắt ấy giúp người dùng đi từ những việc thông thường của họ và bước dần vào chương trình mới mẻ, cách 2 còn khẳng định với khách hàng rằng “tôi đã hiểu nghiệp vụ của các anh chị”. Các ca sĩ khi về những vùng quê muốn hát nhạc Disco thì trước tiên họ cũng hát vài bản nhạc tình cảm.

Giao tiếp

Có thể nói, khi đi triển khai, đối tượng làm việc của chúng ta là con người chứ không phải là máy tính như khi ta sản xuất chương trình. Chúng ta sẽ được tiếp súc với nhiều đối tượng, nhiều quan chức khác nhau, mỗi người trong họ lại có những độ thông cảm không giống nhau. Rắc rối sẽ bắt đầu xuất hiện khi chúng ta không đủ tự tin khi tiếp xúc với họ mà nguyên nhân phần lớn là do chúng ta chuẩn bị tâm lý không cẩn thận. Đặc biệt có nhiều vị khách hàng thường hỏi những vấn đề mỡ rộng đôi chút thì gần như CBTK bắt đầu lúng túng, đó cũng là thời điểm phát sinh tư tưởng “ngon”, không biết cũng không giám nói là “để em xem lại” hoặc “để em về báo cáo với lãnh đạo bên em”, thay vào đó CBTK lại mông lung nói không đâu ra đâu. Chúng ta thường đánh giá không cao khả năng về CNTT của khách hàng, tưởng rằng có thể “múa rìu qua mắt thợ điện” ai ngờ trước mặt mình là tay “thợ rừng chuyên nghiệp”. Xin phép khẳng định rằng trong khách hàng có không ít vị rất am tường về ứng dụng CNTT, vì thế chúng ta cần hết sức thận trọng, hoặc ít nhất chúng ta cần tôn trọng khách hàng vì họ luôn là người nắm nghiệp vụ hơn chúng ta nhiều.

Hình như trong suốt quá trình triển khai phần mềm, CBTK nào cũng ít nhất cãi nhau với khách hàng một vài lần, không phải cuộc cãi nhau nào cũng có hại nhưng chắc chắn rằng buổi làm việc đó sẽ không có kết quả. Các cuộc cãi nhau thường bắt đầu khi khách hàng chê phần mềm của chúng ta kém, máu “văn ta vợ người” trào lên, và lúc đó chúng ta cố hết lời để chứng minh phần mềm của mình ngon. Các ca sĩ thì họ thường chuẩn bị trước, không phải một bài hát họ rất tâm đắc nào cũng có thể làm hài lòng tất cả người nghe, có nhiều người mê cuồng bài hát đó nhưng cũng không ít người bỉu môi.

Kỹ năng giảng dạy

Điều này có lẽ phụ thuộc rất nhiều vào năng khiếu của mỗi người nhưng không phải là không thể tập luyện, bởi ngoài khả năng ăn nói lưu loát thì trong giảng dạy quan trọng nhất vẫn là nội dung muốn truyền đạt. Hầu hết CBTK đều không xác định trước đối tượng mình sẽ trình bày để chuẩn bị nội dung tương ứng, chúng ta cũng ít khi xác định mục đích và những tiêu chí cần thiết nhất để truyền đạt, nên dễ bị mông lung. Có khi chúng ta chỉ giảng dạy cho một nhóm người nhưng cũng nhiều khi chúng ta phải đứng giảng trước cả hội trường với Micro, máy chiếu. Có thể nói rằng rất ít người trong chúng ta đóng tròn vai thầy giáo này. Run sợ là biểu hiện đầu tiên, kéo theo đó là lắc chuột vô tội vạ trên màn hình, nói thì ít lắc chuột thì nhiều. Có khi dừng lại một hồi lâu không nói gì mà cứ gõ phím rồi lại xoá, gõ rồi lại xoá. Mồ hôi thì chảy dài trên má và đẫm cả áo, nhìn thấy thương. Cá biệt có trường hợp do run quá mà làm rơi Micro. Nhiều trường hợp không hề quan tâm đến việc chọn vị trí đứng giảng cho phù hợp vừa gây khó cho mình lại khó cho người thao dõi.

Rồi xưng hô, đứng giảng dạy nhiều bạn vẫn xưng là con cho ngôi thứ nhất, theo tôi thì cứ phải xưng tôi, chúng tôi hoặc tối thiểu cũng phải là em.

Theo tôi thì việc không chuẩn bị kỷ cho đội quân triển khai là nguyên nhân chính. Hậu quả của nó là cuối buổi dạy, nhìn xuống bên dưới không còn mấy người.

Sức khoẻ

CBTK phải có sức khoẻ dồi dào mới có thể đáp ứng yêu cầu công việc liên tục và cường độ cao. Trước hết, lịch sinh hoạt cá nhân hoàn toàn bị xáo trộn, qua rồi cái ngày ở nhà với mẹ, chăn ấm nệm êm, cơm no áo ấm. Lần này chúng ta phải thường xuyên di chuyển không kể ngày hay đêm, việc ngủ trên xe để sáng hôm sau đến nơi làm việc tiếp là bình thường. Nhiều bạn không quen đi xe nên bị say xe, uống thuốc vẫn say, mà đã say xe thì sự mệt mỏi là người bạn đồng hành bất đắc dĩ, chúng ta cũng không thể làm việc tốt mỗi khi có người bạn này bên mình. Không thể định trước mình sẽ ngủ bao nhiêu tiếng đồng hồ hay thức dậy lúc mấy giờ, cũng không thể định trước mình hoàn thành công việc vào giờ nào, xong việc có về được ngay hay phải trú lại đêm. Thường thì xong việc sẽ được mời nhậu, nếu chúng ta không biết nhậu thì đấy là một nỗi khốn khổ, tôi cũng là người không biết nhậu nên tôi thường từ chối với lý do việc còn nhiều, hoặc tôi sẽ đi cùng với một bạn biết nhậu. Nói chung cuộc sống của CBTK là: Ăn bất kỳ món gì, bất kỳ ở đâu, đâu cũng là nhà, đâu cũng là giường, chuyện giờ giấc xin quên đi và đòi hỏi chúng ta phải có một thể lực dồi dào. Đi triển khai cũng giống như ca sĩ chạy show, chỉ khác nhau là họ được nhiều tiền thù lao còn chúng ta được nhiều rượu bia, say xe và ăn quán ngủ trọ.

Dịch vụ cơ bản

Điều thiếu nhất của các CBTK xuất thân từ dân phần mềm là các dịch vụ cơ bản, nó là Windows, LDAP, DHCP, DNS, IIS, Mail Server, là ADSL, TCP/IP, kiến trúc mạng… Phần lớn chúng ta xem đó là những thứ đã có sẵn, đã hoàn chỉnh, công việc của chúng ta chỉ là Phần mềm. Cũng vì thế mà khi chạy đến khách hàng, thấy máy không kết nối mạng được thì chúng ta lại về, nếu chúng ta có kiến thức hạ tầng thì có thể chúng ta sẽ kiểm tra và kết nối mạng giúp các đơn vị, sau đó mình làm việc của mình, vừa hoàn thành công việc lại vừa được lòng khách hàng. Tất cả các kiến thức nói trên thật ra chỉ cần đào tạo trong một ngày là có thể áp dụng được nhưng hầu hết các doanh nghiệp không hề quan tâm đến nó, bản thân chúng ta cũng không tự nghiên cứu. Tệ hại hơn, nhiều bạn sau khi “mò mẫm” thì làm cho máy của khách hàng rớt mạng luôn, không biết chỉnh sửa thế nào nên đành bỏ về. Chúng ta nghĩ gì khi một ca sĩ đến nơi biểu diễn đầy ắp khán giả ham mộ, đầy đủ mọi thứ nhưng dàn nhạc không đánh được bài Rock mà ca sĩ định biểu diễn, thế là ca sĩ bỏ về trong sự ngơ ngác của khán giả. Rõ ràng nếu có sự chuẩn bị nghiêm túc thì ca sĩ luôn mang kèm theo mình đĩa nhạc đệm đã đánh sẵn.

Tán gẫu với IT

Thường thì đi ăn trưa hay đi nhậu, các IT tranh thủ hỏi chúng ta một số thông tin, khuất mắt, băn khoăn, nhất là các vấn đề về dịch vụ cơ bản như đã nói ở trên. Đôi khi chúng ta chỉ cần nói chuyện “chim trời cá nước” gì đó cũng được nhưng phải nói, phải giao tiếp thì mới vui, mới để lại ấn tượng. Không ít người chẳng biết nói gì nên cứ ngồi đợi người ta nói, mình nghe. Còn nếu IT cũng im re thì bữa ăn trở nên nặng nề vô cùng. Thật ra, thân tình với IT hay không là những lúc này, IT có quý mình hay không là những lúc này. Nếu chúng ta nói được những thông tin quý thoả đáng hoặc nói chuyện vui vẻ thì họ sẽ thấy chúng ta nhiệt tình, dễ mến. Nhiều ca sĩ hát nghe cũng được nhưng trả lời phỏng vấn của báo chí thì không nhận ra đâu là họ nữa.

Tư vấn

Đây là yếu điểm nhất của phần lớn các CBTK, trong các Hợp đồng Kinh tế về triển khai phần mềm thường để trách nhiệm của bên B: “Tư vấn và triển khai”, tuy nhiên gần như các doanh nghiệp chỉ chú tâm tư vấn ở tầm lãnh đạo, còn các CBTK hầu như quên mất nhiệm vụ này. Thật ra làm thế nào để có thể áp dụng phần mềm mình triển khai vào quy trình công việc hiện tại cuả khách hàng một cách phù hợp nhất mới là nhiệm vụ khó khăn của CBTK. Rất tiếc, các doanh nghiệp vừa thiếu người có khả năng tư vấn lại vừa thiếu quan tâm nên công việc triển khai phần mềm lắm khi có sự chênh vênh giữa yêu cầu người dùng và các tính năng của chương trình.

Cho dù còn nhiều khập khiển trong cách so sánh giữa sứ mệnh của Cán bộ triển khai phần mềm và sứ mệnh của Ca sĩ, tuy nhiên việc mang đến cho thính khán những âm hưởng ngọt ngào để rồi trong phút giây chạnh lòng con người ta lại nghĩ về âm hưởng đó, nghĩ về người ca sĩ đã truyền tải. Một ca khúc chỉ hay khi mà ca khúc ấy được biểu diễn bởi một ca sĩ có những tố chất phù hợp, một ca sĩ đầy tâm huyết và có sự chuẩn bị chu đáo.

Xem ra, những yêu cầu cần thiết của một CBTK không hề đơn giản, tuy nhiên cho dù không có được những yêu cầu trên thì những CBTK cũng đã hoàn thành “xuất sắc” công việc của mình. Thông điệp của bài viết cũng chỉ dừng lại ở góc độ tham khảo, nếu nhiều hơn cũng chỉ là một sự chuẩn bị tối thiểu về tư tưởng nếu chúng ta chọn công việc triển khai phần mềm. Riêng với tôi, là một cán bộ triển khai, tôi rất hạnh phúc, đơn giản vì nó phù hợp với sở thích. Khi triển khai phần mềm tôi được đi nhiều nơi, được sống cuộc sống mà có thể tạm gọi là “chu du thiên hạ”. Tôi thích được tiếp xúc với nhiều kiểu người khác nhau, thích được người khác đánh giá về mình và trong những chuyến đi, tôi không quên nhìn trời nhìn đất, nhìn núi nhìn sông, nhìn cảnh sống cơ cực của người dân trên khắp mảnh đất hình chữ S.

Đoàn Ngọc Khá


 
 

 
     
 
Công nghệ khác:


Tổng quan các mô hình phát triển phần mềm (tiếp theo) Tổng quan các mô hình phát triển phần mềm
Hành trình mạng không dây: Từ Wi-Fi đến WiMaxRFID – Phương thức giao dịch mới trong thế giới di động
Ý tưởng 1 triệu đôKỹ thuật lập trình Ajax
  Xem tiếp    
 
Lịch khai giảng của hệ thống
 
Ngày
Giờ
T.Tâm
TP Hồ Chí Minh
Hà Nội
 
   
New ADSE - Nhấn vào để xem chi tiết
Mừng Sinh Nhật Lần Thứ 20 FPT-APTECH
Nhấn vào để xem chi tiết
Bảng Vàng Thành Tích Sinh Viên FPT APTECH - Nhấn vào để xem chi tiết
Cập nhật công nghệ miễn phí cho tất cả cựu sinh viên APTECH toàn quốc
Tiết Thực Vì Cộng Đồng
Hội Thảo CNTT
Những khoảnh khắc không phai của Thầy Trò FPT-APTECH Ngày 20-11