2009-11-30 31 views
7

Có cách cung cấp tính linh hoạt của phát triển Excel/Access mà người dùng yêu thích trong khi thấm nhuần quản lý CNTT tập trung để dữ liệu và logic được bảo mật, sao lưu, kiểm soát phiên bản v.v. là viết lại trong C#/ASP.Net/Java/Python/Lựa chọn của bạn, nhưng điều đó sẽ lấy mất quyền kiểm soát từ người dùng. Có cách nào tốt hơn không và bạn làm gì ở trang web của mình?Chiến lược thay thế hoặc di chuyển cho Excel/Access

Có một vấn đề phổ biến của người dùng tạo các ứng dụng nhỏ Excel/Access hữu ích tuyệt vời mà bộ phận CNTT muốn kiểm soát. Người dùng thích sự linh hoạt mà Excel dành cho, đặc biệt là trên các thay đổi về bay, vẽ đồ thị và nhập/xuất dữ liệu. Trong Access, chúng tôi có QBE rực rỡ. Nhược điểm là sau một thời gian ngắn có rất nhiều bảng điều khiển/mdbs là nhiệm vụ quan trọng, với rất nhiều logic kinh doanh kém hiểu biết và mã dễ vỡ, chúng là một nỗi đau để hỗ trợ đặc biệt khi nhân viên di chuyển.

Điều này đặt phòng CNTT ở vị trí khó xử, họ muốn hỗ trợ các ứng dụng này, nhưng không biết đủ về chúng. Điều này được thực hiện khó khăn hơn vì chúng thường không an toàn với tài liệu bằng không.

Trả lời

4

Bạn đã cân nhắc xem SharePoint cho các ứng dụng cấp bộ phận chưa? Nhiều nhà phát triển chuyên nghiệp sẽ balk vào ý tưởng sử dụng Sharepoint cho "phát triển ứng dụng", nhưng nó trung thực có thể là một cách tuyệt vời cho "người dùng quyền lực" để bắt đầu đưa dữ liệu và công cụ của họ vào một khung quản lý.

Với SharePoint, bạn có thể quản lý cấu trúc tổng thể của trang web và sau đó thiết lập người dùng có quyền nâng cao trong các phòng ban tương ứng của họ. Có một số công cụ tuyệt vời của bên thứ ba để giúp theo dõi những gì đang diễn ra trong trang SharePoint của bạn.

SharePoint không phải là một dấu đầu dòng bạc bằng bất kỳ phương tiện nào, nhưng nó là rất tốt cho nhiều ứng dụng đa người dùng cần theo dõi danh sách dữ liệu.


(Sau đây là không thực sự liên quan đến câu trả lời trên của tôi, nhưng câu hỏi của bạn thực sự trúng nhà và tôi nghĩ rằng tôi muốn chia sẻ kinh nghiệm và hiểu biết sâu sắc tương tự của tôi.)

Công ty chúng tôi sẽ được đi thông qua một quá trình tương tự trong tương lai gần. Tôi ở bên "người dùng cuối" và có thể thông cảm với rất nhiều những gì Kevin Ross said. Đôi khi Access và Excel đơn giản là những công cụ tốt nhất có sẵn cho tôi để hoàn thành công việc.

