Tải bản đầy đủ (.pdf) (27 trang)

Báo cáo thực tập PRODUCT PULSELY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.68 MB, 27 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP
XÂY DỰNG PRODUCT PULSELY

Công ty thực tập: GEEK UP TECHNOLOGY JSC
Người phụ trách hướng dẫn: Nguyễn Minh Trung
Thực tập sinh: Đặng Ngọc Duy
MSSV: 18520655

TP.Hồ Chí Minh, tháng 12 năm 2021


LỜI MỞ ĐẦU

Vào thế kỷ 21, Cuộc Cách mạng Công nghiệp 4.0 Internet nói chung và ngành cơng
nghiệp Phát triển Ứng dụng di động là một phần không thể thiếu của thế giới. Với tốc độ phát
triển vô cùng mạnh mẽ, ngành Phát triển Ứng dụng di động đã và đang nắm vai trò chủ chốt
trong nền kinh tế thế giới, và tiềm năng của ngành vẫn cịn có thể đi xa hơn trong tương lai khi
mọi người có thể thực hiện mọi thứ với chiếc điện thoại di động thông minh.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp Phát triển Ứng dụng di động của Việt Nam đang phát triển rất mạnh mẽ, đủ sức hòa
nhập, hợp tác với những công ty hàng đầu về xây dựng ứng dụng điện thoại trên thế giới.
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công
nghệ Thông tin chúng em đã được trang bị các kiến thức về chuyên môn và kỹ năng mềm. Với
mong muốn bổ sung thêm kinh nghiệm và các kỹ năng làm việc trong một môi trường chuyên
nghiệp, em lên kế hoạch cho một khóa thực tập trong học kỳ này. Sau khi tìm hiểu về lịch sử
phát triển và văn hóa thì em quyết định chọn Cơng Ty Cổ phần Công nghệ Geek Up - một môi
trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện hóa dự định này.



2


LỜI CẢM ƠN

Em xin chân thành cảm ơn nhà trường và quý thầy cô trường Đại học Công Nghệ Thông
Tin đã tận tâm hướng dẫn, giảng dạy cho em những kiến thức chuyên môn cũng như kỹ năng
mềm trong hơn 3 năm ngồi trên giảng đường đại học, từ đó đã xây dựng cho em nền tảng vững
chắc tạo giúp em thực hiện hóa ước mơ.
Trân trọng gửi lời cảm ơn Công ty Cổ phần Công nghệ Geek Up đã tạo điều kiện cho em
có cơ hội được thực tập tại công ty, cho em trải nghiệm một môi trường làm việc cực kỳ chuyên
nghiệp và hiệu quả. Cùng với các người đồng đội trong kỳ thực tập, em mong rằng chúng em đã
để lại một dấu ấn, những kỷ niệm đẹp trong kỳ thực tập vừa qua.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị hướng
dẫn, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được
một Trusted Product. Chân thành cảm ơn các anh chị trong nhóm hướng dẫn đã bỏ ra nhiều thời
gian, cơng sức để hướng dẫn chúng em hồn thành đợt thực tập này.
Bên cạnh kinh nghiệm quý báu về kỹ năng chuyên môn về Phát triển ứng dụng di động,
cịn có những kỹ năng về làm việc nhóm, quy trình làm việc chuyên nghiệp. Các anh chị hướng
dẫn đã dạy em những kỹ thuật cần thiết trong giao tiếp và truyền đạt cho em những kinh nghiệm
của anh chị trong quá trình làm việc, trao đổi với khách hàng và tinh thần trách nhiệm với công
việc và với đồng đội. Các anh chị đã tạo cho em nhiều cơ hội để ứng dụng những kiến thức đó
ngay vào thực tế để xây dựng dự án thực tiễn đi từ lúc ban đầu, nâng cao trình độ, cũng như tốc
độ lập trình và trí thức thêm một bậc.
Em xin chân thành cảm ơn!
Đặng Ngọc Duy
TP.Hồ Chí Minh, tháng 12 năm 2021

3



NHẬN XÉT CỦA KHOA

