Tải bản đầy đủ

Phân tích quy trình sản xuất phầm mềm tại công ty cổ phần phần mềm EFFECT

Phân tích quy trình sản xuất phầm mềm tại Công ty cổ phần
phần mềm EFFECT
I. Công ty cổ phần phần mềm EFFECT (EFFECT SOFTWARE COMPANY)
là nhà cung cấp hàng đầu Việt Nam về giải pháp phần mềm quản lý doanh nghiệp
với các sản phẩm Phần mềm kế toán và Hệ thống quản lý tổng thể EFFECT-ERP,
chiếm giữ 20% thị phần trong nước về sản phẩm phần mềm quản lý tổng thể trong
mảng doanh nghiệp vừa và lớn.
Trong phạm vi bài viết này tôi xin mô tả hoạt động tác nghiệp liên quan đến
lập trình khi Công ty triển khai dự án EFFECT-ERP.
Năm 2006 ở Việt Nam, trừ một vài công ty phần mềm lớn gia công hoặc sản
xuất phần mềm cho nước ngoài ra, khó có thể tìm được nơi nào khác mà công việc
lập trình được diễn ra theo đúng quy trình công nghệ chuẩn và tiên tiến, tức là có
những bộ phận chuyên thiết kế phần mềm, sử dụng những sản phẩm phần mềm
khác để tạo ra tập tài liệu dày là các bản thiết kế cho dự án phần mềm mà theo đó
bộ phận lập trình chỉ cần thực hiện như những cỗ máy là có thể ra được những
phần mềm như ý để mang đến cho khách hàng.
Chính vì điều đó mà Công ty phần mềm EFFECT thực hiện triển khai dự án
EFFECT-ERP(EFFECT ở đây chính là lập trình chạy ngay), lập trình chạy ngay
không chỉ tạo ra sự thuận tiện khi kiểm thử và sửa đổi, cải tiến chương trình ngay
tại khách hàng trong lúc đưa phần mềm vào áp dụng mà nó còn giúp cho các nhân
viên EFFECT thực thi "Bản đặc tả chức năng phần mềm" với năng suất cao chưa

từng thấy...


* Các bước trong quy trình sản xuất và chỉnh sửa, bổ sung phần mềm
Dự án ERP là dự án triển khai phần mềm tại doanh nghiệp và các công việc
thuộc về "sản xuất phần mềm" chỉ chiếm tỷ trọng nào đó trong toàn bộ các công
việc của dự án. Các công việc về nghiệp vụ, đào tạo, cải tiến quy tình... chiếm
trọng số tương đối lớn. Tuy nhiên chỉnh sửa phần mềm theo quy trình hoạt động
mới, bổ sung chức năng... lại đóng vai trò sống còn cho sự thành công của dự án.
Đối với EFFECT-ERP, quy trình sửa chữa, cải tiến và sản xuất các module
phần mềm diễn ra tương đối đơn giản. Trong giai đoạn đầu của công việc, bản đặc
tả chức năng phần mềm đã được thảo luận theo nhóm và phân tích diễn giải cụ thể
để các nhân viên lập trình có thể hiểu được các chức năng về mặt tin học. Bước
tiếp theo là các nhân viên lập trình theo các chức năng được phân công từ bản đặc
tả chức năng phần mềm sẽ trực tiếp thiết kế và lập trình hoặc chỉnh sửa mã lệnh có
sẵn trên phần mềm bằng giao diện ngôn ngữ lập trình chạy ngay. Việc kiểm thử
(test) sơ cấp sẽ được chính nhân viên lập trình tiến hành. Sau khi các nhân viên lập
trình khẳng định phần việc của mình đã hoàn thành thì bộ phận tư vấn triển khai sẽ
thực hiện việc kiểm thử chương trình tổng thể trên cơ sở bản đặc tả chức năng
phần mềm. Các lỗi nảy sinh sẽ đươc ghi chép cho từng nhân viên lập trình ngay
trên phần mềm và các lỗi đều được đánh dấu trạng thái chưa sửa hoặc đã sửa và
các nhân viên lập trình căn cứ vào những ghi chép này để tiếp tục chỉnh sửa phần
mềm. Việc kiểm thử và sửa chữa phần mềm như thế cứ diễn ra lặp đi lặp lại cho
đến khi bộ phận tư vấn triển khai xác nhận không còn lỗi phần mềm nữa và các
chức năng đã phù hợp với bản đặc tả chức năng phần mềm thì ban giám đốc sẽ


