Agile Và Tư Duy Chiều Ngang

Đọc qua bài này thấy có đoạn hay hay, tương phản góc nhìn giữa “quản trị” (Management) và “agile”:
http://www.forbes.com/sites/stevedenning/2015/01/26/why-do-managers-hate-agile/

Thế giới “quản trị” là theo chiều thẳng đứng. Nó gồm các tòa nhà cao tầng như là ở New York. Cách tư duy của nó cũng theo chiều thẳng đứng. Chiến lược được vạch ra ở bên trên, quyền lực lan truyền xuống dưới. Cấp trên chỉ đạo cấp dưới, nhân viên cạnh tranh nhau để được đề bạt. Mức lương gắn liền với vị trí. Các công việc được phân công từ trên xuống, người quản lý đánh giá năng suất. Mục đích của hệ thống thẳng đứng này rất rõ ràng: để tạo ra lợi nhuận cho cổ đông, bao gồm các lãnh đạo công ty. Thông tin liên lạc cũng từ trên xuống. Nó đề cao hiệu quả và khả năng có thể dự đoán. Điểm mấu chốt để thành công trong thế giới này là kiểm soát chặt chẽ. Sự năng động bị giảm thiểu: để bảo vệ những thành quả đã đạt được. Các công ty của nó đang bị thử thách nặng nề. Nền kinh tế của nó – nền kinh tế truyền thống – đang trên đà suy thoái.

Thế giới agile là theo chiều ngang. Nó gồm các tòa nhà thấp như là ở California, mặc dù nó đang lan nhanh như virus và đã đặt chân vào hầu hết các tổ chức theo mô hình thẳng đứng. Cách tư duy agile là theo chiều ngang. Mục đích của nó là làm hài lòng khách hàng. Lợi nhuận là kết quả thay vì mục đích. Nó chú trọng vào sự liên tục sáng tạo. Nó tạo điều kiện phát triển khả năng thay vì kiểm soát. Thông tin liên lạc cũng theo hàng ngang. Nó hướng đến phóng thích mọi tài năng và khả năng của những thành viên tham gia. Nó hướng tới việc hiểu tương lai và tạo ra tương lai. Nó phát triển các hoạt động ngân hàng, không nhất thiết là các nhà băng. Nó phát triển các dịch vụ ăn ở, nhưng không nhất thiết là các khách sạn. Nó phát triển các dịch vụ vận chuyển, không nhất thiết là ô tô. Nó phát triển các dịch vụ về sức khỏe, không nhất thiết là bệnh viện. Nó phát triển các dịch vụ về giáo dục, không nhất thiết chỉ là trường học. Nền kinh tế của nó – nền kinh tế sáng tạo – đang phát triển.

Các công ty với tư duy thẳng đứng như IBM đang vật lộn với doanh thu liên tục giảm và sa thải nhân viên hàng loạt để cắt giảm chi phí, trong khi các công ty của thế giới chiều ngang như Apple và Google đang bận bịu tạo dựng và phát minh ra tương lai

Market capitalization (Tổng giá trị vốn hóa trên thị trường)
Apple – $660 billion
Google – $362 billion
Facebook – $222 billion
IBM – $155 billion
GM – $54 billion

Posted on 2/2/2015 by Vũ Huy Tâm | Categories: Linh tinh

Ghép Nối Nhiều Bản Ghi Vào Một Dòng

Ví dụ bạn có bảng:
ProductID CustomerName
---------- -------------
1          Tuấn
1          Minh
1          Linh
2          Ngọc
2          Hiền

Bạn muốn kết quả ra như sau:
ProductID CustomerName
---------- -------------
1          Tuấn, Minh, Linh
2          Ngọc, Hiền

Bạn có thể dùng câu lệnh này:

SELECT DISTINCT C2.ProductID, 
    SUBSTRING(
        (
            SELECT ','+C1.CustomerName  AS [TEXT()]
            FROM dbo.Customer C1
            WHERE C1.ProductID = C2.ProductID
            ORDER BY C1.ProductID
            FOR XML PATH ('')
        ), 2, 1000) CustomerList
FROM dbo.Customer C2

