Monday, October 29, 2007

The craftsman - Thợ học việc: Phần 1

Đây là nhật kí của một anh chàng lập trình viên học việc tại một công ty software áp dụng XP (Extreme Programming). Nếu bạn là một lập trình viên, tôi hy vọng nó có thể tạo cho bạn một góc nhìn mới, một cách suy nghĩ mới - hoặc ít ra bạn có thể khám phá một số điều thú vị từ đây.


Nhật ký thân mến,
13 tháng 2, 2002.

Hôm nay đúng là một ngày xui xẻo - Tôi làm hỏng cả chuyện. Tôi rất muốn gây ấn tượng với các ngài "cựu học việc" ở đây nhưng rút cuộc chỉ làm rối tung cả lên.

Ðó là ngày đầu tiên tôi được một chân học việc với ông C. Tôi quả là may mắn có được chân học việc này. Ông C là một tay trùm lớp lang trong vấn đề phát triển phần mềm. Ðấu để giành được chân việc này đúng là nẩy lửa. Các tay học việc của ông C thường trở nên các tay "cựu học việc" sáng giá. Ðiều này có nghĩa được làm việc với ông C có giá trị rõ ràng.

Tôi cứ ngỡ là hôm nay tôi sẽ được gặp ông ta nhưng thay vì đó tôi bị một gã "cựu học việc" níu tôi qua một bên. Gã bảo ông C luôn luôn dẫn các tay học việc đi xuyên qua phần định hướng trong những ngày đầu. Gã nói ông C nhất quyết cho rằng phần thực tập định hướng là thiết thực với các tay học việc và nó dẫn đến mức chất lượng mã nguồn mà ông ta ta dự tưởng.

Tôi náo nức kinh khủng. Ðây là một cơ hội cho họ thấy tôi là một tay lập trình "ngon" cỡ nào. Thế là tôi bảo Jerry tôi không chờ được nữa. Gã đáp lại sự náo nức của tôi bằng cách bảo tôi thử viết một chương trình đơn giản cho gã. Gã muốn tôi dùng "Sieve of Eratosthenes" để tính các số nguyên. Gã còn bảo tôi phải chuẩn bị xong chương trình bao gồm trọn bộ các "unit tests" sẵn sàng để "chấm" sau buổi ăn trưa.

Thật là khoái! Tôi có gần 4 tiếng đồng hồ để "xào nấu" một chương trình giống như Sieve. Tôi quyết tâm thực hiện công tác này một cách hết sức có ấn tượng. Mã dẫn 1 đưa ra những gì tôi đã viết. Tôi nắm chắc là chương trình của tôi được chú thích cẩn thận và trình bày gọn gàng.


Mã dẫn 1:
/**
* This class generates prime numbers up to a user-specified maximum.
* The algorithm used is the Sieve of Eratosthenes.
*


* Eratosthenes of Cyrene, b. c. 276 BC, Cyrene, Libya; d. c. 194 BC, Alexandria. He was
* the first man to calculate the circumference of the Earth, and was also
* known for working on calendars with leap years and running the library at
* Alexandria.


*
* The algorithm is quite simple: Given an array of integers starting at 2,
* cross out all multiples of 2. Find the next uncrossed integer, and cross
* out all of its multiples. Repeat until you have passed the square root of
* the maximum value.
*
* @authorAlphonse, @version 13 Feb 2002 atp
*/
import java.util.*;
public class GeneratePrimes {
/**
* @param maxValue is the generation limit.
*/
public static int[] generatePrimes(int maxValue) {
if (maxValue >= 2) { // the only valid case
// declarations
int s = maxValue + 1; // size of array
boolean[] f = new boolean[s];
int i;
// initialize array to true.
for (i = 0; i < s; i++)
f[i] = true;
// get rid of known non-primes.
f[0] = f[1] = false;
// sieve
int j;
for (i = 2; i < Math.sqrt(s) + 1; i++) {
if (f[i]) { // if i is uncrossed, cross its multiples.
for (j = 2 * i; j < s; j += i)
f[j] = false; // multiple is not prime
}
}
// how many primes are there?
int count = 0;
for (i = 0; i < s; i++) {
if (f[i])
count++; // bump count.
}
int[] primes = new int[count];
// move the primes into the result.
for (i = 0, j = 0; i < s; i++) {
if (f[i]) // if prime
primes[j++] = i;
}
return primes; // return the primes.
} else // maxValue < 2
return new int[0]; // return null array if bad input.
}
}


Sau đó tôi viết một cái "unit test" cho GeneratePrimes. Xem ở mã dẫn 2. Ðoạn mã này dùng JUnit framework như Jerry đã chỉ dẫn. Nó dùng tính chất hướng thống kê; kiểm tra xem cái "generator" có thể tạo ra các số nguyên tới 0, 2, 3 và 100. Trong trường hợp thứ nhất hẳn không có số nguyên nào cả. Trong trường hợp thứ nhì hẳn phải có một số nguyên và nó phải là số 2. Trường hợp thứ ba phải có hai số nguyên và chúng phải là số 2 và 3. Trường hợp cuối phải là 25 số nguyên và số cuối phải là 97. Nếu các bước kiểm tra đều đúng, tôi giả định là cái "generator" làm việc đúng. Tôi e rằng khó có thể tin cậy tuyệt đối cách ở trên, nhưng tôi không nghĩ ra được một trường hợp nào một "function" có thể bị hỏng mà các bước kiểm tra đều đúng.

Mã dẫn 2:

import junit.framework.*;
import java.util.*;
public class TestGeneratePrimes extends TestCase {
public static void main(String args[]) {
Junit.swingui.TestRunner.main(
new String[] {"TestGeneratePrimes"});
}
public TestGeneratePrimes(String name) {
super(name);
}
public void testPrimes() {
int[] nullArray = GeneratePrimes.generatePrimes(0);
assertEquals(nullArray.length, 0);
int[] minArray = GeneratePrimes.generatePrimes(2);
assertEquals(minArray.length, 1);
assertEquals(minArray[0], 2);
int[] threeArray = GeneratePrimes.generatePrimes(3);
assertEquals(threeArray.length, 2);
assertEquals(threeArray[0], 2);
assertEquals(threeArray[1], 3);

int[] centArray = GeneratePrimes.generatePrimes(100);
assertEquals(centArray.length, 25);
assertEquals(centArray[24], 97);
}
}



Tôi mất khoảng một giờ đồng hồ để làm những bước trên chạy được. Jerry không muốn gặp tôi cho đến sau buổi ăn trưa, bởi thế, tôi dành trọn bộ thời gian còn lại đọc cuốn Design Patterns mà Jerry đưa cho tôi.

Sau buổi ăn trưa, tôi ghé văn phòng của Jerry và cho gã biết tôi đã thực hiện xong chương trình. Gã nhìn tôi và với một nụ cười khó tả, hắn nói: "Ðược lắm, hãy xem thử nó thế nào."