Dưới đây là một ví dụ: Tôi đã được hỏi vài năm trước để tìm ra một hệ thống tạo Đơn đặt hàng cho nhà cung cấp ở Trung Quốc cho sản phẩm có thời gian chờ là 3 tháng. Phần mềm ERP của chúng tôi có một vài tính năng để mua sắm, nhưng không có gì thậm chí đến gần với sự phức tạp của tình hình chúng tôi đang phải đối mặt. Nhiều năm sau, sau khi trải qua nhiều lần lặp lại ứng dụng trong Excel (VLOOKUP là một phao cứu sinh), Access ("Vì vậy, rằng là lý do tại sao mọi người sử dụng cơ sở dữ liệu quan hệ. Tuyệt vời!), và trở lại trong Excel ("chúng ta đừng làm điều này quá phức tạp"), tôi vẫn thấy rằng những ứng dụng Micorosft Office là những công cụ tốt nhất để hoàn thành công việc.

Chi phí để không sử dụng các công cụ này để hoàn thành công việc như thế nào?

  • Công việc hợp đồng với nhà cung cấp ERP của chúng tôi để thêm tính năng đặc biệt cho quá trình đặt hàng này: bạn có đùa không? Chúng tôi có thể trả hàng chục ngàn đô la cho một ứng dụng nguyên khối không linh hoạt với trải nghiệm người dùng khủng khiếp ... và chúng tôi vẫn sẽ kết thúc trong Excel.
  • Mua phần mềm của bên thứ ba được thiết kế cho quy trình chính xác này: Tôi đã xem bản trình diễn phần mềm trên trang web chính xác những gì tôi muốn cho quy trình mua sắm của mình. Nó bắt đầu từ $ 100,000. Có lẽ các công cụ khác mà chúng ta có thể kiếm được vài nghìn đô la, nhưng ở mức giá đó, tôi đã mô phỏng hầu hết các tính năng của chúng trong ứng dụng của riêng tôi.
  • Cố gắng hoàn thành công việc "bằng tay". : Ha! Tôi là một lập trình viên ở tim, có nghĩa là tôi lười biếng. Nếu phải mất một tuần vững chắc để ngồi ở bàn làm việc để mua hàng (nó thực sự mất nhiều thời gian), bạn có thể đặt cược Tôi sẽ giải quyết một giải pháp để nó chỉ mất vài giờ (và bây giờ nó có). Có lẽ anh chàng sau tôi sẽ quay trở lại để làm hầu hết nó bằng tay, nhưng tôi sẽ sử dụng các công cụ trong hộp công cụ của tôi để tiết kiệm thời gian và căng thẳng.

Thật khó để tìm ứng dụng hoàn hảo để cho phép sáng tạo tối đa ở đầu người dùng nhưng vẫn cho phép CNTT "quản lý" nó. Một khi bạn nghĩ rằng bạn đã tìm thấy một giải pháp cho một điều, bạn nhận ra nó không làm điều gì khác. Tôi có thể viết báo cáo có thể in trong giải pháp này như tôi đã từng thực hiện trong Access không? Tôi có thể viết công thức phức tạp Excel mà buộc nhiều nguồn dữ liệu với nhau từ tấm khác nhau ("Bạn muốn tôi để tìm hiểu những gì ? Không, tôi chưa bao giờ nghe nói về một" SQ uirre L truy vấn" trước đó. VLOOKUP chỉ là Tôi có thể gửi các kết quả đến những người trong bộ phận của mình không? Liệu nó có thể tự động lấy dữ liệu từ cơ sở dữ liệu back-end của chúng tôi như tôi làm trong Excel và Access? Tôi có thể viết mã của riêng tôi, VBA hay không.

Cuối cùng, lời khuyên tốt nhất tôi có thể cung cấp cho bất kỳ người quản lý CNTT nào trong tình huống của bạn là tôn trọng những người lao động khác tại công ty của bạn Cho họ biết công việc của họ là quan trọng (ngay cả tôi f nó chỉ hữu ích cho họ và anh chàng ở bàn tiếp theo). Hãy cho họ biết bạn không cố gắng làm cho công việc của họ khó khăn hơn. Đừng cho rằng chúng là những morons để tạo ra các ứng dụng quan trọng trong phần mềm văn phòng năng suất; họ chỉ đang cố gắng hoàn thành công việc bằng các công cụ trong tay và thường là những người khá thông minh và có khả năng. Mời họ khám phá các giải pháp khác nhau với bạn thay vì chỉ xóa các công cụ hiện có trong hộp công cụ của họ và sau đó thay thế chúng bằng những công cụ mà họ không biết cách sử dụng.

Vào cuối ngày, nếu bạn có người dùng đủ thông minh để tự bắn mình bằng cách tạo các ứng dụng phức tạp trong Excel và Access, có thể là đủ thông minh để học cách sử dụng các công cụ thích hợp để hoàn thành cùng nhiệm vụ. Đầu tư thời gian và năng lượng để liên quan đến họ trong quá trình này và bạn sẽ có một giải pháp phù hợp với mọi người ở cuối.

0

Nếu nhiệm vụ quan trọng và nó trong Access hoặc Excel, được xây dựng kém và không ai hiểu nó, có lẽ là lúc để xây dựng lại nó đúng cách.

+0

Do đó, câu hỏi của tôi, làm thế nào để bạn thực hiện 'đúng' và vẫn để người dùng kiểm soát? Hay điều đó là không thể? – MrTelly

+0

@MrTelly: liên quan đến người dùng trong việc sản xuất các thông số kỹ thuật yêu cầu, thông số kỹ thuật thiết kế, thậm chí thông số kỹ thuật nếu họ muốn. Người dùng có kiến ​​thức về miền sẽ có thể thể hiện bản thân bằng ngôn ngữ tự nhiên và không chỉ là mã thô;) – onedaywhen

4

Bạn có thể thử phương pháp kết hợp: Cho phép người dùng của bạn sử dụng Excel/Access để tự pha chế các công cụ chuyên dụng của riêng họ, nhưng thực hiện các công cụ quan trọng và đặt nó dưới sự kiểm soát CNTT. Có một vài chiến lược có thể giúp bạn với điều này:

  • Đảm bảo rằng bộ phận CNTT của bạn vững chắc trên VBA. Không phải là loại kiến ​​thức "yeah-everybody-can-write-a-vài-dòng-của-cơ bản", nhưng đào tạo chuyên sâu, giống như bạn nếu nó là một ngôn ngữ lập trình ít đơn giản hơn. Mặc dù "người lập trình thực sự" sẽ cho bạn biết nếu không, nó có thể viết các ứng dụng lớn, ổn định trong VBA.
  • Nếu bạn hiện có cơ sở dữ liệu trong Access, hãy di chuyển ra khỏi đó và di chuyển nó sang Máy chủ SQL. Điều này cho phép bạn làm sao lưu tập trung và quản lý, trong khi vẫn cho người dùng quyền lực của bạn sự linh hoạt để "liên kết" các bảng SQL Server để lối vào truy cập của họ.
  • Logic kinh doanh thường được sử dụng phải dưới sự kiểm soát của bộ phận CNTT của bạn. Điều này có thể được thực hiện với VBA, bằng cách tạo một thư viện Access được liên kết bởi người dùng của bạn, hoặc bằng bất kỳ ngôn ngữ .net nào, sử dụng COM interop. Điều này nghe có vẻ phức tạp hơn nó, và nó sẽ làm tăng sự hài lòng của bộ phận CNTT của bạn, kể từ khi phát triển trong .net chỉ đáng giá hơn VBA (điều khiển phiên bản có thể, v.v.).
+0

Nói về các ứng dụng lớn, ổn định, tôi có hệ thống được truy cập 97/2000 với 160 bảng, 350 biểu mẫu, 450 báo cáo và 70 nghìn dòng mã . Vấn đề lớn nhất là nên được upsized đến SQL Server từ lâu Tuy nhiên tôi thấy làm việc trong Access và VB6 là khá bổ ích. –

0

Khi 'người dùng' kiểm soát, thông thường có nghĩa là một người cụ thể kiểm soát kiến ​​trúc, thiết kế, mã hóa và tài liệu ... ngoại trừ họ thường bỏ qua bước tài liệu. Kiểm soát nguồn và báo cáo lỗi, biểu tượng phát triển phần mềm thường không có mặt. Vài trường hợp sử dụng lại mã, do tính chất của các ứng dụng Office (các mô-đun mã thường được nhúng vào các tài liệu) và VBA (ít OOP, hầu hết các trình lập trình VBA không sử dụng các công cụ, vv). Tất cả điều này có nghĩa là các ứng dụng kết quả không phải chịu sự giám sát và chất lượng đúng đắn, có nghĩa là có khả năng là các vấn đề bảo trì, đặc biệt là khi một người dùng rời đi. Tôi biết vì tôi từng là người đó;)

