Phương pháp phát triển

Để thích ứng nhanh chóng với sự thay đổi, trước tiên chúng tôi áp dụng phương châm liên tục phát triển và release từng phần nhỏ. Với mục đích đáp ứng nhu cầu về quy trình phát triển linh hoạt, chúng tôi lựa chọn mô hình Scrum - triển khai từng phần nhỏ, góp nhỏ thành lớn hướng tới một quy trình phát triển đáp ứng nhanh hơn với biến đổi.
Vai trò

Product owner Sẽ do người Nhật, hoặc là BrSE đảm nhận, phụ trách quyết định toàn bộ thiết kế, thông số kỹ thuật cho sản phẩm.
Scrum master Là người có hiểu biết sâu sắc về Scrum và đảm bảo team có thể làm việc hiệu quả với Scrum.
Team phát triển Bao gồm SQA, và các kỹ sư sẽ thiết kế hệ thống, thực hiện và tiến hành test.
Quy trình phát triển sản phẩm

[Sprint planning meeting]

team phát triển gặp gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint. Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ.

[Daily Scrum meeting]

Ở Septeni Technology, scrum meeting được tổ chức hàng ngày trong vòng 15 phút để team Phát triển chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint.

[Sprint Review meeting]

Cuối Sprint, team phát triển cùng với Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.

[Sprint Retrospective]

Được tổ chức sau mỗi lần kết thúc sprint, các thành viên liên quan sẽ tổng kết lại nội dung của toàn sprint, xem xét những điều gì nên phát huy, những điều nào phải sửa đổi, cải tiến, lên kế hoạch thực thi và áp dụng vào thực tiễn cho sprint sau. Phương pháp này đảm bảo quy trình phát triển của Công ty luôn luôn được cải tiến hoàn thiện.

Môi trường phát triển

Chịu trách nhiệm cho việc hiện thực hoá các ý tưởng phần mềm của tập đoàn, Công ty áp dụng đa dạng các nền tảng kỹ thuật và ngôn ngữ lập trình nhằm tối ưu hoá hiệu quả dự án.
[Ngôn ngữ lập trình / framework]

Với việc phát triển các web service, ngôn ngữ lập trình chính được lựa chọn là Scala, một ngôn ngữ hiện đại, chặt chẽ mà đầy sức mạnh. Ngoài ra Java, Object-C, Swift là các ngôn ngữ được dùng cho phát triển các ứng dụng mobile. Trong khi lập trình, TDD là một lựa chọn yêu thích và test script là một yêu cầu bắt buộc.

[Database]

Chủ yếu dùng My SQL, khi cần xử lý tốc độ cao, có thể sử dụng thêm Memcached, Redis.

[Infrastructure]

Tùy theo đặc tính của từng sản phẩm mà quyết định sử dụng cloud hay on-premise. Với Clound, dùng AWS.

[Quản lý source code]

Các lập trình viên cần thông thạo git để quản lý source code. Lập trình viên làm việc trên môi trường local được hỗ trợ với Vagrant / Chef để đồng bộ hoá môi trường phát triển giữa các thành viên, source code khi thay đổi được kiểm thử tự động và review bởi các thành viên trong team.

[Other]

Chúng tôi tin tưởng sử dụng bộ công cụ mà Atlassian phát triển dành cho giới lập trình, đó là Jira để quản lý Task, Confluence để quản lý tri thức, và Stash (Bitbucket) cho quản lý source code. Ngoài ra Công ty cũng sử dụng Slack như là phương tiện liên lạc hữu hiệu của các team dự án.

Các kỹ sư hệ thống cũng hỗ trợ xây dựng môi trường tích hợp liên tục với Jenkins / bamboo, tự động hoá test (Junit / Spec2 / Selenium) và build / deploy các phần mềm.

Giáo dục - Đào tạo

Để nâng cao chất lượng kỹ thuật phải khuyến khích chia sẻ giữa các thành viên trong Công ty và thuyết trình bên ngoài Công ty. Không chỉ để trong lòng, từ việc phát biểu (các kiến thức này) ra, chúng ta có thể tạo một môi trường mà tất cả mọi người cùng tiến bộ.
Thực hiện seminar
Review source code
Chia sẻ kiến thức qua blog hay wiki
Back To Top