Gã dẫn tôi và phòng thí nghiệm và cho tôi ngồi trước một máy. Gã ngồi bên cạnh tôi và yêu cầu tôi đưa chương trình của tôi vào máy này. Thế là tôi chuyển mã nguồn từ máy laptop của tôi lên.

Jerry xem xét hai mã nguồn chừng năm phút rồi gã lắc đầu và bảo: "Mày không thể đưa những cái này cho ông C xem được! Nếu tao để ổng xem mấy cái này, ổng sẽ đuổi cổ cả tao lẫn mày. Ông ấy không phải là người kiên nhẫn đâu."

Tôi đánh thót một phát nhưng cố giữ bình tĩnh và hỏi gã: "Chớ nó sai chỗ nào?"

Jerry thở dài và nói: "Tụi mình nên đi xuyên qua mã nguồn này với nhau." "Tao sẽ chỉ cho mày từng điểm một cách ông C muốn thực hiện nó như thế nào."

"Quá rõ ràng", gã tiếp tục, "cái main function muốn làm ra ba cái functions riêng biệt. Cái thứ nhất khởi tạo tất cả các biến hàm và thiết lập cái "sieve". Cái thứ nhì thực sự thi hành cái "sieve" và cái thứ ba tải kết quả của "sieve" vào một dãy số nguyên."

Tôi nhận ra được ý gã muốn nói gì. Có ba khái niệm chôn trong cái function đó. Tuy vậy, tôi không biết gã muốn tôi phải làm gì với nó.

Gã nhìn tôi một lúc, rõ ràng đang đợi tôi phản ứng sao đó. Nhưng rốt cuộc gã thở dài, lắc đầu và....

(Source: vninfomatic)

Sunday, October 28, 2007

Tình yêu học trò

Năm đó Tính học lớp 9, Tính có thương một cô nàng học lớp 7, Tính chấp nhận ở lại lớp 2 năm để có thể cùng nàng chung bước đến trường.... Nhưng có ngờ đâu...sau 2 năm ở lại lớp....nàng vẫn là học sinh lớp 7.....Tính bực mình hỏi nàng tại sao, nàng trả lời : "Em xin lỗi, e đã thương anh Hùng học lớp 5!"

Thông báo

Thông báo của hội SV phía cuối trang có đoạn:

Các bạn SV nữ đang cần tuyển gấp 50-70 bạn SV nam để làm tình...
(sang trang)
... nguyện viên cho chương trình Mùa hè xanh

Nhân, Lễ, Nghĩa, Trí, Tín, Dũng

Khi quay cóp phải có đủ 6 điều sau: Nhân, Lễ, Nghĩa, Trí, Tín

Nhân khi bạn bè quay cóp bị bắt,phải tỏ ra thông cảm và làm ra vẻ mặt an ủi. Đó gọi là Nhân. Lễ:Đừng bao giờ cao điểm hơn người đă chỉ bài cho mình...để lần sau được chỉ típ đó gọi là Lễ.
Nghĩa khi mình quay cóp bị bắt....thà chít cũng không khai bạn bè mình ra.Đó gọi là Nghĩa.
Trí: Trong lúc thi phải quan sát triệt để chỗ đứng của giám thị đồng thời lắng nghe 4 phương tám hướng các đáp án của bạn bè....đấy gọi là Trí .
Tín: Đừng bao giờ nghi ngờ đáp án,bạn bè trong khi quay cóp, phải luôn tin tưởng đáp án trong tài liệu cũng như bạn bè là chính xác!

Friday, October 26, 2007

Cái Em Cần Thì Anh Không Có

Đôi khi em cần 1 cú phone vào buổi sáng đánh thức em dậy, để có 1 ngày nắng hân hoan em dang tay chào đón... nhưng anh không gọi.

Đôi khi em cần 1 lần đón đưa, em cần 1 điểm tựa cho 1 ngày làm việc căng thẳng phía trước ... nhưng anh ko đến.

Đôi khi em cần 1 chút bốc đồng, bỏ làm, trốn học rủ nhau đi chơi... nhưng cái em cần thì anh ko có.

Đôi khi em cần một người đi ăn trưa cùng, để thay đổi không khí... nhưng cái em cần thì anh ko có.

Đôi khi em cần 1 SMS "Ngày hôm nay của em thế nào?" để em có thể mỉm cười vì là con gái em thích được quan tâm mà... Nhưng cái em cần thì anh ko có.

Đôi khi em cần cuộc hẹn hò lúc tan sở, đi uống nước hò hét, kể lể về 1 ngày vất vả... nhưng cái em cần thì anh ko có.

Đôi khi em cần 1 bữa tối lê la trên vỉa hè, có thể vừa ăn vừa nói, có thể được húp xì xoạp, được cầm tay gỡ xương... nhưng cái em cần thì anh ko có.

Đôi khi em cần được lôi đi, để lấy cho riêng mình một chút bóng đêm, trên đường phố quen, chả cần biết đi đâu, chỉ là đi thôi... nhưng cái em cần thì anh ko có.

Đôi khi em cần 1 cái nắm tay, 1 cái vỗ vai, 1 va chạm cố tình để thăng hoa cảm xúc, để thấy mình đang sống trẻ... nhưng cái em cần thì anh ko có.

Đôi khi em cần 1 lần về khuya, đôi lúc em muốn phá phách 1 chút 1 thưởng thức 1 chút đổi gió về đêm, để cho gió thốc vào mặt, xua tan những ưu tư... nhưng cái em cần thì anh ko có.

.........

Đôi khi em mộng mơ, em cần anh là một người mơ mộng... nhưng cái em cần thì anh ko có.

.........

Em ko cần anh phải giàu có, thành đạt, tài hoa, ko cần anh xuất hiện với những bó hoa thật to, ko cần anh đưa tới những nhà hàng sang trọng. Nhưng sao anh lại cần những thứ đó?

Vì anh yêu em! Anh muốn mình thật xứng đáng với em, muốn anh có thể làm em tự hào, muốn cho em những điều tốt nhất ư?

Nhưng đó chỉ là những thứ mà anh nghĩ là em cần thôi! Còn những thứ em cần thì anh không có!

------------------------------

Cuộc sống thế đấy nghịch lí thế đấy, những siêu nhân như: Người nhện, Bộ tứ huyền ảo (Fanstactic Four), Clark Ken, hay Robinhood, và các anh hùng trong các truyện tranh, tiểu thuyết, đời thường họ cần gì bạn biết ko?

Họ chỉ mong mình là người bình thường, để được yêu thương! Chắc các bạn xem phim rồi nhỉ, tớ chả phải nói nữa!

Họ ước ao, thèm thuồng được làm người bình thường, để có thể đón nhận tình yêu, mang lại hạnh phúc đơn giản: được bên nhau, cho người mình yêu.

Ha ha, thế mà trong chúng ta, lại có những người cứ thích làm người đặc biệt.

Nhiều người cứ thích: Ta là siêu nhân - I"m a superman!

Thật là tội nghiệp!

Hãy là chính mình, tận hưởng cuộc sống, mang niềm vui, hạnh phúc cho chính bản thân mình và những người xung quanh mình!