Vì vậy, để thỏa mãn bộ phận CNTT, cần phải áp dụng quy trình thích hợp. Người dùng 'quyền lực' đó có thể tiếp tục sở hữu thiết kế và mã hóa nhưng sẽ nhận được đánh giá ngang hàng, có lẽ là serivces của một tác giả kỹ thuật và một người thử nghiệm chuyên dụng, được yêu cầu sử dụng kiểm soát nguồn, có thể xem xét tích hợp với các hệ thống doanh nghiệp, v.v.

6

Có được cả hai mặt của hàng rào, tôi sẽ đi sau nguyên nhân gốc rễ của vấn đề. Tại sao sử dụng làm cho các ứng dụng nhỏ của riêng mình? Bởi vì nó là quá khó/tốn kém/tốn thời gian/không bao giờ quay ra ngay khi họ đi qua các kênh "thích hợp".

Điều khác là họ có khuynh hướng biết rõ về công việc kinh doanh nên mã của họ có thể không hiểu rõ về những gì cần làm là rất tốt.

Vậy chúng ta có thể làm gì để chống lại vấn đề này? Cá nhân tôi nghĩ rằng họ nên là một nhóm nhỏ những người trong lĩnh vực CNTT có công việc (hoặc một trong những công việc của họ) là phát triển những ứng dụng nhỏ này. Họ nên làm việc rất chặt chẽ với người dùng cuối và không bị khóa trong tháp ngà của CNTT.

