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

Saturday, May 26, 2007

Open Source Projects Metrics


Ohloh.com is a new kind of web site, it monitors open source projects, crawl their source code repositories and give you some interesting metrics.

Try JSPWiki (A Java based Wiki) and you will find interesting facts like:
Code Base: 65,670 LOC
Estimated Effort: 16 Person Years
It will cost you $879,389 if the average programmer salary is $55,000. You can change the average salary to your local market salary. I am sure you can save a lot by using open source tools.

Try it at:
http://www.Ohloh.com

Thursday, May 24, 2007

The Three Elements of Communication


Albert Mehrabian stated in his theory that verbal communications have 3 components:
1) words,
2) tone of voice and
3) body language.

He stated that words stands for 7%, tone of the voice is 38% and body language is 55%.

Look at this example: "You are a smart man", you may mean it or mean "you are supposed to be smart", or "you are really stupid", it depends on your tone and body language.

To properly interpreter his theory, apply it specially on emotional expressions, but words alone in factual expressions should express more than 7%.

If you feel a little angry, feel you don't trust the other party, or the situation became ambiguous, it it better to hold a meeting for full bandwidth of communications.

If you feel greatly angry, stop doing anything and relax. don't email, speak, or meet. Just do nothing and you can take a shower if possible. In extreme cases, you can do nothing and relax for a few days.

Friday, May 18, 2007

Thunderbird and Calendar


I am a fan user of Thunderbird, but I was missing a calendar features. Today I am happy to find what I was dreaming of. I found addon that did more than what I wished.

It also exist also a separate application for tasks and calendar if you wish. Enjoy all of these at:

http://www.mozilla.org/projects/calendar/

Look at: Choosing an open calendar manager

Wednesday, May 16, 2007

Software Process Improvements. The Fastest Way!


You want process improvement. Let me tell you about the fastest way ever. Just buy that commercial package that has complete Quality System that let you achieve CMMI maturity level 2/3/4/5, whatever you want. Just copy and paste and you are almost done. What is remaining? Just enforce your team to follow the new Quality System processes and you are done. Enforcing them to follow it is not so hard especially if you used the management power (sometimes called sponsorship). Is this fast? yes, but you have achieved nothing.

When you get ready made process description and templates, you instantly have a system but simply isn't suitable for you. A clothes that does not fit your size. After a while, you have a good process and your implementation is always lagging and struggling. Sure your team productivity, creativity and moral will be degraded as well.

To give an analogy. Look at clothes variety. What is the probability of getting a complete formal suite of someone else that match your size, favorite style and color. The probability is very low.
Organizations needs quality systems that is suitable for them. There exist many factors like team size, skills, structure, type of products, ... etc. This makes reusing others processes will not help you, but typically will hurt you much.

Improve your quality system step by step completely synchronized with your actual implementation. Don't start with great process that no one needs to follow.

Copy and paste ready made process description and templates is very easy while applying them in real business life is much harder and tedious.

So, stop using other's processes and templates and develop your own. Time consuming? Yes, but this is the fastest way for real process improvement if not the only way.

Wednesday, May 09, 2007

Is Waterfall Still Valuable?


I wonder if Waterfall methodology still valuable. I see many companies that apply CMMI L2 is just using waterfall. Is it consistent to be a small business and still work with strict Waterfall?

I think many companies are comfortable using waterfall as the artifacts required are classic and generally simpler. One complete requirements document with some revisions based on limited number of change requests. I hope we can move the software industry to use iterative methodologies to increase work progress visibility.

Read more details about waterfall and iterative methodologies at:
Iterative and incremental development
Waterfall model








[Wikipedia quotation]