Sống như thế mới gọi là sống có ý nghĩa!

----------------------------------

Có một thứ mà "em" cần mà "anh" ko có: đó là lời xin lỗi!

Người VN rất ít khi nói lời xin lỗi. Mà có nói cũng ko bao giờ nói một cách có thiện ý, mà thường nói cho có.

Nhất là trong tình yêu, con trai càng hiếm khi xin lỗi con gái (chả nhẽ lại nói là không bao giờ, thế thì chị em thất vọng chết).

Vì thế nên cứ bài hát, bài thơ hay câu chuyện nào mà có: Xin lỗi em... là bài đó rất thành công. Các "anh" thích thì ít, mà các "em" thích thì nhiều! (Khổ chị em hay mơ mộng)!

Nhớ cái hồi tớ để cái blast: Và anh đã biết mình đã sai! Cũng được ủng hộ ghê lắm!

....Nói chung ngại xin lỗi là một bệnh rất phổ biến, nhiều người mắc phải và rất khó chữa (nan y)!
Vì thế nên nếu có 1 "anh" nào đó mà rất lịch sự, hay "xin lỗi" thì các "em" nên cẩn thận: Sở Khanh đấy! Nên cẩn thận với những trường hợp cá biệt như thế.

TH8X theo blog của A|F

Thursday, October 25, 2007

Gượng dậy và bước đi

Nhiều người nói rằng ngoài khơi xa luôn đầy những sóng gió nhưng đâu biết rằng, sóng gió chỉ có khi đại dương giận dữ...

Nhiều người nói rằng nước mắt có thể làm vơi bớt nỗi đau nhưng đâu biết rằng nỗi đau ẩn chứa trong tim chứ không nằm trong mắt...

Nhiều người nói rằng ngoài khơi xa luôn đầy những sóng gió nhưng đâu biết rằng, sóng gió chỉ có khi đại dương giận dữ...

Nhiều người cho rằng ánh nắng đem lại màu đen sạm cho da, nhưng đâu biết, ánh nắng còn mang lại màu tươi sáng cho tâm hồn...

Nhiều người cho rằng hành động của mỗi người đều do 2 vị thần tốt xấu quyết định nhưng đâu biết 2 vị thần đó là bạn, bởi họ tồn tại trong bạn...

Nhiều lúc đau buồn, bạn thường tìm đến bóng tối, nhưng bạn ơi, hãy nhớ điều này: bóng tối càng làm u ám thêm cho tâm hồn...

Đôi khi cuộc sống tưỏng chừng chỉ có 2 màu đen trắng nhưng đâu biết được rằng trong nó còn có cả màu xám.

Đôi lúc thất bại cũng là liều thuốc hữu ích, nó giúp bạn có thêm nhiều kinh nghiệm bởi thất bại là mẹ thành công...

Nhiều người cho rằng mỗi cơ hội là 1 chìa khoá, nhưng đâu biết chìa khoá họ nắm giữ trong tay có thể mở thêm được nhiều cách cửa cơ hội khác...

Đôi lúc, nhìn vào hạnh phúc của người khác, bạn muốn mình được như họ, nhưng đâu biết rằng, có được mái ấm gia đình là quá hạnh phúc rồi...

Nhiều khi bạn nghĩ nỗi buồn nên được giải toả ở những nơi đông người, náo nhiệt nhưng lại không biết bạn chỉ có 1 mình mà gặm nhấm nỗi buồn giữa nhịp sống sôi động đó. Điều bạn cần là 1 người bạn...

Khi bạn thi rớt, bạn cho rằng bạn đã thất bại nhưng không biết được rằng thất bại chỉ dành cho ai đã đầu hàng...

Khi bạn vấp ngã, hãy -biết -gượng -dậy- và -bước- đi, khi đó bạn mới là người chiến thắng...

(theo Nguyễn Ngọc Diễm Hằng - Khánh Hoà/Muctim)

Phái mạnh bây giờ... mạnh hay yếu?

Phái mạnh ngày trước trong các bộ phim kiếm hiệp là một anh hùng ngao du giang hồ với sức mạnh vô địch.

Phái mạnh bây giờ là một anh hùng đấu võ mồm cực kỳ siêu để người trong giang hồ lĩnh hội võ công xuất chúng.

Phái mạnh ngày trước xuất quỷ nhập thần, phi thân từ núi này sang núi khác, tiêu diệt kẻ ác, bảo vệ dân lành. Phái mạnh bây giờ ngồi trên xe bự, phóng từ hẻm này sang đường khác, "tiêu diệt" người đi đường nếu lạc tay lái.

Phái mạnh ngày trước là một người kiên cường và mạnh mẽ, không lùi bước trong gian khó. Phái mạnh bây giờ là một người dũng cảm, sẵn sàng rạch tay chảy máu hay nhảy lầu tự tử khi chia tay người yêu.

Phái mạnh ngày trước chăm chút cho vẻ đẹp tâm hồn va ít trau chuốt cho bề ngoài vì thấy không cần thiết. Phái mạnh bây giờ chăm từng chút một cho vẻ lấp lánh bên ngoài, từ cái đầu xịt keo không chừa một cọng tóc đến con dế xịn ở túi quần thời trang và cuối cùng là một đôi giầy hàng hiệu.

Phái mạnh ngày trước khi yêu thì yêu bằng cả trái tim chân thành, và nếu như chia tay thì phái mạnh ngày trước vẫn tôn trọng tình yêu đó của mình. Phái mạnh bây giờ khi yêu thì chỉ dùng một nửa trái tim nhưng đầy toan tính, và nếu như chia tay thì phái mạnh bây giờ rất chăm chỉ đạp đổ, họ có thể ngồi nói xấu mỉa mai hàng giờ hoặc phơi bày những chuyện đời tư giữa họ với người ấy cho bàn dân thiên hạ biết để thoả lòng ích kỷ.

Phái mạnh ngày trước mong muốn một tình yêu. Phái mạnh bây giờ không thể thiếu tình dục.

Phái mạnh ngày trước rộng lượng và vị tha. Phái mạnh bây giờ hẹp hòi và xoi mói.

Phái mạnh ngày trước không muốn nhìn người mình yêu rơi nước mắt. Phái mạnh bây giờ cười cợt trên những giọt nước mắt người mình đã yêu.
Trích từ blog:

Có một thống kê phải giật mình: Phải đến 80% những người tham gia forum, comment vào các blog hot, gửi message cho group với lời lẽ lăng mạ, đồn thổi, nói xấu, kích động là đàn ông. Thật đấy, không tin bạn cứ kiểm tra mà xem, những dòng status, những lời comment, những cái reply... hầu như đều xuất phát từ cái giới mà người ta gọi là mạnh mẽ, hào hoa, ga lăng đấy.


Phái mạnh bây giờ khác phái mạnh ngày trước rồi.... khác nhiều lắm...

Bởi phái mạnh bây giờ.. yếu hơn cả phái yếu của ngày trước???

