Công ty phần mềm – Wikipedia tiếng Việt

Công ty phần mềm là một công ty có các sản phẩm chính là các phần mềm, công nghệ phần mềm, phân phối và phát triển sản phẩm phần mềm.[1] Công ty phần mềm là các công ty trong ngành công nghiệp phần mềm.

Có 1 số ít loại công ty phần mềm khác nhau :

  • Các công ty lớn và nổi tiếng sản xuất các phần mềm thương mại (COTS), như Microsoft, SAP AG, Oracle Corporation, HP, Adobe Systems và Red Hat[2]
  • Các công ty nhỏ hơn sản xuất phần mềm tùy chỉnh cho các công ty và doanh nghiệp khác, chẳng hạn như RIKSOF
  • Các công ty sản xuất phần mềm thương mại chuyên dụng (COTS), như Panorama, Hyperion, Siebel Systems, GazitIT, Enigma Technologies
  • Các công ty sản xuất Phần mềm dưới dạng Dịch vụ SaaS, như Google, Facebook, LinkedIn
  • Các công ty sản xuất các thành phần phần mềm, chẳng hạn như Developer Express, Dundas, ElementOne và Sohn Software
  • Nhà cung cấp dịch vụ ứng dụng như Salesforce
  • Các công ty sản xuất phần mềm bespoke cho các ngành dọc hoặc các khu vực địa lý cụ thể

Tất cả có thể được phân loại theo một hoặc nhiều điều sau đây: Lỗi chú thích: Thẻ mở bị hỏng hoặc có tên sai

  • hợp đồng – khi công ty phần mềm được ký hợp đồng cung cấp một số phần mềm cụ thể từ bên ngoài (gia công phần mềm)
  • phát triển sản phẩm – khi nó sản xuất sẵn sàng để sử dụng, phần mềm đóng gói; Phân phối thương mại

Vai trò phổ cập trong công ty phần mềm[sửa|sửa mã nguồn]

Tổ chức một công ty phần mềm là loại kỹ năng quản lý rất chuyên biệt, nơi những người có kinh nghiệm có thể biến vấn đề tổ chức thành một lợi ích duy nhất. Ví dụ: có các nhóm phụ trải đều ở các múi giờ khác nhau có thể cho phép một ngày làm việc của công ty 24 giờ, nếu các nhóm, hệ thống và quy trình được thiết lập tốt. Một ví dụ điển hình là nhóm thử nghiệm ở múi giờ 8 giờ trước hoặc sau nhóm phát triển, người đã sửa các lỗi phần mềm được tìm thấy bởi những tester.

Một công ty phần mềm chuyên nghiệp thường gồm có tối thiểu ba nhóm phụ chuyên được dùng :

  • Các nhà phân tích kinh doanh xác định nhu cầu kinh doanh của thị trường
  • Các nhà phát triển phần mềm tạo ra các đặc tả kỹ thuật và viết phần mềm
  • Người kiểm thử phần mềm chịu trách nhiệm cho toàn bộ quá trình quản lý chất lượng

Trong những công ty phần mềm lớn hơn, chuyên môn hóa lớn hơn được sử dụng và thường cũng có :

  • Technical writers viết tất cả các tài liệu như hướng dẫn sử dụng
  • Các chuyên gia phát hành chịu trách nhiệm xây dựng toàn bộ phiên bản sản phẩm và phần mềm
  • Nhà thiết kế trải nghiệm người dùng, những người đang tạo ra kiến trúc thiết kế dựa trên yêu cầu kinh doanh, nghiên cứu người dùng và chuyên môn về khả năng sử dụng
  • Các nhà thiết kế đồ họa thường chịu trách nhiệm thiết kế giao diện người dùng đồ họa.
  • Các kỹ sư bảo trì đứng sau hai, ba hoặc nhiều dòng hỗ trợ
  • Tư vấn chịu trách nhiệm làm cho giải pháp hoạt động, đặc biệt là nếu một số kiến thức chuyên môn là cần thiết. Ví dụ về điều này bao gồm: xây dựng các khối đa chiều trong phần mềm thông minh kinh doanh, tích hợp với các giải pháp hiện có và triển khai các kịch bản kinh doanh trong phần mềm Quản lý quy trình nghiệp vụ.
  • Vào tháng 9 năm 2017, Allegion đã hợp tác với Software House để mở rộng các tùy chọn kiểm soát truy cập điện tử.[3]