……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………..……………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
…………………………..…………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
…………………………………………………………………………………………..…………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………..………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………..……………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………………………..……………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
…………………………………………..…………………………………………………………

……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

4


LỜI MỞ ĐẦU

2

LỜI CẢM ƠN

3

NHẬN XÉT CỦA KHOA

4

MỤC LỤC

5

Chương 1: Giới thiệu công ty thực tập

7

1. Giới thiệu công ty GeekUp

7


2. Sản phẩm của công ty

8

Chương 2: Nội dung thực tập

11

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong cơng ty

11

2. Nghiên cứu kỹ thuật

12

2.1. Tìm hiểu ngơn ngữ Java trong Lập trình ứng dụng di động

12

2.2. Git và các quy tắc sử dụng

13

2.3. Phát triển Ứng dụng di động trên nền tảng Android

14

2.4. Mơ hình Agile


14

3. Thực hiện project

17

4. Lịch làm việc

17

Chương 3: Chi tiết về project Pulsely

21

1. Giới thiệu về Pulsely

21

2. Vì sao cần có Pulsely?

21

3. Cấu trúc của Pulsely

22

4. Mục tiêu của Pulsely

22


5. Các chức năng chính của Pulsely

23

TỔNG KẾT

27

1. Thành quả

27

2. Cần cải thiện trong thời gian tới

27

3. Cảm nhận của bản thân về công ty

27

TÀI LIỆU THAM KHẢO

28

5


Chương 1: Giới thiệu công ty thực tập


1. Giới thiệu công ty GeekUp
● Tên đơn vị: Công ty Cổ phần Công nghệ Geek Up (GEEK UP TECHNOLOGY
JSC)
● Lĩnh vực hoạt động: Xuất bản phần mềm
● Địa chỉ:
○ Trụ sở chính: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận,
Thành phố Hồ Chí Minh
○ Chi nhánh: 27B / 9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận 1, Thành
phố Hồ Chí Minh
● Trang web: www.geekup.vn
● Email:
● Điện thoại: +84 28 6262 4400
● Thời gian làm việc: Thứ 2 đến thứ 6: 08h30 - 17h30
● Slogan: “Insightful development”
● Sứ mệnh: Xây dựng các sản phẩm phần mềm mang lại nhiều giá trị cho người
dùng
● Giá trị cốt lõi
○ Honesty: Sống hết mình với đam mê, là chính mình và phấn đấu hướng tới
những giá trị chung.
○ Geeks Get it done: Luôn cố gắng hồn thành cơng việc đạt kết quả mong
đợi.
○ High standard: Ln thử thách bản thân để nâng cao trình độ chuyên môn.
○ Stay Hungry Stay Foolish: Không dừng lại với khả năng hiện tại, luôn tiếp
tục trau dồi học hỏi.
6


2. Sản phẩm của công ty
TP BANK - Ngân hàng số hàng đầu Việt Nam


Nâng cao trải nghiệm người dùng cho Ngân hàng số tiên phong
Thiết kế giao diện, trải nghiệm người dùng cho hệ sinh thái các ứng dụng của TPBank, ứng
dụng TPBank đã được xếp hạng Top 1 lĩnh vực tài chính Việt Nam trên App Store/ Play Store
năm 2020.

7


The Coffee House - Chuỗi cà phê tăng trưởng nhanh số 1 tại Việt Nam

Nền tảng Loyalty platform đầu tiên cho chuỗi cafe hàng đầu Việt Nam
Hiện thực hóa chương trình khách hàng thân thiết của The Coffee House từ phiên bản MVP
kiểm thử đầu tiên, giúp họ chuyển đổi hoạt động kinh doanh từ offline sang online.

8


SMRT - nhà điều hành giao thông công cộng đa phương thức hàng đầu ở Singapore

Nền tảng giao thông công cộng thay đổi trải nghiệm di chuyển của 6 triệu người dân
Singapore
GEEK Up hợp tác với Tập đoàn SMRT xây dựng nền tảng mới mang đến trải nghiệm giao
thông công cộng thuận tiện tại Singapore.