In summary, the criticisms of a non-iterative development approach (such as the waterfall model) are as follows:

  • Many software projects must be open to change due to external factors; the majority of software is written as part of a contract with a client, and clients are notorious for changing their stated requirements. Thus the software project must be adaptable, and spending considerable effort in design and implementation based on the idea that requirements will never change is neither adaptable nor realistic in these cases.
  • Unless those who specify requirements and those who design the software system in question are highly competent, it is difficult to know exactly what is needed in each phase of the software process before some time is spent in the phase "following" it. That is, feedback from following phases is needed to complete "preceding" phases satisfactorily. For example, the design phase may need feedback from the implementation phase to identify problem design areas. The counter-argument for the waterfall model is that experienced designers may have worked on similar systems before, and so may be able to accurately predict problem areas without time spent prototyping and implementing.
  • Constant testing from the design, implementation and verification phases is required to validate the phases preceding them. Constant "prototype design" work is needed to ensure that requirements are non-contradictory and possible to fulfill; constant implementation is needed to find problem areas and inform the design process; constant integration and verification of the implemented code is necessary to ensure that implementation remains on track. The counter-argument for the waterfall model here is that constant implementation and testing to validate the design and requirements is only needed if the introduction of bugs is likely to be a problem. Users of the waterfall model may argue that if designers (et cetera) follow a disciplined process and do not make mistakes that there is no need for constant work in subsequent phases to validate the preceding phases.
  • Frequent incremental builds (following the "release early, release often" philosophy) are often needed to build confidence for a software production team and their client.
  • It is difficult to estimate time and cost for each phase of the development process without doing some "recon" work in that phase, unless those estimating time and cost are highly experienced with the type of software product in question.
  • The waterfall model brings no formal means of exercising management control over a project and planning control and risk management are not covered within the model itself.
  • Only a certain number of team members will be qualified for each phase; thus to have "code monkeys" who are only useful for implementation work do nothing while designers "perfect" the design is a waste of resources. A counter-argument to this is that "multiskilled" software engineers should be hired over "specialized" staff.

ActiveCollab, Project Collaboration Application



ActiveCollab is an easy to use, web based, open source collaboration and project management tool. Set up an environment where you, your team and your clients can collaborate on active projects using a set of simple, functional tools. 100% free!

My experience installing, using, some advantages and disadvantages:

- Very easy to install especially if you used WAMP to install Apache, MySQL, PHP in one shot. It has simple and friendly installation. After installing it say to your c:\webapps\activecollab, just point your browser to it and the setup page will show up asking you a few installation questions.

- The system is simple and easy to use.

- You can have client companies and as many projects as you need, add users and give them permissions.

- You can add milestones and tasks. Tasks can be related to a specific milestone and assigned to a specific person. The idea of havig deadline to milestones only is simple. Tasks are done or not, no deadline or duration assigned to it. We can name it management by objectives, I think Agile teams will like this simplicity.

- It have a message features which you can use it like a blog. You can add message and anyone can add notes. The feature is totally under control by the assigned permissions.

- You can have attachments, and folders. Files have revisions, so you can track file changes. You can enable comments on files uploaded. This feature alone deserve using ActiveCollab.

- You can search if the simple browsing they have did not help you find what you want.

- Fast, and stable, actually I fond no problem using it.

Disadvantages:
- Although milestones and tasks are nicely done, you miss having metrics, like task estimates and actual effort spent. But they are working to improve it.

- This is the light version, they are planning to have commercial version, I am afraid in the future that, all nice features to be in the commercial version.

I enjoyed experiencing this tool and hope some of you find it useful.

Thursday, May 03, 2007

Select the Best Wiki, Weblog, Forum, or Podcast

When I try to decide about a new open source product, I get overwhelmed by the number of choices available. Always I have no no guidance on what to choose.

Today I found 5 websites that helped me to know about many alternative products and select the suitable one for my needs.
  1. Select a Wiki with the help of http://www.wikimatrix.org/
  2. Select a weblog with the help of http://www.weblogmatrix.org/
  3. Select Forum with the help of http://www.forummatrix.org/
  4. Select a Podcast with the help of http://www.podcatchermatrix.org/
  5. Select a CMS system with the help of http://www.cmsmatrix.org/[From a friend comment