Know more and connect with me on [Linkedin Profile].

Saturday, July 21, 2007

Create your First Mobile Application in 1 Hour!

Recently I bought a new mobile, Nokia E61i. It is actually not just a mobile, look at:

I want to create my first mobile application on it, I know I have the choice between C++ and Java. I want to start the easy way so I decided to give java a try.

I tried a Netbeans Mobility Pack. E61i is compatible with CDLC 1.1 and MIDP 2.0, so install the CDLC version.

Using graphical drag and drop I have created my first application very easily, I encourage everyone to try it.

Monday, July 16, 2007

FireFox Profiles

I access the Internet using my Laptop from work, home and at many clients sites. I always adjusting FireFox proxy settings to match my current location settings. I want to have an end to this repetitive task. I found that FireFox can have multiple profiles feature. So I can have profile for "Home" with direct connection to the Internet and "Work" configured for the work proxy and so on.

I found the solution at:

I just added -ProfileManager switch after the FireFox exe name. When I start FireFox you I see the following dialog.

So you can manage as much profiles as you want.

Friday, July 13, 2007

Software Process Improvement

In this article, the author highlights a software process improvement approach that works effectively in his opinion. Next, he will highlight the importance of having central knowledge base to store organization assets. Finally the IDEAL methodology is briefed.

SPI in a nutshell:

For Software Process Improvement (SPI) new comers, process improvement seems to be confusing. In the following paragraphs I will try to explain process improvement intent and rational behind it.

Any software Company has 3 basic elements that work together to develop software products. They are People, tools and processes. People use tools in a certain way to develop products. People need leadership, ethical management, and rewarding. Tools require proper selection and training to be used effectively. The remaining part is the way people collaborate together to plan and execute development projects. The way people collaborate and use tools is called processes. Software process improvement focuses on improving the management procedures used by team members to manage work tasks and the way and order tools are used.

Still confused! Process improvement can be called management practices improvements. As many people believe they lack proper management to their human and non-human resources. SPI helps you learn how to manage your team members, projects and tools in an organized and scientific way.

First Steps in SPI:

Every company has processes, even if large parts of it are not written and not consistently followed. Regardless of your organization size and characteristics, if you have developed products, then you have used some processes to develop it, even if known verbally.

The first days of process improvement should focus on discovering the current way you manage your projects, whether they are good or bad. Start by documenting your organization structure, job description, responsibilities, the processes/procedures used in the company, and any assumptions in action. Now you have something to start improvement efforts.

Second step is to focus on your business needs and critic your system. Document your current problems, challenges, advantages, disadvantages, and areas you believe you should improve.

Now you have basis to start with and rational behind your SPI activities. Trying to ignore your company culture, strengths, weaknesses and experience in doing software development in favor of a suggested magic solution that will overnight convert you to a mature company is unrealistic.

The idea is to discover your system, document it, and retain your strengths. Study your current problems and your business needs. Learn from other’s method of doing development, and then find ways to improve your weaknesses.

What if you reuse ready made process descriptions to move faster and use a reliable quality system that is proven to be perfect? Sure you will start fast but in the wrong road. It is not yours, so the gaps between what is been already documented and the actual practices will be widened. Even if you enforce team members to follow it, they will find ways to avoid it.

And what is next in SPI?

Most of the companies, probably your company have the foundation of project management. So treat software process improvement as high priority project. Define requirements (i.e. what to be achieved), tasks, assign resources, and define budgets. Then track tasks completion and cost. Make the project as a 6 months project, and at the end of the project evaluate your position and plan for the next 6 month project.

Software process improvement is a continuous effort, so the 6 months projects will never end. You should move from initial software process improvement to CMMI level 2 then to higher levels. The only level that you can stay at is level 5. Level 5 is the “Optimizing level”, which means continuous process improvements.

Start by documenting your best practices that work great with you, the current processes and procedures that you use, then document current organization structure, job descriptions, and document all templates used in your company. It is easy to create Plan templates from the best plan you have.

Define clearly what is good in your organizations and what works bad, what are the future challenges you have to meet. Define your business goals and how they will affect your current processes.

Make 3 or 4 iterations per project, which is 6 months time frame. In all iterations, follow the IDEAL model. Although there are several improvement models that you can use such as PDCA (Plan, Do, Check, Act), PDSA (Plan, Do, Study, Act) or Six Sigma DMAIC (Define, Measure, Analyze, Improve, Control), I suggest IDEAL for its comprehensive guidance.

Organization Repository:

If you don’t have a content management system hosted in your current Intranet, you should have one very fast.

Many organization experience, culture, knowledge are stored in the memories of team members and on many emails stored on personal computers. Some have file server, but have never being up to date and are usually incomplete. File server in my experience is not efficient in organizing organization assets. It is inefficient to browse for a certain document and you can’t effectively search.

Organization should move from vocal knowledge to written knowledge. When human invented writing, it was the first time people can share knowledge between them even if they have never met. Your organization should have central repository to host all of the company documents, all project artifacts, lessons learned, guidance to current and new employees, and all digital asset. By doing so, you will build a real organization asset that foster team learning, sharing, and reusing across your organization.

Happily there exist many open source and commercial systems, selecting which system to select is a critical task and beyond the scope of this article.

IDEAL brief description:

Here is a brief about IDEAL, for full description look at:

IDEAL is a model for continuous improvement. It helps by describing the main steps necessary to establish a successful improvement program.

IDEAL is acronym for Initiating, Diagnosing, Establishing, Acting, and Learning.

I – Initiating: Laying the groundwork for a successful improvement effort.

  • Stimulus for change: Change for the sake of change rarely results in significant improvement, so state business reasons for process improvement. When the business reasons for change are more evident, there is greater buy-in throughout the organization and there are greater chances for success.
  • What benefits (such as return on investment or improved capabilities and morale) will result?
  • Sponsorship: It is necessary to maintain sponsorship levels throughout an improvement effort. Sponsors can be most effective if they give personal attention to the effort and stick with it through difficult times.

D – Diagnosing: Determining where you are relative to where you want to be.

  • Characterizing the current and desired states is similar to identifying the origin and destination of a journey. A good starting point is "stimulus for change" activity in Initiating phase.
  • Develop Recommendations

E – Establishing: Planning the specifics of how you will reach your destination.

  • Set Priorities
  • Develop Approach
  • Plan Actions

A – Acting: Doing the work according to the plan.

  • Create Solution: Write the new process descriptions (or the modifications proposed), templates and procedures that are best guess solution.
  • Pilot/Test Solution: Try executing the process on a pilot project to make sure of applicability.
  • Refine Solution: Once the pilot done, refine per the lessons learned in the Pilot project.
  • Implement Solution: You are ready now to apply the new process changes organization wide.

L – Learning: Learning from the experience and improving your ability to adopt new technologies in the future.

  • Analyze and Validate: In what ways did the effort accomplish its intended purpose? What worked well? What could be done more effectively or efficiently? Lessons are collected, analyzed, summarized, and documented. The business needs identified during the initiating phase are reexamined to see if they have been met.
  • Propose Future Actions: During this activity, recommendations based on analysis and validation are developed and documented. Proposals for improving future change implementations are provided to appropriate levels of management for consideration.

Note: many statements are just copied from “The IDEAL(SM) Model: A Practical Guide for Improvement” at