Trường hợp bạn không cần group by ProductID mà chỉ cần một danh sách khách hàng nối với nhau, bạn có thể dùng câu lệnh đơn giản hơn sau:

DECLARE @NAMES NVARCHAR(4000) 
SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CustomerName 
FROM dbo.Customer
SELECT @NAMES
Posted on 18/12/2014 by Vũ Huy Tâm | Categories: SQL Server Programming, Tip & Trick

Log File Để Làm Gì

Khi bạn dùng Microsoft Word, bạn để ý thấy có một file tạm nằm cùng trong folder với file chính. Nếu windows bị shutdown đột ngột file tạm vẫn nằm ở đó, còn khi bạn soạn thảo xong và đóng Word lại thì file đó tự động bị xóa. File tạm này dùng cho các chức năng như autosave, recovery khi bị đóng đột ngột, undo… Log file trong SQL Server cũng có chức năng giống như file tạm đó, nhưng ở mức tinh vi hơn. Nó đóng góp rất nhiều vai trò trong tính năng ACID của hệ thống (ACID = Atom – nguyên tử, Consistency – toàn vẹn, Isolation – cô lập, và Durability – bền bỉ). Với Word thì đó chỉ là tính năng tiện lợi cho người dùng, còn với SQL Server thì đó là cam kết của hệ thống đối với dữ liệu và các giao dịch thực hiện trên nó.
Khi nhận được một lệnh cập nhật dữ liệu, các bước sau sẽ xảy ra bên trong hệ thống: … đọc tiếp »

Posted on 31/10/2014 by Vũ Huy Tâm | Categories: Bên trong SQL Server, Database Administration

Ứng Dụng của Join Bất Cân Bằng

Tiếp theo bài viết Cẩn thận với Join bất cân bằng, bài viết này mô tả một trường hợp thường gặp có thể xử lý bằng Join bất cân bằng (còn được gọi bằng Non Equi-Joins).
Đó là những bài toán liên quan đến cách tính bậc thang.
Ví dụ giá điện dùng trong khoảng 0-100 thì áp mức giá 100 cho 1 số, từ 101 – 200 lại áp mức giá 200. Cần tính tiền cho từng khách hàng với số điện dùng trong tháng.
Hoặc trong viễn thông, áp giá cho cuộc gọi từ 0-10 giây đầu là 1 đồng, từ giây thứ 11 là 2 đồng… Trong bưu chính, khối lượng hàng hóa từ 0-200g thì mức giá là 1000 đồng, từ 200-400g là 2000 đồng…
Để giải quyết bài toán này có nhiều cách, một trong số những cách thức hiệu quả là sử dụng Join bất cân bằng vì những ưu điểm sau:
- Xử lý hàng loạt, không sử dụng Cursor
- Có thể cài đặt bằng SQL, thuận tiện khi triển khai trên những hệ thống khác ngoài SQL Server như Oracle, MySQL…

MÔ TẢ BẢNG … đọc tiếp »

Posted on 29/9/2014 by Guess Post: Vũ Minh Tâm | Categories: SQL Server Programming

Cẩn Thận Với Join Bất Cân Bằng

Thông thường khi viết lệnh JOIN, trong biểu thức ở mệnh đề join bạn dùng toán tử “=”. Kiểu join này tạm gọi là join cân bằng, còn kiểu join tạm gọi là bất cân bằng là khi biểu thức ở mệnh đề join dùng các toán tử bất cân bằng như >, < , !=... … đọc tiếp »

Posted on 10/9/2014 by Vũ Huy Tâm | Categories: SQL Server Programming

Kinh Nghiệm Phỏng Vấn

Đây là một trong loạt bài về kinh nghiệm xin việc, bài trước nói về kinh nghiệm viết resume. Giống như bài trước, bài này cũng chỉ dựa vào những kinh nghiệm cá nhân của tôi trong thời gian làm việc tại Mỹ. Nếu bạn thấy có gì không phù hợp với hoàn cảnh ở Việt nam hoặc muốn bổ sung điều gì, xin hãy comment ở bên dưới.