(theo Thẩm Quỳnh Trân/Mực Tím)

Zui zui...nè

Lúc bé , nghỉ học là chuyện lạ. Lớn lên mới biết, chuyện lạ là đi học...
Lúc bé, tưởng đến trường là phải học. Lớn lên mới biết, đến trường còn được ... ngủ .
Lúc bé, tưởng thi xong là hết. Lớn lên mới biết , sau thi còn có thi lại...
Lúc bé, tưởng gặp lại thầy cô là ở nhà. Lớn lên mới biết, còn có thể gặp lại thầy cô ở trường nhiều lần...
Lúc bé , tưởng điểm 10 mới là giỏi. Lớn lên mới biết, chỉ 5 thôi đã quý lắm rồi...
Lúc bé, tưởng càng học càng giỏi. Lớn lên mới biết, càng học càng ngu đi ...

--------------------------------------

Có bạn gái xấu là bất tài. Có bạn gái đẹp là bất an. Có bạn gái giỏi hơn là bất xứng. Có bạn gái dốt là bất hủ. Có bạn gái dữ là bất hạnh. Bị bạn gái chê là bất lực. Bị bạn gái ghen là bất bình. Đánh bạn gái là bất nhân. Lén bạn gái đi uống bia ôm là bất trung. Vì bạn gái bỏ bạn là bất nghĩa. Vì bạn bỏ bạn gái là bất tin. Tin bạn mà mất bạn gái là bất cẩn. Bạn gái giận chỉ uống nước trừ cơm là bất bạo động. Bạn gái đánh mà ko chạy là bất túc. Lời bạn gái dạy là bất tử. Cãi lời bạn gái là bất kính

---------------------------------
Trong quán nhậu, một thực khách gọi bồi bàn: \"Này! Cho anh thêm hai đĩa thịt dê nhé!\". Cùng lúc đó, một ông khách mới vào quán gọi: Cho tôi hai đĩa thịt chó! Anh bồi hướng vào bếp la lớn: Hai dê ăn thêm, hai chó mới vào!!!

-------------------------------

Theo tiến sỹ kinh tế học Robert Bảo (Nobel kinh tế năm 2007) thì: \"Chiều cao cơ thể trong tư thế làm việc tỷ lệ nghịch với mức lương mà họ nhận được\" Ví dụ: - Anh công nhân đứng máy làm việc, lương: 200 USD/Tháng - Anh chuyên viên IT ngồi làm việc trên máy tính: lương 400 USD/Tháng - Người mẫu Yến Vy, Nằm làm việc: lương 1000 USD/đêm

Bộ Luật Tình Yêu Điều 9 : \"Nếu ai vô tình hoặc cố tình gây thương nhớ cho người khác, để lại hậu quả làm tan nát trái tim người đó, thì phải chịu hình phạt chung sống trọn đời với người đó\". <== nhí nhảnh ớn

----------------------------------

Cô gái hoi chàng trai: \"Anh có ĐTDĐ nap truot ko?\" - \"ko em àh\",\"anh có xe hơi BMW ko?\" - \"rất tiếc anh ko có\", \"anh có mặc đồ của Gucci ko?\" - \"ko luôn em ạh\",\"anh có biệt thự 3 tầng ko?\" - \"em ơi anh ko có\",Thế là nàng ra đi ko nói lời từ biệt,anh chàng kia về kể với bố,bố anh bối rối\"Con có thể bán cái Lamborghini Gallardo [93k Euro] để mua 2 cái BMW,bán cái PDA O2 để mua D500,thay đồ của Piere Cardin bằng đồ Gucci rẻ tiền,nhưng mà bắt bố đập bỏ 5 tầng của tòa nhà này thì hơi quá\"

-----------------------

Câu chuyện nói về 1 cuộc thi bắn cung giữa 3 thí sinh: - Thí sinh 1 : Đặt 1 quả táo lên đầu 1 cô người mẫu, cầm cung, đi ra xa 50m, giương cung, BẰN. Sau đó nhìn khán giả cười và nói: \"I'm SinBad\", khán giả vỗ tay nồng nhiệt. - Thí sinh 2: Đặt 1 chanh lên đầu 1 cô người mẫu, cầm cung, đi ra xa 80m, giương cung 45 độ, canh gió, BẰN. Sau đó nhìn khán giả cười và nói: \"I'm RobinHood\", khán giả vỗ tay khâm phục, tán thưởng. - Thí sinh 3 (người Việt Nam): Đặt 1 NHO lên đầu 1 cô người mẫu, cầm cung, đi ra xa 150m, giương cung 12 độ, BẰN. Sau đó nhìn khán giả cười và nói 1 cách hồn nhiên: \"I'm sorry\"

------------------------

Thầy giáo bước vào lớp. Quần áo xộc xệch. Mặt hằm hằm. Cả lớp lo lắng. Vào cửa lớp, thầy rút chiếc dép phải ném bay vù xuống góc trái cuối lớp. Cả lớp sợ. Thầy rút tiếp chiếc dép trái ra ném. Dép bay vèo xuống góc phải của lớp. Cả lớp run. Tiến lại gần bảng, thầy hỏi: - Thế nào, các cô, các cậu có sợ không, hả? - Thưa thầy... sợ, sợ lắm ạ.- Cả lớp đồng thanh. - Thế vẫn chưa sợ bằng đại chiến thế giới lần thứ hai. Các em lấy bút, vở ra học bài mới:\"Đại chiến TG lần thứ Hai\" <== thầy giáo Pro

------------------------------

Một cô gái mặc đồ tắm hai mảnh xuống hồ. Do vận động quá mạnh, mảnh dưới của cô tuột ra. Hoảng hồn, cô gái vội vơ một tấm biển đặt cạnh hồ che và định chạy vào trong. Nhưng khi cô cầm tấm biển, mọi người đều cười! Cô nhìn xuống tấm biển thì thấy dòng chữ:\" Trơn trợt, cấm đùa giỡn!\". Cô vội thay tấm biển khác. Trớ trêu thay! Mọi người càng cười lớn hơn. Lần này, tấm biển ghi:\" Khu vực dành riêng cho nam giới\". Mặt đỏ ửng, cô đổi tấm biển lần nữa. Tới lúc này, mọi người nhìn cô bằng ánh mắt kinh hãi. Cô thấy ngạc nhiên nên nhìn vào tấm biển. Trên tấm biển ghi:\" Chỗ này sâu 1m8\".! ==> hahaha

-------------------------------

Hai cụ già tổ chức ăn mừng 50 năm ngày cưới ở nhà hàng. Xong tiệc, cụ bà thấy cụ ông chảy nước mắt. Bà cảm động lắm và hỏi: - Chắc ông hạnh phúc vì thời gian tuyệt vời chúng ta đã có 50 năm qua phải không? Cụ ông không trả lời và suy nghĩ xa xăm. Đoạn ông trả lời: - 50 năm trước, cha của bà gí súng vào tôi và dọa bỏ tù tôi 50 năm nếu tôi không cưới bà. Phải chi hồi trước tôi can đảm một chút thì lẽ ra ngày mai là tôi mãn hạn tù rồi