9


Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Xây dựng Product Pulsely” và mục tiêu là xây dựng server,
client trên nền tảng Web và Mobile (Android), đồng thời rèn luyện những kỹ năng mềm như

làm việc nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội được học tập, khám phá
và làm việc trong một mơi trường phát triển game chun nghiệp.
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian : 3 ngày
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triển,
quy trình làm việc để deliver một sản phẩm, cách thức tổ chức của công ty, tinh thần của
mọi người trong công ty Geek Up, các vị trí hiện tại trong cơng ty, cách mọi người trong
cơng ty làm việc với nhau,…
Ngồi ra, thực tập sinh cịn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, các bước cần thực hiện trước khi
bắt đầu vào làm, trong quá trình làm việc và khi kết thúc một ngày làm việc.
Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc. Cũng trong
thời gian này, các anh chị hướng dẫn thực tập sinh tìm hiểu các cơng cụ phục vụ cho từng
mục đích cụ thể khi làm việc. Hầu hết các cơng cụ đều là sản phẩm lưu hành nội bộ công
ty, ngồi ra cịn có các ứng dụng, phần mềm hỗ trợ như Google Meet – phục vụ cho mục
đích gặp và trao đổi trực tiếp trong bối cảnh WFH, Zoom – phục vụ cho nhu cầu tham
gia các buổi Workshop, Seminar hay Meeting diễn ra thường xuyên và đều đặn trong
công ty.
Kết quả : Hiểu thêm về công ty Geek Up, quá trình thành lập và phát triển cho đến hiện
tại. Cách vận hành trong công ty, cách phối hợp với nhau giữa các thành viên. Có thêm
các kỹ năng về việc quản lý dự án, tinh thần trách nhiệm, kỹ năng giao tiếp qua các công
cụ do công ty cung cấp.

10


2. Nghiên cứu kỹ thuật
2.1. Tìm hiểu ngơn ngữ Java trong Lập trình ứng dụng di động
Thời gian : 0.5 ngày song song với thực hành trong suốt quá trình thực tập.

Nội dung : Được training về các kỹ thuật liên quan đến ngơn ngữ lập trình Java trong
lập trình ứng dụng di động:
● MVP Pattern: Model View Presenter là một Architecture pattern. Architecture là
cách duy nhất để maintain một clean project, expansible and testable.. Dễ dàng
hơn để hình dung các điều kiện cho test và cũng có thể viết test cho model
presenter.
● Repository Pattern: Repository làm trung gian giữa domain và các lớp ánh xạ dữ
liệu, hoạt động như một bộ sưu tập đối tượng miền trong bộ nhớ. Repository liên
kết với 2 phương thức để call API: Local Data Source và Remote Data Source
● SOLID Principles: Các nguyên tắc quan trọng khi triển khai lập trình hướng đối
tượng. Các nguyên tắc cần phải luôn ghi nhớ khi bắt tay vào deliver dự án. 5
nguyên tắc bao gồm:
○ Single Responsibility principle: Một class chỉ nên giữ 1 trách nhiệm duy
nhất
○ Open/Closed principle: Có thể thoải mái mở rộng 1 class, nhưng khơng
được sửa đổi bên trong class đó
○ Liskov substitution principle: Trong một chương trình, các object của class
con có thể thay thế class cha mà khơng làm thay đổi tính đúng đắn của
chương trình
○ Interface segregation principle: Thay vì dùng 1 interface lớn, ta nên tách
thành nhiều interface nhỏ, với nhiều mục đích cụ thể
○ Dependency inversion principle: Các module cấp cao không nên phụ thuộc
vào các modules cấp thấp. Cả 2 nên phụ thuộc vào abstraction. Interface
(abstraction) không nên phụ thuộc vào chi tiết, mà ngược lại.
Thực hiện:
● Tham gia đầy đủ các buổi training của team cùng Coach.
● Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả:
● Nâng cao kỹ năng lập trình với ngơn ngữ Java.
● Có được những kiến thức quan trọng cho việc lập trình mobile sau này.

● Ngồi ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu

11