Một resume bắt mắt giống như một miếng mồi ngon, thể nào cũng sẽ có vài công ty gọi đến và muốn phỏng vấn bạn (cá bắt đầu lượn lờ). Thông thường công ty sẽ phỏng vấn nhanh qua điện thoại trước để kiểm tra đúng người thực và có các kỹ năng như viết trong resume. Sau đó nếu mọi chuyện suôn sẻ họ sẽ mời bạn đến phỏng vấn (cá bắt đầu ngửi hít).

Khi đi phỏng vấn, bạn cũng cần giữ nguyên tinh thần như lúc viết resume: tôi toàn làm những việc quan trọng và giờ tôi đi tìm một công việc quan trọng hơn.

Buổi phỏng vấn thường bắt đầu bằng … đọc tiếp »

Posted on 21/8/2014 by Vũ Huy Tâm | Categories: Linh tinh

Viết Resume Xin Việc Như Thế Nào

Mình đã trải qua vài lần đi phỏng vấn xin việc và ngồi phỏng vấn các bạn đến xin việc. Mình cũng đã phải kỳ cạch ngồi viết resume cho mình và đọc hàng trăm resume của các bạn ứng viên. Mình phát hiện ra một vài lỗi trong resume rất nhiều bạn mắc phải, những lỗi này nếu để ý sửa được sẽ làm cho resume trông chuyên nghiệp và tạo ấn tượng tốt cho người đọc. Mặc dù các kinh nghiệm này là ở Mỹ, mình tin là nó có giá trị phổ cập. Đây là một trong loạt bài về kinh nghiệm xin việc, bài kia nói về kinh nghiệm phỏng vấn.

 

Giải phẫu một cái resume

Resume (hoặc còn gọi là CV) có một nguyên tắc chung là toàn bộ nội dung phải là các gạch đầu dòng và mỗi gạch đầu dòng chỉ là một đoạn ngắn không quá 3 dòng. Nếu bạn viết liền một đoạn 5-7 câu thì người đọc sẽ phát chán. Một nguyên tắc nữa là trang đầu tiên phải chứa hết các thông tin bạn muốn người ta đọc, vì thế bạn phải đưa các thông tin quan trọng nhất vào trang đầu tiên, các trang sau chỉ là để thêm thắt cho đầy đủ.

Resume không có khuôn mẫu cố định nhưng thường bắt đầu bằng thông tin cá nhân (tên, địa chỉ liên lạc) và tiếp theo gồm các phần như sau: … đọc tiếp »

Posted on 20/8/2014 by Vũ Huy Tâm | Categories: Linh tinh

Cấu Hình SQL Server Để Gửi Mail

Bài này nói về cách gửi email trong SQL Server bằng chức năng Database Mail. Chức năng cũ SQL Mail không còn được hỗ trợ nữa.
Việc đầu tiên là bạn cần bật chức năng Database Mail, bằng đoạn code sau:

SP_CONFIGURE 'show advanced options', 1;
GO
RECONFIGURE;
GO
SP_CONFIGURE 'Database Mail XPs', 1;
GO
RECONFIGURE
GO

Sau đó trong Management Studio, … đọc tiếp »

Posted on 18/8/2014 by Vũ Huy Tâm | Categories: Database Administration

Thiết Lập Cho xp_cmdshell

SQL Server là hệ quản trị dữ liệu, khả năng chính của nó là lưu trữ và truy xuất dữ liệu. Tuy nhiên đôi lúc bạn cần thực hiện một số thao tác của windows từ SQL Server, ví dụ khi bạn cần viết sql script để copy file từ folder này sang folder khác; hoặc tự động restore từ file backup mới nhất dựa theo ngày tạo (tên file không biết trước). SQL Server cung cấp thủ tục xp_cmdshell trong master database để làm việc này.
Để có thể gọi đến xp_cmdshell đòi hỏi một vài bước thiết lập.
Nếu bạn là DBA với quyền sysadmin, bạn cần cấu hình lại server để bật xp_cmdshell (khi SQL Server mới cài đặt tính năng này bị tắt): … đọc tiếp »

Posted on 14/3/2014 by Vũ Huy Tâm | Categories: Bảo mật, Database Administration, Uncategorized