Trong vai trò hiện tại, tôi đang ở phía phi IT của hàng rào, tôi có một vài ứng dụng khá lớn cần được phát triển nên tôi đã yêu cầu cài đặt studio trực quan và một số không gian trên máy chủ SQL. Tôi đã từ chối yêu cầu của tôi. Vì vậy, tôi chỉ yêu cầu không gian máy chủ SQL, một lần nữa yêu cầu bị từ chối (mỗi yêu cầu mất khoảng một tuần để đi qua) Vì vậy, cuối cùng tôi "mắc kẹt" trong truy cập.

Bây giờ đây là những ứng dụng truy cập rất đẹp với điều khiển phiên bản, bình luận trong (sốc!) Và tất cả những điều tốt đẹp khác nhưng vào cuối ngày tôi đã cố gắng làm những điều "đúng" cách và kết thúc buộc xuống đường truy cập. Vì vậy, khi ứng dụng của tôi cố gắng tăng quy mô và tôi đang trích dẫn một thời gian dài để viết lại ai là người đổ lỗi?

+0

Lý do chính khiến người dùng tạo ứng dụng của riêng họ thường là tiết kiệm thời gian. Nếu phải mất hơn một vài ngày để có được thứ gì đó với CNTT, họ sẽ không hỏi lại. Họ chỉ đơn giản là không có thời gian. Một khi người dùng đã xây dựng ứng dụng riêng của họ, nó thường trở thành "con" của họ, và họ sẽ bảo vệ nó khỏi CNTT, vì vậy có những vấn đề chính trị trong bước. – Fionnuala

+4

Tôi đã tìm thấy nó rất lạ thực sự thường xuyên như thế nào quản lý được tư vấn về lớn mới các ứng dụng và người dùng tầng trệt bị bỏ qua hoặc được phỏng vấn ngắn gọn, nếu điều này xảy ra, sẽ có một mức độ ngờ vực. Khu vực này không phải là một kỹ thuật thuần túy. – Fionnuala

0

Không có xung quanh việc sử dụng Excel/Access. Đó là những gì có sẵn, và vẫn rất mạnh mẽ và linh hoạt. Điều tốt nhất cần làm là cung cấp một số hướng dẫn về cách các tệp sẽ được xem và được thiết lập. Nếu tất cả mọi người đang sử dụng các tiêu chuẩn tương tự thì các tập tin sẽ sống lâu hơn và có năng suất cao hơn, ngoài nhiệm kỳ của người sáng tạo tại công ty.

0

Bạn đã có một số câu trả lời tuyệt vời về giao dịch với mọi người và khía cạnh kinh doanh của sự vật. Vì vậy, phản ứng của tôi sẽ kỹ thuật hơn.

Nếu bạn định thiết kế lại ứng dụng, các nhà phát triển sẽ làm việc trong cùng một văn phòng với người dùng.Cho người dùng cập nhật mỗi ngày hoặc hai ngày. Nếu người dùng có bất kỳ đề xuất nhỏ nào, hãy cung cấp những đề xuất đó cho người dùng trong vòng một hoặc hai ngày. Ultra Frequent Application Deployment

Cấp cho người dùng quyền truy cập MDB/ACCDB được liên kết với các bảng bằng một loạt các truy vấn khởi động. Cho phép họ tạo các truy vấn mà họ cần để xuất dữ liệu sang Excel cho mục đích của riêng họ và phân phối cho khách hàng.

+0

"có các nhà phát triển làm việc trong cùng một văn phòng với người dùng" - trong ngày và tuổi này không ?! – onedaywhen

+1