quyết định tiến hành cài đặt tại khách hàng và bắt đầu việc kiểm thử theo dữ liệu
của khách hàng.
Trong quá trình kiểm thử tại khách hàng, quy trình làm việc giữa hai bên
đảm bảo cho việc trao đổi thông tin về lỗi chương trình và những sự chưa phù hợp
một cách thường xuyên. Nhân viên lập trình EFFECT có thể truy cập từ xa hoặc có
mặt trực tiếp tại khách hàng tiến hành chỉnh sửa các lỗi hoặc cải tiến những
sự chưa phù hợp ngay trên phần mềm. Trong quá trình này, việc trao đổi thông tin
giữa hai bên có thể theo cách trực tiếp, qua mail hoặc qua điện thoại (cố định, di
động hoặc điện thoại Internet). Quá trình này cứ diễn ra liên tục cho đến khi phần
mềm hoàn thiện.
* Vậy điều gì sẽ đảm bảo cho chất lượng của phần mềm viết trên ngôn ngữ lập
trình chạy ngay?
Vì quá trình kiểm thử diễn ra nhiều cấp độ mà cấp độ cuối cùng là kiểm tra


khả năng ứng dụng phần mềm thực tế tại doanh nghiệp nên nếu chương trình vượt
qua được cấp kiểm thử này thì chắc chắn sẽ áp dụng thành công tại doanh nghiệp.
Thực tế chứng minh đối với dự án EFFECT-ERP, các khó khăn làm cho dự án kéo
dài không nằm trong khâu kỹ thuật mà ở các khâu khác như nhân sự, quản lý dự
án, trình độ tin học... Hiện nay, hàng ngàn khách hàng đang áp dụng thành
công các phiên bản phần mềm kế toán, quản trị doanh nghiệp của EFFECT được
xây dựng trên ngôn ngữ lập trình chạy ngay cùng những khách hàng đã ứng dụng
thành công EFFECT-ERP đã chứng minh kết quả thực tế của ngôn ngữ lập trình
chạy ngay.


* Những khó khăn, bất cập khi triển khai dự án
Khó khăn đầu tiên cho việc hiện thực hoá ý tưởng lập trình chạy ngay là việc
bỏ đi công sức hơn 1 năm hoạt động của đội ngũ lập trình EFFECT. Khoảng giữa
2000, công ty quyết định tiến hành nâng cấp phiên bản EFFECT2000 đang được
viết trên ngôn ngữ Foxwin 2.0, một ngôn ngữ lập trình không theo hướng đối
tượng, lên phiên bản sử dụng ngôn ngữ lập trình Visual Foxpro 6.0, là ngôn ngữ
lập trình hướng đối tượng và là thành viên của Visual Studio của Microsoft lúc bấy
giờ. Đến cuối năm 2001, khi mà phiên bản nâng cấp được hoàn thành nhưng vẫn
theo cách lập trình truyền thống sử dụng các công cụ của Visual Foxpro 6.0 thì ban
lãnh đạo công ty quyết định bỏ đi thành quả vừa hoàn thành này vì lý do "ý tưởng
lập trình chạy ngay đã được thử nghiệm thành công!".
Phiên bản nâng cấp đầu tiên của EFFECT2000 đã hoàn thành nhưng chưa
được ứng dụng tại khách hàng nào chỉ vì nó không có khả năng "Lập trình chạy
ngay". Ban lãnh đạo công ty đã quyết định làm lại phiên bản nâng cấp trên nền
ngôn ngữ lập trình chạy ngay. Vui mừng cùng với sự tiếc rẻ, nhưng đội ngũ lập
trình EFFECT lại bắt đầu một sự thử thách và mạo hiểm mới: Nâng cấp phiên bản
EFFECT2000 lên phiên bản Visual EFFECT 2.0 viết trên ngôn ngữ lập trình chạy
ngay đồng thời với việc hoàn thiện ngôn ngữ lập trình chạy ngay.
Khó khăn tiếp theo cũng không kém phần nghiêm trọng liên quan đến một
object lập trình quan trọng được sử dụng phổ biến trên phần mềm là object Grid.
Ý tưởng trong ngôn ngữ lập trình chạy ngay là hiển thị dữ liệu của một bảng dữ
liệu lên bảng Grid đồng thời hiện luôn được dữ liệu của nhiều bảng dữ liệu vệ tinh


