IBM Extreme Blue Summer Internship

Posted on

IBM Extreme Blue is a twelve-week length Summer internship which provides an unique and prime professional experience for talented college students. Three are three IBM labs hosting this program in the US, including Austin, Reach Triangle Park (RTP), and San Jose, and total of 15 labs worldwide. Each team consists three technical interns and one MBA intern. Their mission is to design and develop the best solution to solve an important existing technical issue with emerging technologies. It was my honor to be part of the Extreme Blue program this Summer and this valuable experience has improved me both personally and professionally.

Develop Solutions

Each Extreme Blue project is assigned 2-8 mentors, who have deep understanding of the current situation of the problem area. They provide guidance and approve the work achievement throughout the course of the internship. With this guidance, Extreme blue interns need to go through brainstorming, researching, and group discussion to design the best possible solution. Prove of concept is usually the first task and after that, the team continues to develop the solution methodically.

Pitch to Executives

Since all Extreme Blue projects are related to one or more emerging technologies, being an Extreme Blue intern means to be highly visible to the IBM internal employees as well as IBM executives. One of the unique experience that the program provides is to present the on-going project to executives on a weekly basis and obtain valuable feedback and suggestions to improve both the presentation and the project.

Agile Development

Agile development methodologies enable this twelve-week internship to be outstandingly productive. We used industrial standard software to facilitate the software development, like IBM Rational Team Concert. There are five bi-weekly iterations, starting with an iteration plan and ending with iteration reflection. Here is another post about the Agile development methodologies applied: http://nesj.net/blog/2011/05/agile-software-development.

Team Dynamics

The only way to produce the greatest result from the project has to be through teamwork. There is no wrong questions or answers but the sparks of ideas can be crucial to the success of the project. With the time constraints in mind, besides properly assigned work to each member, it’s important to ensure that the exchanging ideas and discussion happen frequently and whenever needed. We worked closely together and often late in the night toward the end of the internship.

Group Activities

Unlike other internship programs which mostly expect local candidates, Extreme Blue program tends to attract talent from across the country to a project. IBM provides fully-furnished apartments near the IBM lab for all interns. Interns are free to organize different activities in their free time. We had a weekly movie night, game nights, dinning out, house parties, etc. The internship just lasted for a Summer, but those memories are kept in pictures and the heart.

Official Website : IBM Extreme Blue Program


Agile Software Development

Posted on

Agile is a modern software development methodology for rapid software development. It divides up the software development process into multiple short iterations. There will be different goals and tasks defined in different iterations.

Different from the waterfall model, Agile does not encourage requirements to be fully defined at the beginning. In this case, Agile saves the effort of coming up the whole requirements for the software and chance is that the requirements are going to change anyway. Also, the software can be shipped with the most important features in a short time period to meet the market demand.

The important features are targeting the user story, a sentence that describes how the software can benefit the user. For example, as a restaurant manager, I can use the mobile application to keep track of all the reservations with my phone so I can focus on providing excellent services to my customers. It’s something like a user scenario, but it adds the value of the tool in the user story. There will be high level user stories and low level user stories. With each user story, a set of tasks can be defined to achieve the functionality. IBM Rational Team Concert is a software that can be embedded in Eclipse for the project management. More than just the source control feature, there are many collaboration tools came with RTC specifically for Agile development, such as defining user stories and tasks and bug tracking.

Even though Agile is meant for rapid software development, it emphasizes the quality of code. A buggy software is going to cost the company much more than delaying the shipment. One of the features of Agile development is finding out defaults early. Pair programming is a well-known Agile technique for that. Sometimes, the defect is not from the code, but the design. With Agile, since the most demanding features needed to be done in the first few iterations, the major design defects if there are any will be discovered at the early phase of development.

Daily scrum is an easy-to-use Agile technique. It’s a daily meeting within a team that each person stands up and reports the following three things in 5 minutes.
1. What did you do yesterday?
2. What are you going do?
3. What are the blockers?
This technique helps everyone in the team to be aware of what others are doing. It’s okay that the things that someone in your team doing are not relevant to yours, but chances are you will appreciate the information that you get from this practice while working in a team. For example, you may find out that your teammate is going a different direction from what you expect. Or you may be the one blocking the other development process.