Tuyệt đối ở trong cùng một văn phòng. Bạn muốn hệ thống làm việc cho người dùng sau đó hvae các nhà phát triển là một phần của họ trong suốt thời gian. Oh, bạn không muốn bị gián đoạn, nhưng nếu một dev là lấy một ly cà phê tại sao không có người dùng yêu cầu một tinh chỉnh snmall mà sẽ chỉ mất một vài phút để thực hiện. Không có cách nào tốt hơn để các nhà phát triển thực sự hiểu được cách một văn phòng hoặc bộ phận giấy tờ lưu thông hoạt động và tinh chỉnh hệ thống. –

+1

Tôi đồng ý với Tony. Các dự án thành công nhất của tôi đều là những dự án mà tôi có liên hệ trực tiếp với người dùng. Điều này là quan trọng nhất trong các giai đoạn lập kế hoạch, trên thực tế, nhưng như Tony nói, đối với phương pháp phát triển lặp lại của mình (đó là chính xác những gì tôi sử dụng, mặc dù phát hành ít thường xuyên hơn Tony), nó cũng hữu ích. Dự án hoạt động tích cực nhất của tôi đã giúp tôi làm việc bên ngoài hầu hết các tuần, với một nửa ngày hoặc toàn bộ ngày trong văn phòng của khách hàng đi qua các tính năng mới, các vấn đề với các bản phát hành trước và kế hoạch cho kế tiếp. –

3

tôi sẽ thứ hai một trong những điểm chính Kevin Ross:

Cá nhân tôi nghĩ họ nên có một nhóm nhỏ người trong CNTT mà công việc (hoặc một trong các công việc của họ) là phát triển các nhỏ các ứng dụng. Họ sẽ hoạt động rất chặt chẽ với người dùng cuối và không bị khóa trong tháp ngà voi.

Tôi nghĩ rằng bất kỳ bộ phận CNTT nào có nhiều người dùng sử dụng Access/Excel phải có ít nhất một chuyên gia được đào tạo và có kinh nghiệm trong việc phát triển ứng dụng trên các nền tảng đó. Người đó sẽ là người đi giữa để đảm bảo rằng:

  1. Các ưu tiên và chính sách của CNTT được triển khai đúng trong các ứng dụng phát triển tại nhà.

  2. người dùng cuối nhận được sự trợ giúp của chuyên gia trong việc chuyển đổi nỗ lực phát triển tại nhà của họ thành một thứ gì đó ổn định hơn và được thiết kế tốt.

Tôi xin lưu ý rằng bất kỳ ai làm việc với người dùng cuối trong việc sửa đổi các ứng dụng này để đáp ứng các tiêu chuẩn CNTT sẽ làm việc song song với người dùng. Chuyên gia Access/Excel nên là người ủng hộ cho người dùng cuối, nhưng cũng phải tuân thủ các chính sách CNTT. Tôi cũng nghĩ rằng một bộ phận CNTT có thể có một chuyên gia hoặc hai nhân viên, nhưng cũng nên có một nhà phát triển chuyên nghiệp và/hoặc nhà phát triển chuyên nghiệp toàn thời gian với tư cách là một nhà tư vấn, vì nhân viên trực tuyến có thể xử lý ngày- các vấn đề hàng ngày và việc quản lý các ứng dụng, trong khi chuyên gia tư vấn chuyên nghiệp có thể được gọi để lập kế hoạch và kiến ​​trúc và để thực hiện các bộ tính năng phức tạp hơn.

Nhưng tất cả điều đó sẽ tùy thuộc vào quy mô của tổ chức và số lượng ứng dụng có liên quan. Tôi không biết rằng sẽ có một người nào đó trả lương mà không phải là chuyên gia Access/Excel, chính vì vấn đề bạn gặp phải với tất cả nhân viên làm công ăn lương so với các chuyên gia tư vấn - nhân viên không thấy rộng nhiều tình huống như một nhà tư vấn tích cực với cùng một chuyên môn có thể sẽ thấy và do đó các nhà tư vấn sẽ có kinh nghiệm rộng hơn.

Tất nhiên, tôi nhận ra rằng nhiều công ty không thích thuê ngoài bất cứ thứ gì, hoặc không phải thứ gì đó quan trọng. Tôi nghĩ đó là không khôn ngoan, nhưng sau đó một lần nữa, tôi là người được thuê bởi những người quyết định làm điều đó!

Các vấn đề liên quan