Bảo đảm chữa hết bệnh

Một bệnh nhân bị căn bệnh hiểm nghèo cố gắng hỏi bác sĩ với mong muốn biết được tình trạng thực sự về căn bệnh của mình.

Bệnh nhân:
- Xin bác sĩ hãy nói thật. Cơ may được chữa khỏi của tôi là bao nhiêu?

Bác sĩ bình tĩnh trấn an:
- 100%
Bệnh nhân:
- Chao ôi, vậy thì mừng quá. Tôi cứ ngỡ tình trạnh bệnh của tôi là vô vọng.
Bác sĩ:
- Những thống kê y học cho thấy rằng cứ mười người mắc chứng bệnh như ông thì có chín người chết. Ca của ông là ca thứ mười mà tôi chữa, không có bệnh nhân nào trong 9 ca trước sống sót.
Thống kê rất chính xác. Thế nên, ông nhất định sẽ khỏi bệnh.

Làm một người bạn tốt

1. Làm bạn với chính mình: Bước đầu tiên để có một tình bạn đẹp là làm bạn với chính bản thân bạn. Khi chúng ta thật sự yêu thương bản thân mình, chúng ta sẽ tạo được sự lôi cuốn đối với người khác. Vì chúng ta không chú trọng nhiều tới cá nhân chúng ta nên chúng ta sẽ quan tâm đến người khác nhiều hơn.

Chúng ta sẽ có niềm tin để dành thời gian cho người bạn của mình vì chúng ta muốn có những giây phút yên bình, vui vẻ bên bạn ấy chứ không phải chúng ta cần người ấy để làm những điều có lợi cho bản thân.

2. Chọn bạn mà chơi: Nhận ra những người bạn mà bạn mong muốn tạo ra một tình bạn thắm thiết và sâu sắc. Sự gần gũi, thân mật thì quan trọng hơn nhiều so với khoảng thời gian cả hai tiếp xúc nhau.

3. Tạo cơ hội: Trong nhiều phương diện của cuộc sống, bạn bè là những người rất quan trọng. Tình bạn thường có tác dụng định hướng cuộc sống của chúng ta. Tình bạn có được là nhờ ở bản thân bạn và những người bạn của bạn. Hãy quyết tâm dành cho nhau những giờ phút vô cùng đặc biệt và đáng nhớ, đừng ngại ngần gì cả.

4. Thúc đẩy mối quan hệ: Nếu bạn muốn tình bạn được phát triển, hãy bỏ đi nỗi sợ người ta không muốn làm bạn với bạn. Mời họ ăn trưa hoặc tổ chức một buổi họp nhóm và cùng nhau ăn tối.

Khi bạn bè giận nhau, nên là người gọi điện trước nhất. Bạn của bạn cũng đang nóng lòng muốn làm lành với bạn.

5. Quy tắc vàng: Hãy cư xử với bạn của bạn như là cư xử với chính bản thân bạn. Nói khác hơn là “Muốn có một người bạn, trước tiên hãy là một người bạn”. Quan tâm người khác hơn là chờ đợi người ấy quan tâm mình. Hãy thông cảm và tránh than phiền về nhau, cũng như việc ngồi lê đôi mách và chỉ trích nhau.

6. Làm cho bạn của bạn thấy họ rất quan trọng đối với bạn: Bằng cách luôn luôn nhớ những việc tốt và tử tế họ đã làm vì bạn mặc dù những việc ấy có nhỏ nhặt đến thế nào đi nữa. Chú ý tới kiểu tóc mới của họ. Nhớ hỏi han về gia đình họ. Tặng họ những bông hoa hoặc gửi những email giản dị mà ý nghĩa trong những dịp kỉ niệm đặc biệt của họ.

7. Lắng nghe: Thật khó để trở thành một người biết lắng nghe. Hãy rèn luyện kĩ năng này để có một tình bạn lâu dài.

8. Những điểm cần lưu ý:

- Cố gắng đừng cắt ngang lời nói của bạn mình vì ai cũng muốn được tôn trọng. Hãy tập trung vào những gì bạn mình nói.

- Biểu bộ cho bạn mình biết là bạn đang lắng nghe họ nói bằng cách luôn nhìn vào mắt họ. Những cái gật đầu, nói thầm cũng báo hiệu cho người ấy biết bạn đang hiểu quan điểm của người ấy.

- Giảm đi sự xao lãng trong khi nói chuyện với nhau.

- Hỏi một vài câu.

- Cẩn thận khi đưa ra những lời khuyên mặc dù bạn của bạn muốn trút những nỗi buồn và thất vọng với bạn.

Tình yêu thuở 18

Em bình thản trả lời và cười hồn nhiên như một đứa trẻ... vô số tội. Tôi thở dài rồi nhẩm tính, thôi thì thú thật với em là tôi bằng tuổi em vậy. Dù sao tôi cũng tên là Anh, em có xưng tên với tôi thì vẫn phải gọi tôi là anh.


Em 18 tuổi và em muốn biết tuổi của tôi. Tôi thắc mắc:

- Để làm gì?

- Để xưng hô cho đúng mực chứ làm gì!

- Nếu tôi 17 hoặc ít hơn nữa thì sao?

- Dĩ nhiên là: Chào nhóc!

- Thế nếu tôi 18?

- Thì xưng tên, rất thân mật, đúng không?

- Còn tôi 19 thì sao?

- Con chào chú ạ!

- Ôi trời, vậy em không bao giờ gọi người khác là anh à?

- Có chứ, nếu người ấy được mẹ mình... sinh ra trước mình!

Em bình thản trả lời và cười hồn nhiên như một đứa trẻ... vô số tội. Tôi thở dài rồi nhẩm tính, thôi thì thú thật với em là tôi bằng tuổi em vậy. Dù sao tôi cũng tên là Anh, em có xưng tên với tôi thì vẫn phải gọi tôi là anh. Thế là đạt được nửa mục tiêu rồi! Sự lựa chọn này có lẽ dễ chịu và... dễ tiến triển theo hướng tốt đẹp nhất. Nhưng em chẳng để tôi thỏa mãn quá một giây, em véo von:

- Phạm Anh ơi, đi cà phê với Nhi không?

Tôi đau khổ ngồi khuấy muốn bể li cà phê, tìm cách dụ dỗ:

- Gọi Anh là được rồi, đừng kêu cả họ ra như thế, tốn nước bọt, Nhi sẽ mệt đấy, mà Anh nghe cũng không quen tai!

- Ơ, nhưng Nhi đâu có thấy mệt?

- Thôi mà, năn nỉ đấy!

- Với một điều kiện: Nếu Phạm Anh làm cho Nhi bật cười được!