Người quản trị của một công ty phần mềm thường được gọi là Trưởng phòng Phát triển ( HOD ), [ 4 ] và báo cáo giải trình cho những bên tương quan. Người đó trực tiếp chỉ huy những nhóm phụ hoặc trải qua người quản trị / chỉ huy tùy thuộc vào quy mô của tổ chức triển khai. Thông thường những đội có tối đa 10 người là những người hoạt động giải trí nhiều nhất. Trong những tổ chức triển khai lớn hơn, nói chung có hai quy mô phân cấp :
Cấu trúc nổi bật của công ty phần mềmTất cả những đội trọn vẹn độc lập và họ thao tác riêng trên những dự án Bất Động Sản khác nhau. Cấu trúc khá đơn thuần và toàn bộ những nhân viên cấp dưới báo cáo giải trình cho một người, điều làm cho tình hình khá rõ ràng tuy nhiên nó không phải là một giải pháp tốt về trao đổi kỹ năng và kiến thức và sử dụng tối ưu nguồn nhân lực .
Cấu trúc ma trậnTrong quy mô này, có những người quản trị / chỉ huy tận tâm cho từng trình độ chính, ” thuê ” người của họ cho những dự án Bất Động Sản đơn cử do người quản trị mẫu sản phẩm / dự án Bất Động Sản đứng vị trí số 1, họ chính thức hoặc không chính thức thuê người và trả tiền cho thời hạn của họ. Điều này dẫn đến mỗi nhân viên cấp dưới tư nhân có hai ông chủ – người quản trị mẫu sản phẩm / dự án Bất Động Sản và người quản trị ” tài nguyên ” chuyên ngành. Một mặt, nó tối ưu hóa việc sử dụng nguồn nhân lực, mặt khác nó hoàn toàn có thể làm phát sinh xích míc về việc một người quản trị được ưu tiên trong cấu trúc .Ngoài ra còn có một số ít biến thể của những cấu trúc này, và một số ít tổ chức triển khai có cấu trúc này lan rộng và phân loại trong những phòng ban và đơn vị chức năng khác nhau .

Công ty phần mềm có thể sử dụng một số phương pháp khác nhau để tạo mã. Chúng có thể bao gồm:

Ngoài ra còn có 1 số ít chiêu thức tích hợp cả hai, như quy mô xoắn ốc, Quy trình hợp nhất ( RUP ) [ 9 ] hoặc MSF. [ 10 ]

Vòng đời mẫu sản phẩm[sửa|sửa mã nguồn]

Bất kể giải pháp nào được sử dụng, vòng đời mẫu sản phẩm luôn gồm có tối thiểu ba quy trình tiến độ :

  • Thiết kế – bao gồm cả đặc điểm kỹ thuật và kinh doanh
  • Mã hóa – sự phát triển của chính nó
  • Kiểm tra – quản lý chất lượng

Mỗi tiến trình lý tưởng chiếm 30 % tổng thời hạn, với 10 % còn lại trong dự trữ .Sơ đồ trình tự tương tác UML giữa những nhóm này hoàn toàn có thể trông như sau :
Sự tương tác chung giữa ba nhóm chínhỞ mỗi quá trình, một nhóm khác nhau đóng vai trò chính, tuy nhiên mỗi loại vai trò phải tham gia trong hàng loạt quy trình tăng trưởng :

  • Các nhà phân tích, sau khi hoàn thành các đặc điểm kỹ thuật kinh doanh, quản lý tình hình kinh doanh thay đổi để giảm thiểu khả năng thay đổi theo thời gian. Họ cũng hỗ trợ cả lập trình viên và người thử nghiệm trong toàn bộ quá trình phát triển để đảm bảo rằng sản phẩm cuối cùng đáp ứng nhu cầu kinh doanh được chỉ định khi bắt đầu. Quá trình này lý tưởng đặt các nhà phân tích kinh doanh là những người chơi chính trong quá trình cung cấp giải pháp cuối cùng cho khách hàng, vì họ được đặt tốt nhất để cung cấp lớp kinh doanh tốt nhất.
  • Các lập trình viên thực hiện các đặc tả kỹ thuật trong giai đoạn thiết kế, đó là lý do tại sao họ được gọi là lập trình viên/nhà thiết kế và trong thời gian thử nghiệm họ sửa các lỗi.
  • Người kiểm thử hoàn thành các kịch bản thử nghiệm trong giai đoạn thiết kế và đánh giá chúng trong giai đoạn mã hóa