khác trên Grid trong khi duy trì mối quan hệ (relation) giữa các bảng. Ngoài ra cần
phải sửa được dữ liệu lấy từ bảng vệ tinh ngay trên Grid bằng nguyên tắc xâu lọc.
Cơ chế này đã được thử nghiệm thành công với Foxwin 2.6 nhưng nó không hoạt
động trên Visual Foxprro 6.0! Sau khi người dùng sửa dữ liệu của bảng vệ tinh trên
Grid bằng nguyên tắc xâu lọc thì con trỏ không dịch chuyển được trên Grid bằng
các phím mũi tên dịch chuyển trên bàn phím nữa! Nếu như không khắc phục lỗi
này thì số phận ngôn ngữ lập trình chạy ngay cũng bị đe doạ vì có quá nhiều hoạt
động của ngôn ngữ và ứng dụng chạy trên ngôn ngữ được dựa trên cơ sở object
Grid này trong đó có khả năng lập trình trực tiếp trên grid. May mắn thay, đó
không phải là lỗi của ngôn ngữ lập trình chạy ngay mà là của Visual Foxpro 6.0 và
đã được khắc phục trong Visual Foxpro 7.0. Visual Foxpro 7.0 đã kịp thời ra đời
cứu cho EFFECT một bàn thua "trông thấy". Chúng tôi không cần phải sửa một
dòng lệnh nào mà object Grid vẫn hoạt động được theo đúng chức năng được thiết
kế.
Có quá nhiều vấn đề liên quan đến bảo mật và phân quyền người sử dụng
với cơ chế lập trình chạy ngay. Làm thế nào để khách hàng (end user) sử dụng
chương trình không được phép sửa đổi bất kỳ mã lệnh nào? Làm sao để tăng tốc độ
hoạt động mọi mặt của ứng dụng cho tương đương với phần mềm biên dịch theo
kiểu truyền thống và không được làm ảnh hưởng đến năng suất làm việc của người
sử dụng? Làm thế nào để sửa được mã lênh trên một form (ví dụ form nhập liệu
duy nhất của EFFECT) trong khi các máy trạm khác trên mạng nội bộ vẫn đang sử
dụng form này để nhập dữ liệu hàng ngày mà không làm ảnh hưởng đến công việc


khác của doanh nghiệp? Đây là ý nghĩa rất cơ bản của lập trình chạy ngay vì nó
làm cho phần mềm có thể sửa đổi được trực tiếp mà không cần phải dừng hoạt
động của chương trình khi đang được sử dụng hàng ngày tại doanh nghiệp...
Và còn rất nhiều khó khăn khác mà đội ngũ lập trình EFFECT phải từng
bước, từng bước vượt qua đưa đến kết quả ngày hôm nay là ngôn ngữ lập trình
chạy ngay đã hoàn toàn ổn định. Từ đầu năm 2006, chúng tôi đã không cần phải
sửa lỗi hoặc cải tiến bất cứ điều gì trên ngôn ngữ lập trình chạy ngay nữa. Nó đã và
đang bắt đầu sứ mệnh của mình là làm tăng năng suất lao động của toàn bộ đội ngũ
lập trình và chuyển giao phần mềm của EFFECT, giúp chúng tôi có thể làm ra
được những kết quả lớn lao với một đội ngũ nhân viên hạn chế và do đó mang đến
cho khách hàng những sản phẩm chất lượng với một chi phí hoàn toàn phù hợp
với môi trường Việt nam.
II. Phương pháp sản xuất Lean (Lean Manufacturing – Lean Production) là
một phương pháp sản xuất được xem là mang lại hiệu quả nhất hiện nay. Theo mô
hình LEAN, có 7 loại lãng phí được liệt kê là:
- Sản xuất thừa.
- Đợi chờ.
- Vận chuyển.
- Lưu kho.
- Thao tác.
- Gia công thừa.
- Sản phẩm hỏng.


Sau khi phân tích việc áp dụng phương pháp sản xuất Lean vào Công ty cổ
phần phần mềm EFFECT (EFFECT SOFTWARE COMPANY), công ty hiện tại
đang gặp những 3 trong số 7 lãng phí được liệt kê theo mô hình Lean.
1. Lãng phí do sản xuất thừa: Đôi khi do sự thiếu đồng nhất giữa bộ phận
quản lý và bộ phận lập trình, bộ phận thiết kế đôi khi chưa hiểu rõ nhu cầu khách
hàng nên nhiều chức năng của phần mềm khi kiểm thử tại khách hàng bị thừa so
với nhu cầu của khách hàng.
2. Lãng phí do chờ đợi và thao tác thừa: Tuy đã áp dụng nhiều chuẩn hóa
trong quy trình sản xuất xong năng suất lao động của các nhân viên lập trình chưa
đạt hiệu quả cao. Công ty vẫn chưa kiểm soát được thời gian nhàn rỗi của các nhân
viên lập trình cũng như các thao tác không cần thiết khi sản xuất.
Một số giải pháp loại bỏ các lãng phí:
- Chuẩn hóa quy trình sản xuất: công ty cần phải phần loại khách hàng và
chuẩn hóa quy trình sản xuất một cách chi tiết cho từng loại sản phẩm của từng
loại khách hàng.
- Phân công lao động hợp lý cho từng khâu sản xuất
- Giám sát chặt chẽ các khâu trong thiết kế sản phẩm, kiểm thử(test) sản
phẩm đảm bảo các nhân viên lập trình làm việc đảm hiệu quả về thời gian nâng cao
chất lượng sản.

Hết./.




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×