Tôi than trời, vậy là hết! Dân IT chính hiệu khô khan và cứng như một cái máy tính. Dĩ nhiên tôi có thể dễ dàng mua được nụ cười của em bằng vài cú nhấp chuột, với những mẩu chuyện vui, bài hát, hình ảnh ngộ nghĩnh tràn đầy trên các web. Nhưng ngay tại vị trí này, thứ xa xỉ ấy lấy ở đâu ra? Tôi cũng biết vài ba chuyện tiếu lâm nhưng cho vàng cũng chẳng dám kể cho em nghe, nó chỉ tiêu hóa được với mấy thằng bạn đầu óc sâu bọ của tôi thôi. Vậy là tôi thiểu não gục mặt xuống bàn và giương cờ trắng. Những tưởng mọi sự đã xong, ấy vậy mà em lại... bật cười - vì chính bộ dạng của tôi! Tôi như chết đuối vớ được phao, chộp liền cơ hội:

- Đấy, Nhi cười rồi nhé!

- Ok, hi hi... nhìn Anh, Nhi không nín được cười!

Tôi mặc kệ em cười cợt tôi, miễn em chịu gọi tôi bằng “Anh” là được rồi. Ôi, cái từ đó mới ngọt ngào làm sao! Tất nhiên em gọi tôi là “Anh” đơn thuần chỉ là gọi cái tên của tôi mà thôi. Nhưng tôi nhất định hiểu theo nghĩa khác - cái nghĩa mà chữ “A” không cần phải viết hoa. Mỗi lần em ngọt ngào “Anh ơi, Anh à...”, lòng tôi lại lâng lâng, tâm trí tôi mơ màng tận chín tầng mây. Trong đầu tôi hiện lên hình ảnh xa xôi vời vợi nhưng vô cùng ngọt ngào: Em đeo tạp dề, tay chảo tay đũa còn tôi mặc veste, thắt cravat và xách cặp táp đi làm. Nhưng thường thói đời “Được voi đòi tiên”. Khi em gọi “Anh” thì tôi ngàn lần sung sướng nhưng đến lúc em xưng Nhi, tôi lại như nhai phải hạt sạn trong bữa cơm ngon. Tên em rất hay, rất dễ thương, tôi chẳng có ý kiến. Chỉ tội, tôi muốn gọi em theo cách khác cơ! Thế là tôi lại dụ dỗ:

- Nhi có thích cái tên của mình không?

- Thích chứ! Sao lại hỏi vậy?

- Ừ, nó cũng tàm tạm. Nhưng Nhi có muốn anh đặt cho Nhi một cái tên thân mật để chỉ mình anh gọi thôi không?

- Tên gì?

- “Em”!

- Xì, xấu ỉn! Nhi không thích!

Tôi cố gắng nhẫn nại:

- Để anh thử gọi một lần nhé, chắc cũng không đến nỗi nào đâu!

- Anh muốn gọi thì Anh cứ gọi, nhưng không phải tên Nhi, Nhi sẽ không thưa đâu. Đã không thích thì việc gì phải thử?

Tôi bó tay và cúi đầu thở dài. Thôi có voi thì đành cưỡi voi vậy, mơ chi bay được như tiên để rồi té nhào thê thảm. Tôi tôn trọng quyết định của em và tự hài lòng với những gì em ban tặng. Tôi tự an ủi mình dù sao còn hơn khối đứa khi vẫn được em gọi là “Anh”. Và tôi tiếp tục mơ mộng. Mơ mộng nghĩa là tiếp tục hi vọng. Một sự hi vọng mong manh và không có cơ sở! Mặc kệ...

Tôi tình nguyện làm nô lệ của em bất cứ khi nào em cần. Em bảo “Anh ơi, Nhi đang vui lắm!”, tôi lập tức xuất hiện rồi cùng em la cà các quán ăn, đi shopping, đi cà phê... tôi sẽ hớn hở lắng nghe em tía lia đủ thứ chuyện và nhe răng hùa vào niềm vui của em. Nếu em nói “Anh ơi, Nhi buồn!”, thì mọi người cứ tin đi, dù thì là trời đang nắng chang chang hay mưa gió bão bùng, dù sáng sớm hay tối khuya, tôi cũng sẽ đến ngay cạnh em, cho em mượn bờ vai, làm cái thùng rác cho em trút tâm sự (nhiều khi những tâm sự đó chỉ là: Hôm nay sao trời cứ âm u hoài, buồn chết đi được!) và kiêm luôn cả nhiệm vụ của một chiếc mùi - xoa nếu em có nhu cầu khóc. Thậm chí cả khi em không vui không buồn, tôi vẫn sẵn sàng phục vụ em. Chỉ cần em nói “muốn” thì cho dù là “muốn hái sao trên trời”, tôi cũng sẽ cố hái cho bằng được. Và tôi thấy mình là một nô lệ hạnh phúc! Chỉ có điều hạt sạn vẫn làm bữa ăn ngon của tôi lấn cấn mãi...

Sinh nhật tôi, em là khách mời danh dự và duy nhất. Thức ăn ngon, nến thơm, hoa hồng, bánh kem... tất cả đều tuyệt vời! Sau khi bắt tôi thổi nến và ước nguyện trong lúc em hát bài Happy Birthday, em tặng cho tôi một chiếc hộp màu hồng rất xinh xắn. Tôi run run mở ra và ngẩn mặt tò te: Đó là một cái hộp rỗng! Em mỉm cười:

- Lúc nãy Anh ước nguyện điều gì, bây giờ chiếc hộp sẽ thực hiện điều ấy!

Đầu tôi chợt lóe sáng:

- Chiếc hộp này có linh nghiệm vậy không?

- Anh cứ thử xem sao?

- Được rồi! Điều ước của anh là hôm nay Nhi sẽ... đổi tên thành “Em”!

Em đưa chiếc hộp lên tai, lắng nghe rồi khẽ lắc đầu:

- Chiếc hộp nói: The page cannot be displayed! Anh thử điều khác đi!

Tôi đã quá quen và chán ngấy dòng chữ tiếng Anh đó mỗi khi mở không được trang web cần tìm. Tôi dỗi:

- Đó là ước nguyện duy nhất của anh!

- Tại sao?

Tại sao, làm sao tôi biết là tại sao? Đơn giản chỉ là điều tôi muốn và rất muốn, chẳng lẽ em không hiểu? Thấy tôi không trả lời, em khoanh tay chăm chú nhìn tôi rất nghiêm túc:

- Tại sao con trai lại luôn muốn làm anh nhỉ?

- Anh không biết, có lẽ vì họ mặc nhiên luôn nghĩ mình là phái mạnh...

Em cúi xuống di di những vệt nước trên mặt bàn. Em lẩm bẩm một mình nhưng vẫn đủ tôi nghe thấy:

- Liệu có đủ khả năng không?