Hệ thống và thủ tục[sửa|sửa mã nguồn]

Các nhà phần mềm chạy tốt chiếm hữu những mạng lưới hệ thống và quá trình khác nhau được tiến hành và thao tác nội bộ trên toàn bộ những nhóm phụ. Bao gồm những :

Chuyên viên nghiên cứu và phân tích kinh doanh thương mại[sửa|sửa mã nguồn]

  • Các công cụ mô hình hóa như Sparx Systems Enterprise Architect hoặc IBM Rational Rose

Lập trình viên[sửa|sửa mã nguồn]

  • Hệ thống kiểm soát phiên bản và quy trình phiên bản phần mềm
  • Các công cụ phân tích mã và tiêu chuẩn mã hóa, được xác thực bằng tay hoặc tự động
  • Cơ chế triển khai
  • Hệ thống theo dõi lỗi
  • Công cụ kiểm thử tự động
  • Công cụ kiểm tra hiệu suất và stress

Quản lý dự án Bất Động Sản / mẫu sản phẩm[sửa|sửa mã nguồn]

  • Các hệ thống và thủ tục Quản lý dự án doanh nghiệp (EPM)
  • Quản lý danh mục sản phẩm (PPM)
  • Thay đổi hệ thống quản lý và thủ tục

Ngoài ra còn có Quản lý vòng đời ứng dụng (ALM), nhúng một số chức năng này trong một gói và được sử dụng trên các nhóm. Chúng được phân phối từ nhiều nhà cung cấp khác nhau như Borland, ECM hoặc Compuware.

Kiểm toán hiệu suất cao[sửa|sửa mã nguồn]

Các công ty phần mềm được thiết lập tốt thường có một số ít cách giám sát hiệu suất cao của chính họ. Điều này thường được thực thi bằng cách xác lập bộ chỉ số hiệu suất chính ( KPI ), ví dụ điển hình như

  • Số lỗi trung bình được thực hiện bởi nhà phát triển trên mỗi đơn vị thời gian hoặc dòng lệnh
  • Số lượng lỗi được tìm thấy bởi người kiểm tra trên mỗi chu kỳ kiểm tra
  • Số chu kỳ kiểm tra trung bình cho đến khi Zero Bug Bounce Lưu trữ 2007-09-27 tại Wayback Machine (ZBB)
  • Thời gian trung bình của chu kỳ kiểm tra
  • Thời gian dự kiến của nhiệm vụ so với thời gian thực của nhiệm vụ (tính chính xác của kế hoạch)
  • Số lần sửa lỗi cho đường cơ sở

Một số tổ chức triển khai tập trung chuyên sâu vào việc đạt đến mức tối ưu của Mô hình trưởng thành năng lực ( CMM ), trong đó ” tối ưu ” không nhất thiết có nghĩa là cao nhất. Ngoài ra còn có những mạng lưới hệ thống khác như SEMA của Đại học Carnegie-Mellon, hoặc hoặc những chuẩn ISO đặc biệt quan trọng. Công ty phần mềm nhỏ đôi lúc sẽ sử dụng những giải pháp ít chính thức hơn. Mỗi tổ chức triển khai thực thi phong thái riêng của mình, nằm ở đâu đó giữa tổng công nghệ tiên tiến ( nơi toàn bộ được xác lập bằng số ) và tổng vô chính phủ ( nơi không có số nào cả ). Dù tổ chức triển khai đi theo hướng nào, họ đều xem xét kim tự tháp miêu tả ngân sách và rủi ro đáng tiếc khi đưa ra đổi khác cho những quá trình tăng trưởng đã khởi đầu :
Tập tin:SoftwareHouse-ChangePyramid.jpg kim tự tháp cho thấy rủi ro đáng tiếc và ngân sách thời hạn của sự biến hóa