2.2. Git và các quy tắc sử dụng
Thời gian : 0.5 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung : Được training về các kỹ thuật liên quan đến việc sử dụng Git một cách
hiệu quả.
● Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version
Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán
phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ
nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho
chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể
ủy thác (commit) rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính
khác (nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc
clone lại một tập hợp các thay đổi mới nhất trên máy tính kia. Trong Git, thư mục
làm việc trên máy tính gọi là Working Tree.
● Ngồi ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn lưu lại
các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khôi phục
lại dễ dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và một người
khác có thể xem các thay đổi của bạn ở từng phiên bản, họ cũng có thể đối chiếu
các thay đổi của bạn rồi gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng
là tất cả có thể đưa các thay đổi vào mã nguồn của mình lên một kho chứa mã
nguồn.
● Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên
mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng
lại một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính
là lợi thế của Git so với các DVCS khác khi nó không “lưu cứng” dữ liệu mà sẽ

lưu với dạng snapshot.
● Cấu trúc branch:
○ Master: là nhánh chính, run trên production.
○ Development (/dev): là nhánh replica cho nhánh master cộng với các nhánh
feature đang được phát triển
○ Feature (/dev/feature-home): được tách từ nhánh dev, chức năng sau khi
được phát triển sẽ được merge vào dev trước khi merge vào master
Thực hiện :
● Tham gia đầy đủ các buổi training của công ty.
● Áp dụng tốt vào quá trình deliver dự án.
Kết quả :
● Hiểu và thành thạo kỹ năng sử dụng Git.
12


2.3. Phát triển Ứng dụng di động trên nền tảng Android
Thời gian: 2 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung: Được training về các kiến thức căn bản cần thiết và các kỹ năng, những
điểm cần chú ý trong quá trình phát triển ứng dụng di động. Song song với kiến thức
và kỹ năng của lập trình ứng dụng di động, thực tập sinh còn được training về cách sử
dụng hiệu quả IDE Android Studio.
● Android là hệ điều hành mã nguồn mở, dựa trên Linux Kernel, dành cho các thiết
bị di động nói chung (điện thoại, máy tính bảng, đồng hồ thơng minh, máy nghe
nhạc,…). Có nghĩa là Android khơng chỉ giới hạn trong phạm vi một hệ điều hành
cho điện thoại! Nó có thể được nhà sản xuất cài đặt lên đồng hồ, máy nghe nhạc,
thiết bị định vị GPS, thậm chí là ô tô (các thiết bị Android Auto). Android cũng
không phải là một thiết bị hay sản phẩm cụ thể, nó là một hệ điều hành dựa trên
Linux, nguồn mở, linh hoạt.
● Hiện Android là một thương hiệu của Google. Có khả năng tùy biến rất cao và có
thể chạy trên nhiều thiết bị, nhiều kiến trúc vi xử lý (ARM / x86).

Thực hiện :
● Tham gia đầy đủ các buổi training.
● Áp dụng tốt vào quá trình deliver dự án.
Kết quả :
● Hiểu được những khái niệm cơ bản trong lập trình native android và áp dụng tốt
vào quá trình deliver sản phẩm.
2.4. Mơ hình Agile
Thời gian: 2 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung : Được training về các kiến thức chung và tìm hiểu về việc áp dụng mơ hình
vào quy trình làm việc nhóm trong q trình thực tập. Đây là mơ hình làm việc mà
cơng ty Geek Up đã apply vào sử dụng trên mọi product của công ty.
Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là phương thức
phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm
với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt.
Rất nhiều nơi định nghĩa Agile như một phương pháp. Thực chất, Agile giống như
một phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp
(iterative) và tăng trưởng (incremental).

13


Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là phát triển
phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lí, sản xuất ở các
ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục... và trở thành một
phương thức quản lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các
phương pháp “họ Agile”.
● 4 tôn chỉ cần tuân thủ trong phương pháp Agile
○ Cá nhân và sự tương hỗ quan trọng hơn quy trình và cơng cụ: Trọng tâm
đặt lên con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong
nhóm. Những thành viên có năng lực, chịu tương trợ nhau trong công việc

sẽ mang đến thành công cho dự án.
○ Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra
phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng.
○ Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được
khách hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào
các điều khoản trong hợp đồng.
○ Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi
với sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline,...
● 12 nguyên tắc quan trọng trong Agile
○ Đáp ứng toàn diện nhu cầu khách hàng thơng qua việc giao hàng sớm và
sản phẩm có giá trị.
○ Thay đổi u cầu được chào đón, thậm chí là rất muộn trong quá trình phát
triển.
○ Giao phần mềm chạy được cho khách hàng một cách thường xuyên.
○ Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt
dự án.
○ Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ
cần thiết, môi trường làm việc và niềm tin để hồn thành cơng việc.
○ Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất.
○ Thước đo chính của tiến độ là phần mềm chạy tốt.
○ Phát triển liên tục và bền vững.
○ Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.
○ Nghệ thuật tối đa hóa lượng cơng việc chưa xong - Sự đơn giản là cần
thiết.
○ Nhóm tự tổ chức
○ Thích ứng thường xuyên với những thay đổi.
14


● Điểm mạnh:

○ Thực hiện thay đổi dễ dàng
○ Không cần phải nắm mọi thông tin ngay từ đầu
○ Bàn giao nhanh hơn
○ Chú ý đến phản hồi của khách hàng và người dùng
○ Cải tiến liên tục
● Agile ở GeekUP
○ Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp
gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm
phần Sprint bên dưới). 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ụ. Chia nhỏ
cơng việc thành các backlog (task) để có thể theo dõi tiến độ dự án dễ dàng
hơn. Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo
thời gian, theo đó, việc lập kế hoạch khơng diễn ra duy nhất một lần trong
vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình
hình thực tiễn trong tiến trình đi đến sản phẩm.
○ Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội
sản xuất họp hằng ngày trong khoảng 15 phút để Nhóm 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 (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng
với Product Owner sẽ rà số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 (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum
Master, nhóm phát triển sẽ rà sốt lại tồn diện Sprint vừa kết thúc và tìm
cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.
Thực hiện :
● Tham gia đầy đủ các buổi training.
● Áp dụng tốt vào quá trình deliver dự án

Kết quả:
● Hiểu được những khái niệm của agile và áp dụng tốt vào quá trình deliver sản
phẩm.
15


3. Thực hiện project
Sau một tuần được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ
bản về Java, Android, Git, và Agile. Trong thời gian còn lại, thực tập sinh đã được hướng
dẫn áp dụng những kiến thức đã học để cùng nhau deliver dự án.
4. Lịch làm việc
Tuần
Cơng việc
Người hướng dẫn
Tìm hiểu về cơng ty, cách tổ chức của Chị Uyên Phan
Anh Nguyễn Minh Trung
công ty.
- Làm quen với cách làm việc theo mô hình Anh Đặng Vũ Minh Hiếu
Anh Đào Vũ Quốc Trung
Agile của cơng ty.
Chị Hồi Thương
- Làm quen với các cơng cụ làm việc trong
Chị Thảo Đồn
cơng ty (Phần mềm riêng chuyên dụng trao Anh Chris Nguyễn
đổi thông tin của công ty, Cổng lưu trữ các
1
document của squad, email của công
ty,…).
- Cài đặt môi trường để chuẩn bị cho dự án.
- Học cách trao đổi, làm việc qua email.

- Tham gia các buổi gặp gỡ ngồi giờ cùng
cơng ty: Tuesday Workshop, Thursday
Workshop, Friday Meetup, MiniWorkshop
- Tìm hiểu về Android Studio, ngơn ngữ Anh Nguyễn Minh Trung
Java trong lập trình Android, skeleton của Anh Đặng Vũ Minh Hiếu
Chapter Mobile của Geek Up về MVP Anh Đào Vũ Quốc Trung
Pattern, Repository Pattern, SOLID
principles.
- Tìm hiểu RESTful API.
- Tìm hiểu về Git và các tool liên quan.
- Cùng các thực tập sinh lập ra quy ước
2-3
chung khi sử dụng Git khi collab với nhau
(Iteration
1)
- Phân tích và lên kế hoạch triển khai
Pulsely cùng các thực tập sinh. Chia nhỏ
dự án Pulsely ra thành các Iteration nhỏ và
các backlog nhỏ trong từng Iteration
- Thống nhất cách làm việc của squad trong
quá trình deliver Pulsely.
- Thiết kế một số bản vẽ design UI cho
Client Mobile
16


-

-


-

-

-

-

4-5
(Iteration
2)

-

-

Tham gia Daily Scrum mỗi ngày để trình
bày tiến độ công việc cho đồng đội, những
dự định tiếp theo trong ngày và những khó
khăn gặp phải
Integrate với Server để hồn thành các
chức năng cơ bản đầu tiên của dự án
Cuối Iteration 1, dự án đã có thể sử dụng
trên main flow. Ở client Mobile đã có thể
đăng nhập bằng tài khoản, tham gia và trả
lời các câu hỏi, hoàn thành Pulse như
mainflow đã có kế hoạch
Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại
trong 2 tuần đầu tiên thực hiện dự án, đã

làm ra được sản phẩm như thế nào, và
team đã collab với nhau tốt hay chưa
Tham gia các buổi gặp gỡ ngồi giờ cùng
cơng ty: Tuesday Workshop, Thursday
Workshop, Friday Meetup, MiniWorkshop
Tiếp tục phân tích và lên kế hoạch triển
khai Pulsely cùng các thực tập sinh trong
giai đoạn tiếp theo của dự án
Thiết kế một số bản vẽ design UI cho
Client Mobile
Tham gia Daily Scrum mỗi ngày để trình
bày tiến độ cơng việc cho đồng đội, những
dự định tiếp theo trong ngày và những khó
khăn gặp phải
Integrate với Server để triển khai các chức
năng tiếp theo
Trình bày sản phẩm cùng dự án, các kế
hoạch cho Project Owner
Cuối Iteration 2, dự án đã hoàn thành
mainflow và fix tất cả các bug còn tồn
đọng ở Iteration 1.
Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại
sau 2 tuần đầu tiên thì 2 tuần tiếp theo này

Chị Uyên Phan
Anh Nguyễn Minh Trung
Anh Đặng Vũ Minh Hiếu
Anh Đào Vũ Quốc Trung
Chị Hoài Thương

Chị Song Vân

17


-

-

-

-

6-7
(Iteration
3)

-

-

-

8-9
(Iteration
4)

đã thực hiện dự án, đã làm ra được sản
phẩm như thế nào, và team đã collab với
nhau tốt hay chưa, rút thêm kinh nghiệm

cùng nhau
Tham gia các buổi gặp gỡ ngồi giờ cùng
cơng ty: Tuesday Workshop, Thursday
Workshop, Friday Meetup, MiniWorkshop
Tìm hiểu thêm về các kỹ thuật nâng cao
trong lập trình ứng dụng di động như
Retrofit 2, Dagger, triển khai QR Code,
Scan App, Notification
Tiếp tục phân tích và lên kế hoạch triển
khai Pulsely cùng các thực tập sinh trong
giai đoạn tiếp theo của dự án
Tham gia Daily Scrum mỗi ngày để trình
bày tiến độ cơng việc cho đồng đội, những
dự định tiếp theo trong ngày và những khó
khăn gặp phải
Integrate với Server để triển khai các chức
năng tiếp theo
Cuối Iteration 3, dự án đã hoàn thành các
chức năng quan trọng khác theo như kế
hoạch
Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại
sau 4 tuần thì 2 tuần tiếp theo này đã thực
hiện dự án, đã làm ra được sản phẩm như
thế nào, và team đã collab với nhau tốt hay
chưa, rút thêm kinh nghiệm cùng nhau
Tham gia các buổi gặp gỡ ngồi giờ cùng
cơng ty: Tuesday Workshop, Thursday
Workshop, Friday Meetup, MiniWorkshop
Giai đoạn nước rút của dự án. Tìm kiếm và

sửa các lỗi cịn tồn đọng ở các Iteration
trước. Triển khai các kế hoạch improve
product

Chị Uyên Phan
Anh Nguyễn Minh Trung
Anh Đặng Vũ Minh Hiếu
Anh Đào Vũ Quốc Trung
Chị Hoài Thương
Chị Song Vân

Chị Uyên Phan
Anh Nguyễn Minh Trung
Anh Đặng Vũ Minh Hiếu
Anh Đào Vũ Quốc Trung
Chị Hoài Thương
Chị Song Vân
18


-

10

Tiếp tục phân tích và lên kế hoạch triển
khai Pulsely cùng các thực tập sinh trong
giai đoạn cuối của dự án
- Tham gia Daily Scrum mỗi ngày để trình
bày tiến độ công việc cho đồng đội, những
dự định tiếp theo trong ngày và những khó

khăn gặp phải
- Integrate với Server để triển khai các chức
năng cuối cùng
- Cuối Iteration 4, dự án đã hoàn thành các
chức năng quan trọng khác theo như kế
hoạch
- Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại sau
6 tuần thì 2 tuần cuối cùng này đã thực
hiện dự án, đã làm ra được sản phẩm như
thế nào, và team đã collab với nhau tốt hay
chưa, rút thêm kinh nghiệm cùng nhau
- Tham gia các buổi gặp gỡ ngồi giờ cùng
cơng ty: Tuesday Workshop, Thursday
Workshop, Friday Meetup, MiniWorkshop
Giai đoạn cuối:
- Trình bày sản phẩm cùng dự án cho Project
Owner
- Trình bày sản phẩm cho cả công ty Geek
Up xem trong 10 tuần vừa qua, các thực
tập sinh đã làm được những gì
- Thực hiện các bước cuối cùng để đóng
project. Bàn giao project
- Tạm biệt mọi người. Gửi lời cảm ơn và tri
ân đến tồn thể cơng ty Geek Up
- Chuẩn bị tài liệu báo cáo thực tập. Củng cố
kiến thức qua đợt thực tập. Rút kinh
nghiệm và tự đánh giá bản thân.

Chị Uyên Phan

Anh Nguyễn Minh Trung
Anh Đặng Vũ Minh Hiếu
Anh Đào Vũ Quốc Trung
Chị Hoài Thương
Chị Song Vân

19


Chương 3: Chi tiết về project Pulsely
1. Giới thiệu về Pulsely
Pulsely là một Web kết hợp với App mobile để có thể tạo và trả lời các câu hỏi nhằm mục đích
thu thập insights. Web sử dụng cho Actor là Collector – Người có nhu cầu thu thập insights,
App mobile sử dụng cho Actor là Sponsor – Người có nhu cầu cung cấp insights cá nhân cho
Collector.
2. Vì sao cần có Pulsely?
Trong bất kỳ tổ chức nào cũng cần thu thập các insight của những người liên quan. Từ các
insight thu thập được, người thu thập sẽ take action dựa trên các insight đó. Q trình này tạo ra
một kết quả là: Action của tổ chức sẽ không phụ thuộc chủ quan vào một người, mà đó là tổng
hợp được từ những thành viên quan trọng, liên quan đến action đó. Từ đó có thể cải thiện chất
lượng của action đó của cơng ty, tạo ra các giá trị dương sau khi take action cho cơng ty.
Insight là gì? Insight ở đây có thể hiểu là các ý kiến, đóng góp, nhận xét, quan điểm về một câu
hỏi, một chủ đề nào đó, mà ở đây insight sẽ là từ góc nhìn của người có nhu cầu cung cấp
insight, khơng bị phụ thuộc vào người thu thập. Lưu ý rõ ràng: Insight không phải là một câu trả
lời cho một câu hỏi đúng sai, insight khơng có tính chất sai hay đúng, hiệu quả hay khơng hiệu
quả, insight là góc nhìn của người cung cấp insight cho một chủ đề được đưa ra.
Pulsely được ra đời từ nhu cầu cơ bản của Geek Up: Geek Up là một công ty được tổ chức theo
Mơ hình phẳng (Flat Company), nói rõ hơn thì có thể hiểu là khơng có ai đóng vai trị sếp của
bất kỳ ai, và khơng ai là cấp dưới của bất kỳ ai. Mọi người trong công ty sẽ đảm nhận một vai
trò khác nhau, và những người có vai trị tương tự nhau sẽ tập hợp lại thành Chapter. Vậy,

Pulsely ra đời là để các thành viên trong cơng ty có thể get insight của tất cả thành viên trong
Chapter, hoặc có thể là cả cơng ty. Từ đó đưa ra các quyết định, take action. Đối với những cơng
ty tổ chức theo Mơ hình cũ là Sếp – Nhân viên thì thường sẽ khơng có bước này. Các quyết định
sẽ dựa theo ý chí chủ quan của Sếp hoặc một vài thành viên cổ đông trong cơng ty.
Ở Geek Up cịn áp dụng mơ hình Agile vào vận hành mọi product mà Geek Up tạo ra. Một
trong những tính chất quan trọng nhất tạo nên Agile đó là thời gian deliver một iteration
ngắn, từ đó trong quá trình deliver sẽ cần feedback nhanh, và Pulsely ra đời để phục vụ cho
mục đích này một cách hiệu quả nhất.
Từ những quan điểm trên, có thể thấy việc get insight của các thành viên trong tổ chức là nhu
cầu cực kỳ quan trọng đối với bất kỳ tổ chức nào, nhất là với tổ chức Geek Up – một tổ chức
mang tinh thần nhiệt huyết, sôi nổi và hiện đại. Hiểu được những nhu cầu đó, nhóm thực tập
sinh đã cùng nhau tạo nên product Pulsely để phục vụ một cách hiệu quả trong mọi vấn đề về
collect, get insight và take action.
20


3. Cấu trúc của Pulsely
Pulsely gồm có một Server và cũng đảm nhận vai trò là database của product, cùng với một
Client Web cho Collector và một Client Mobile cho Sponsor.
Collector: Người có nhu cầu get insight về một chủ đề nhất định và có nhu cầu take action sau
khi get đủ insight
Sponsor: Người có nhu cầu give insight cho collector, đưa ra ý kiến đóng góp, quan điểm cá
nhân cho chủ đề mà collector quan tâm.





Đầu tiên, Collector sử dụng Client Web để tạo các câu hỏi trong một chủ đề.
Sponsor sử dụng Client Mobile để tham gia chủ đề và give insight.

Sau khi có những insight từ sponsor, collector tiến hành tổng hợp, sắp xếp lại insights.
Collector take action dựa trên các insight đã tổng hợp được.

Ngoài ra, product cịn hỗ trợ tính năng Live insight. Tính năng này hỗ trợ collector có thể đưa ra
chủ đề trực tiếp, và sponsor sẽ give insight theo thời gian thực. Mục đích là để sponsor có thể
cùng nhau trải nghiệm give insight, collector có thể nhanh chóng thu thập và tạo ra tương tác
với sponsor.
4. Mục tiêu của Pulsely
● Có thể đáp ứng nhu cầu get insight và give insight của collector và sponsor
● Sau khi sponsor give insight, collector có thể tổng hợp lại được các insight đã thu thập
● Quan trọng: Tạo được tinh thần tích cực, vui vẻ và tương tác tốt đối với sponsor. Từ đó
sponsor sẽ đưa ra được những insight chất lượng tốt hơn

21


5. Các chức năng chính của Pulsely
Chức năng tạo chủ đề (Tạo Pulse): Collector ở Client Web sẽ tạo chủ đề chung cho bộ câu
hỏi.

Chức năng tạo các câu hỏi: Collector tạo các câu hỏi trong cùng chủ đề.

22


Chức năng hiển thị chủ đề (Hiển thị Pulse): Sponsor sử dụng Client Mobile để theo dõi danh
sách chủ đề để trả lời câu hỏi

23



Chức năng trả lời câu hỏi: Sponsor sử dụng Client Mobile để tham gia và trả lời câu hỏi

24


Chức năng tổng hợp insight: Collector sử dụng Client Web để tổng hợp lại insight đã thu thập

Chức năng Live insight: Collector có thể xem trực tiếp theo thời gian thực các insight được
đóng góp của Sponsor

25


×