Tôi chợt thấy nóng mặt và tức giận thật sự. Em không biết rằng nói như thế nghĩa là em đã xúc phạm đến lòng tự tôn của tôi sao? Chẳng khác nào em nghi ngờ tôi không phải là phái mạnh và không đủ sức bảo vệ em. Em coi thường tôi thế? Những mạch máu dưới cánh tay tôi rần rật chảy và căng phồng lên.Tôi muốn hất tung mọi thứ nhưng tôi không làm được vì em đang ngồi trước mặt. Vậy là tôi im lặng đến tận lúc em ra về. Tôi buông người đổ phịch xuống giường, rã rời, đầu căng như dây đàn. Thôi, em đã không tin tôi thì còn nói năng gì được nữa? Ngày mai tôi sẽ chính thức kết thúc kiếp nô lệ cho em. Không gặp mặt, không điện thoại, không email gì cả...

Sáng nay tôi nhận được tin nhắn lạ lùng của em : “Tạm biệt búp bê thân yêu, tạm biệt gấu Misa nhé, tạm biệt Chuột Nhắt xinh xinh...”. Tôi cuống cuồng lên. Lúc trước thỉnh thoảng em vẫn gọi tôi là Chuột Nhắt. Ôi, chẳng lẽ tôi chưa nói gì mà em đã quyết định giùm tôi rồi sao? Tôi lật đật gọi lại cho em - “Số máy quí khách vừa gọi hiện không liên lạc được”. Tôi luống cuống gọi vào máy bàn nhà em - không ai nhấc máy. Tôi hớt hải phóng xe qua nhà em - một chiếc chìa khóa to uỵch treo lủng lẳng. Tôi thất thểu, lòng nặng trĩu. Hơn một tháng không liên lạc, tôi cố tình quên em nhưng em biết không, tôi nhớ em phát điên!

Buổi tối, đang nằm như cái xác thì điện thoại réo ầm lên. Tôi nhỏm dậy vồ lấy nhưng buồn rầu thay, đó là một số lạ hoắc! “Alô, anh là Phạm Anh phải không?”. Một giọng con gái miền Namngọt ngào rất lạ! “Vâng, nhưng chị là ai?” “Em là một fan của anh nè. Có lẽ anh ngạc nhiên không biết em là ai nhưng em biết anh rất rõ đấy. Em làm bạn anh được không?”. Tôi bối rối thực sự “Ơ, ư...”. Cô gái bật cười “Anh bối rối à? Chắc anh chưa bao giờ được làm quen kiểu này, đúng không? Thôi, để em hát cho anh nghe nhé!” “Lại còn thế nữa cơ đấy?”. Và cái giọng miền Bắc chua lét quen thuộc của em véo von “Tạm biệt búp bê thân yêu...”

- Thôi xong, sụp bẫy rồi! Ai bày cho Nhi cái chiêu quỉ quái này thế?

Em khúc khích:

- Chẳng ai bày cả!

- Thế giọng ai vừa nói đấy?

- Ơ, giọng em đấy, không nhận ra à?

Tôi chợt ngỡ ngàng:

- Á, này, Nhi... em... chịu “đổi tên” rồi à?

- Cũng đang tập!

- Em chịu tin anh rồi à?

- Cũng đang thử! Anh có ý kiến gì à? Nếu phản đối thì em sẽ stop ngay!

- Ơ, không, ý kiến ý cò gì đâu? Anh vui phát điên lên đây này! À, mà sao em hát bài đó?

- Vì em đang ở một nơi khá xa. Một chuyến du lịch với gia đình! Và: I miss you like crazy!

Tit... tit... Em cúp máy lâu rồi mà tôi vẫn đần người ra. Tôi cấu mình thật đau để chắc rằng không mơ. Mà ngàn lần tôi cũng chẳng muốn mình đang mơ chút nào. Ha ha... nó là sự thật đấy! Ôi, cái tuổi 18 của ta, sao mà diệu kì thế!

Lập Trình Viên - Bạn Sẽ Bị Đào Thải Ngày Mai?

Thế giới là một cuộc chọn lọc và đào thải không ngừng, nhưng thế giới IT còn khắc nghiệt hơn. Bạn sẽ là người bị đào thải kế tiếp?

Cái chết của mô hình Waterfall
Năm 1970, mô hình nổi tiếng và được áp dụng trong qui trình phát triển phần mềm tại phần lớn các công ty hiện nay ra đời: mô hình thác nuớc (waterfall model). Mô hình này là kết quả của sự kết hợp các mô hình sản xuất từ các ngành kỹ thuật khác áp dụng cho công nghệ phần mềm. Nó định nghĩa ra chuỗi qui trình phát triển theo thứ tự từ trên xuống bao gồm: lấy yêu cầu khách hàng, làm thiết kế, phát triển, kiểm định và cuối cùng sẽ bàn giao cho người dùng. Bạn sẽ thấy mô hình này giống hệt với qui trình xây một căn nhà: kiến trúc sư tìm hiểu yêu cầu của chủ nhà, thiết kế căn nhà, đưa cho đội ngũ thi công thực hiện, kiểm tra chất lượng và cuối cùng trao chìa khóa cho người sở hữu.

Năm năm sau, Frederick Brooks phát hiện ra lỗ hổng lớn đầu tiên của mô hình này trong cuốn sách kinh điển về quản trị dự án: The Mythical Man-Month (Bí mật về tháng nhân công). Chắc các bạn làm phần mềm đều biết khái niệm man-month (hay man-day) là thước đo căn bản để tính giá cho việc phát triển phần mềm: đó là công lao động trong một tháng (hay một ngày) của một lập trình viên. Phát hiện nổi tiếng nhất của Brooks là “trong phát triển phần mềm không phải cứ thêm nhân công thì dự án sẽ nhanh hơn theo cùng cấp số“. Vấn đề là do sự mất cân đối trong giao tiếp khi số lượng người tham gia tăng lên.

Nhiều năm qua đi, người ta ngày cảng học hỏi được nhiều hơn về cách tốt nhất để làm một phần mềm và cũng bắt đầu nhận thức được rằng mô hình thác nước là quá cứng nhắc và thiếu thực tế. Không giống như việc bạn xây một căn nhà, ngay khi thiết kế, người ta đã dự kiến được 99% hình thù và chi tiết căn nhà sẽ như thế nào. Một dự án phần mềm hiếm khi được hình dung một cách chi tiết và đúng theo yêu cầu công việc. Chỉ khi đưa vào thử nghiệm trong môi trường thực các vấn đề mới bắt đầu phát sinh và việc thay đổi yêu cầu diễn ra thường xuyên.

Những người “ngoại đạo” thường nghĩ rằng vì phần mềm là “mềm” nên có thể dễ dàng thay đổi chỉnh sửa tùy hứng. Nhưng thực ra phầm mềm cũng giống như bất kỳ một cơ cấu kỹ thuật nào khác (như máy móc cơ khí chẳng hạn), nó cũng có thiết kế và cấu trúc (mà thường lại còn phức tạp hơn các máy móc cơ khí rất nhiều).

Khi yêu cầu công việc thay đổi, việc thay đổi trong phần mềm là tất yếu và trong thế kỷ 21 này các thay đổi lại càng diễn ra thường xuyên và nhanh chóng. Với mô hình thác, việc theo kịp các thay đổi là không thể thực hiện vì vòng qui trình của nó quá dài. Nó giống như việc cứ mỗi lần có bất kỳ thay đổi nào là bạn phải gần như phải phá căn nhà đi và xây lại từ đầu. Bạn có thể hình dung ra được sự tốn kém và bất tiện sẽ lớn như thế nào.

Tóm lại, hai vấn đề lớn nhất của mô hình thác nước là:

  1. Mô hình này quá tự tin với giả định rằng chúng ta luôn có thể làm được một hệ thống hoàn hảo ngày lần đầu.

  2. Phầm mềm ngày càng khác với các cơ cấu kỹ thuật cứng nhắc mà giống như các cơ thể sống - nó phải tiến hóa để thích hợp với môi trường. Đây chính là tiền đề cho một phương thức phát triển mới chiếm lĩnh ưu thế trong những năm gần đây: phương thức phát triển linh hoạt (Agile Development Methods).

Phát triển linh hoạt - Phần mềm tiến hoá

Phương thức phát triển phần mềm linh hoạt bắt đầu xuất hiện vào đầu những năm 90 với mục tiêu là phần mềm phải có khả năng biến đổi, phát triển và tiến hóa theo thời gian mà không cần phải làm lại từ đầu. Phương thức này tập chung vào tính đơn giản: tạo ra một phần mềm thật đơn giản đáp ứng đúng yêu cầu của khách hàng hôm nay và sẵn sàng cho những thay đổi vào ngày mai.

Phương thức phát triển này dựa trên hai kỹ thuật đáng lưu ý nhất:

  1. Refactoring: Giống như vệc bạn trang trí lại căn nhà mà không cần phải cơi nới, xây thêm hay xây lại, “refactoring” (xin lỗi, tôi chưa tìm được từ tiếng Việt nào thích hợp để dịch) cho phép chúng ta chuyển đổi mã lệnh để làm cho ứng dụng tốt hơn, đẹp hơn mà không phá hỏng nó (các bạn có thể tìm hiểu thêm về kỹ thuật này trong cuốn Refactoring: Improving the Design of Existing Code).
  2. Developer Testing: Phần mềm do chính các lập trình viên được kiểm định thay vì do các nhóm tester độc lập làm. Công cụ là “unit test”, cho phép từng phần nhỏ của phần mềm được kiểm định ngay trong quá trình phát triển trước khi lắp ghép vào ứng dụng. (xin xem thêm cuốn Test Driven Development: By Example)

Một trong những yếu tố khác khiến cho phương thức phát triển linh hoạt có thể cất cánh là sự lớn mạnh của các ngôn ngữ kịch bản (scripting language) như PHP, Python và gần đây là “viên hồng ngọc” Ruby. Tính linh hoạt của các ngôn ngữ này khiến cho việc thay đổi phần mềm dễ dàng hơn nhiều so với các ngôn ngữ tiền bối. Thêm vào đó là việc cộng đồng mã nguồn mở đang cung cấp vô số các thư viện dựng sẵn, đáp ứng cho việc phát triển nhanh, triển khai nhanh, thường xuyên đưa ra các cập nhật mới (release soon, release often) theo đúng tinh thần của phương thức phát triển linh hoạt. Phần mềm ngày nay không phải được nâng cấp hàng năm mà là hàng tuần, thậm chí hàng ngày.

Tương lai phát triển phần mềm: Chỉ cần một vài “nghệ nhân”

Digg, del.icio.us… các “phần mềm” trị giá hàng chục triệu, hàng trăm triệu USD chỉ do một hai người thực hiện. Facebook, mạng xã hội trị giá nhiều tỷ USD, cũng chỉ do một nhóm nhỏ làm ra.

Bí quyết phát triển các phần mềm có giá trị nhất ngày nay là chỉ cần một vài người có kỹ năng, nhiều nhiệt huyết. Với vài cá nhân xuất sắc trang bị các ngôn ngữ lập trình hiện đại và phương thức làm việc mới, một nhóm nhỏ có thể làm ra những sản phẩm tốt hơn cả một “đạo quân” lập trình viên trước kia.

Tổng kết lại, có thể thấy những thay đổi sẽ diễn ra trong các năm tới đây:

  • Những kỹ sư phần mềm có trình độ cao, có nhiệt huyết và tham vọng sẽ là những cỗ máy làm ra tiền.
  • Những lập trình viên không có kỹ năng đặc biệt có lẽ nên tìm việc làm ở lĩnh vực khác.
  • Những thay đổi mà chúng ta đang thấy ở thị trường phần mềm đại chúng sẽ diễn ra ở các công ty lớn.
  • Đưa phần mềm cho nước ngoài gia công (outsourcing) sẽ ngày càng ít tính kinh tế hơn.
  • Khoa học máy tính vẫn là lĩnh vực cạnh tranh và đòi hỏi cao.
Tương lai của các LTV Việt Nam

Nhìn các xu hướng đang diễn ra trên thế giới, có thể thấy rằng các dự án cần hàng trăm người sẽ ngày càng ít đi. Theo tính toán của Mỹ, chi phí outsourcing đang gia tăng (từ 1/10 lên 1/3 so với giá thành sản xuất trong nước) làm cho việc đưa phần mềm ra nước ngoài gia công ngày càng kém hấp dẫn. Ngoài ra, do khó khăn về giao tiếp và chệnh lệch về trình độ, chất lượng các dự án này cũng không được như mong muốn và rất khó bắt kịp các thay đổi của khác hàng.

Các LTV luôn có xu hướng muốn gia nhập các công ty lớn, tham gia vào các dự án lớn. Nhưng có thể đấy sẽ cách tiếp cận sai lầm vì:

  • Tương lai của các công ty làm xuất khẩu phần mềm dạng này đang ngày càng bấp bênh.
  • Bản thân các LTV thường không cải thiện được trình độ vì các công việc được giao ít cần kỹ năng cao hay tính sáng tạo.

Tất nhiên, nhìn thẳng vào thực tế, sự thay đổi sẽ không diễn ra ngay trong nay mai — mô hình thác nước và các biến thể của nó vẫn sẽ được dùng, người ta sẽ vẫn outsourcing. Nhưng mọi thứ sẽ ngày càng khó khăn hơn, đòi hỏi cao hơn và chỉ khi bạn thực sự chuẩn bị tốt cho sự thay đổi thì mới tránh được việc bị đào thải.

Đáng lo ngại nhất là các LTV Việt Nam còn xa mới theo kịp các đồng nghiệp ở các nước như Ấn Độ hay Ireland cả về mặt tổ chức lẫn kỹ năng. Chúng ta quá chú trọng tới các công nghệ độc quyền của Microsoft, Oracle hay IBM và hiểu biết về mã nguồn mở là một lỗ hổng lớn. Không may, có thể ngày mai công ty sẽ nói lời chia tay với bạn chỉ vì bạn không có kinh nghiệm gì về Python hay cơ sở dữ liệu MySQL. Như tựa một bộ phim “Đó là một tương lai không quá xa” (Not too far future), xin hãy suy nghĩ lại con đường của mình.

(theo ReadWriteWeb)