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

Friday, March 30, 2007

Google Desktop Software Pack



Google Pack (http://pack.google.com/) is a free software you can add to your Desktop PC, it includes the following:
  1. Google Photos Screensaver: A screen saver that can show images from your local desktop images, Picasa Web Albumes, or any photo feed from the Internet. This is really amazing, while your screen saver is working, you can watch the latest images of your relatives and friends.
  2. Norton Security Scan - Security utility
    SymantecDetects and eliminates viruses and internet worms
  3. Spyware Doctor Starter Edition
  4. Picasa
  5. Google Earth
  6. Google Toolbar
  7. Google Talk
  8. RealPlayer: a simple and fast edition without annoying ads
  9. Skype - Voice, video and chat
  10. Google Desktop Search
Goolge have at tool to enable you installing, updating, or removing any software is fun. what is amazing for me a previous Web developer is the integration between that desktop installer and the web site. When you click on Google web site application, the local desktop application will automatically start to download and install it.

Have a look at http://pack.google.com/



Sunday, March 25, 2007

Stop Complaining and Improve Your Opportunities

"He never appreciates my work! He said that my work can be done by someone inexperienced with the same quality, I can't continue work with him!", my friend said. He was talking about his boss. I asked, "do you want to resign?", He answered "I can't, nowadays jobs are hard to find. Before my current job I spent a whole year seeking a job, before it I was working in another company that was much worse than my current one". I asked him, "Do you think he needs to fire you?". My friend replied: "I believe he does not want to do, there is no backup for me so he needs me". I asked again, "Are you trying to improve your skills to be able to find a better job?". My friend astonished me and said, "No I need no training or courses, I already have good skills and don't need do anything more".

You are good and your boss is very bad! As my friend keeps complaining several times across the last few days, I discovered the problem and strongly said to him, "Please get out from this trap, stop complaining and do something useful. Please don't convert your disappointment with current job to just complaints to the wrong person, please keep this energy and convert it to a continuous and hard work to find a better job or do whatever to increase your job opportunities".

Complaining only will not progress your life to be better, it will just make your situation worse. Do you like to be a person with double face? Dealing with your boss as if everything is OK, and on the other hand complaining from him to other persons whom can't help you with your boss.

Please get out from this trap, try to understand your boss, help him to understand you, do your best at work to finish it as fast as you can and as perfect as you can. However if you believe you can't continue with your boss, try to let him know about your situation friendly. If you believe no way, OK, just do your job as much perfect as you can and search for a new job without complaining.

Sadly with some managers the only way to learn is through employee resign, so be confident he will understand either from you directly or from your resign! Don't allow your self to be driven into a dead end, you always have a choice about your future.

Bosses are hard to change, something like your neighborhoods. So don't focus only on negatives and become blind of any positives, sometimes we should look at the full half of the cup. If you can't continue, and have a chance, do it, if you have no chance keep trying to improve your situation and stop complaining.

Wednesday, March 21, 2007

10 Practical Tips in Applying CMMI 1.2 L2

Here are my tips on practical implementation of CMMI as I experienced in my first appraisal:

1) In CMMI 1.2 PP (Project Planning), you have to create Project Plan, however the GP (Generic Practice) 2.2 require you to "Plan the Process". It sounds like you have to create a plan to create the project plan. In my experience it is sufficient to include planning tasks in the plan, as example of planning tasks:

- Create detailed WBS (Work Break-Down Structure)
- Determine and analyze risks
- Discover and plan for data management
- Research for needed resource and skills
....
- Meet to review the plan
- Modify the plan (according to the meeting)
- Final meeting to get plan commitments

The same concept apply on GP 2.8 "Monitor and Control the Process", it is sufficient to include tracking tasks like milestone review and weekly progress review. These two generic practices gives the organization detailed information about how much planning and tracking cost you in the project.

2) In PP, Specific Practice (SP) 2.3 "Plan for the management of project data", it was sufficient to put this planning as part of the CM (Configuration Management) Plan.

3) It was a weakness to let the CM baseline creator to audit that baseline. As he will not be objective as he is biased to his creation. It is accepted to let a project team member to make the baseline audit, or make two project managers to review for each other.

4) In PP, SP 2.1 "Establish and maintain the project’s budget and schedule", It is accepted to have the project effort as the budget!. Why?, the senior manager - as the organization is very small - don't share the cost details with the project managers. However it is recommended to the organization to document the procedure of converting effort to cost.

5) The PMC SP 1.6 and 1.7 dictate to review periodically and on milestone the project. However it was accepted to align the milestone with the periodic review to be the same.

6) All MA (Measurements and Analysis) planning and tracking activities are stated in the project plan, however the measures will be collected and analyzed in a separate documents.

6) Regarding using tools, we can just use office and file server to do all what you need. Configuration management system is useful when developing source code, if the project is just migration or conversion of legacy source code, then the use of CM system can be dropped.

7) There is no paper based sign required, all the documentation and approvals accepted to be emails or just MOM (Minutes Of Meeting) documents.

8) Even not required in L2, the creation of templates is very helpful as there exist many details that can be forgotten.

9) In PIIDs (Practice Implementation Indicator Descriptions), it was not necessary to write many indirect artifacts, as affirmation through interview can be almost sufficient, except in case it is hard to get that affirmation.

10) You can easily plan the appraisal and meet your plan (without too much overtime) and even have fun.

CMMI 1.2 Level 2+3 Practices Summary (PDF)

I want to create practice summery for CMMI 1.2 especially for L2 and L3. After some googling, I found it at
http://www.processgroup.com/condensed-cmmi1p2-v1.pdf

See final CMMI 1.2: http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html

Tuesday, March 20, 2007

My Blog: Favoring to be User Friendly Than to be Search Engine Friendly

In my post 10 Tips to Improve Your Blog and Website, I suggested to have a summery of your post and the rest to appear after user click on it. This will be very useful in search ranking by search engines such as Google, but will annoy many users. Especially while I am using Google Reader or Thunderbird to read my blog, I found it much easier to have the full post. So I changed my blog to show the full post favoring to be user friendly than to be search engine friendly which is logical in my sense.

JTrac, a flexible Issue Tracking System


I found a good issue tracking software, what I like in this tool is its ability to create custom workflows, custom fields and assign permissions to it. You can see complete history, get email notifications, and attach files to issues. You have also a good search and a dashboard with summery of all projects.

I tried it and found it very useful, we tried it to track bugs, tasks, and even resumes. Download and try it from http://jtrac.info/



JSPWiki Wiki Engine


JSPWiki is an open source wiki engine that enables a simple content website which any user can add or edit pages. The system supports authentication and authorization optionaly. By default it uses files system to save its data, so the setup and configuration of it is extremely easy. Also it has templates and many other features.



I used JSPWiki in two companies as a repository to store all projects documentation, knowledge base, employee information, and common repository for resources. It proved to be easy and very successful. I encourage you t give it a try.

You can also see a comparison of wiki software to try and decide for yourself.

What's with 'expected practices' and can't I use an alternative?

Dear Jeff,

I attended the Introduction to CMMI 1.2 course, I learned that the goals only are mandatory and practices are expected. Last week I attended a formal appraisal, we mapped each practice to a direct evidence and indirect evidence, so in reality the practices are taken as mandatory.

In order to skip some practices you should apply alternatives and provide rationale behind your decision.


The question is, have you meet any situation where practices are skipped in favor of other alternative practices? or can you give me examples of doing so?




Ahh .... the 'ol "SPs are only expected but seem to be required" routine again eh? You're not the only one to make this observation. Some say it's the SEI's attempt at trying to be funny . .. hmmm, not sure they were successful.

While Goals (both SGs and GGs) are "required" and Practices are "expected" it would be impractical to evaluate only the goals, which are pretty broad, without some sort of practices that allow for the collection of detailed evidence in order to be sure they are satisfied.

This "rollup" method appears to be an attempt by the SEI to "standardize" the appraisal method. In other words, a Lead Appraiser may not understand your business and domain enough to really understand whether of not you are performing the "Manage Requirements" Goal satisfactorily, so the SP's are a "map" that will lead them to that conclusions (note to self: don't engage a Lead Appraiser that cannot demonstrate an understanding of your business and domain).

So, the SPs are simply a set of practices that we would expect you to perform in order to satisfy the goal. But the SEI was smart enough, and forward thinking enough, to allow for "Alternative Practices." This was an acknowledgement that maybe, just maybe, there might be another way to do something that they had not anticipated (unfortunately I've met too many LA's that scoff at the notion that they don't get it . . . but that's another story :)).

Have I seen these "Alternative Practice" while working with clients? You bet! Sometimes it comes in the form of "compressing" practices from different PAs or Goals into a single practice, and sometimes it's just a brand new idea.

One example is the integration of "Configuration Audits" into the PPQA process. This means, of course, that the PPQA process has to be robust enough to support it, but it is an alternative way to perform the process. This really only works if the methodology is "deliverable based."

Another is estimating and planning an Agile project. Remember, in the Agile world, scope is flexible while cost and schedule are fixed. In the waterfall world the inverse it true - cost and schedule are flexible (usually grow), but scope tends to be fixed. By definition Agile projects are estimated and planned using releases and iterations as their foundation (not tasks), and "features" are allocated across those iterations in very small "chunks." When the iteration ends, whatever "value" is created is delivered to the customer, the rest is put on a backlog for the next release. This way estimates are limited to: how many people do I have for how many releases? Of course, the customer has to be on board with this .

http://www.broadswordsolutions.com/


http://askthecmmiappraiser.blogspot.com/2007/03/dear-jeff-i-attended-introduction-to.html

Print to PDF Printer



PDFCreator is a free tool to create PDF files from nearly any Windows application.

Download from:
http://www.pdfforge.org/products/pdfcreator

Tip: You can use PDFCreator to save webpage into pdf files, if the webpage is very wide, you can print as landscape, or select A3 paper size, or even select custom page size with any size, see the side image.

Sunday, March 18, 2007

16 Critical Software Practices


The Software Program Managers Network (SPMN) has developed this package of materials to assist program managers and others involved in software development in implementing 16 identified critical software practices that, when correctly put in place, will improve your bottom line measures--time to fielding, quality, cost, predictability, and customer satisfaction.

The items are Risk, Cost, Metrics, EV (Earned Value), Defects, People, CM (Configuration Management), Requirements, System, Data, Interface, Design, Reuse, Inspect, Test, and Compile. I found it beneficial and inspiring, read the full text and watch video on:

http://www.iceincusa.com/16CSP/content/hmfrm.htm

Saturday, March 17, 2007

My First CMMI Appraisal

Last week I spent 8 days in a small company appraisal, one day as a readiness check, then two days as a pre-appraisal training, and 5 days in formal CMMI 1.2 appraisal as an ATM (Appraisal Team Member).

In the readiness check, we reviewed the PIIDs document and other documents. PIIDs is an excel sheet that maps all CMMI Level 2 practices to Direct Evidences and Indirect Evidences from the appraised company.

In the two days pre-appraisal training, we learned many interesting things about the upcoming formal appraisal, whatever I had learnt the experience of the formal appraisal itself is the real experience that no training will substitute. Here are some of my notes and experiences.

Working as a Team:
In the appraisal, we should work as team. Most of the time the Lead appraisal is facilitating our discussions and decision. Decisions are taken by consensus. It seems strange, but was helpful to objectively discuss our different opinions and encourage members with different views to explain their point of view and try to conclude one decision.

Goals and Practices:
Although (as I learned in Introduction to CMMI 1.2 course) Goals only are mandatory, practices are also important, if you are going to ignore some practices, you should show that you replaced them with other practices that are finally achieve the mandatory goal. In other words, practices are mandatory but can be replaced as long as the goal is met.

Direct Evidence:
For each practice, you should show direct evidence document, this means a lot of documentation, it seems this is not replaceable but I am researching ways to reduce the number of documents needed. Reducing documents to the necessary minimum is important as my focus is on small business where I want to add value and minimize overhead.

Balance between Interviews and Documentation:
You are obliged to balance between documentation and interviews, you got affirmation from interviews you formally hold with team members. CMMI enforce you a minimum set of affirmations to achieve the balance between documentation and affirmations.

Taking Notes:
It was astonishing to know we should take full notes in interviews to remember what was heared and seen. Notes should be accurate as said without paraphrasing. After the interview we should tag the notes with project and Process Area. This helps to see conflicts and get confidence in reporting affirmation.

In the last day we destroyed all our notes per request from our laid appraiser to prevent out of context interpretation to our notes. This makes sense as we already decided about rating the company and finding any mistakes later will not help.

Subpractices Review:
When we feel any doubt about if the evidence is sufficient in a practice, we review the sub-practices and see if there is anything missing.

Overlap and Recursive Applicability:
An overlap is exist between process areas, and between generic practices and process areas. There exist some recursive concepts like plan the plan, or put configuration records in the configuration management system or make quality assurance on the quality assurance activities.

One statement I learnt from our lead appraiser that helped me was "Don't jump to conclusions". It showed to me that many time we jump to conclusions that we found wrong after getting more information.

At the last day, all team members wrote their feedback to SEI website, we take pictures and was very happy. Yes the company is appraised as CMMI Level 2.

Thursday, March 15, 2007

10 Tips to Improve Your Blog and Website

Here are 10 tips to improve your blog, I already did it on my blog in the last few weeks and now sharing it. Although these tips are used in my Blogger account that is based on the new Layout design, many of them are applicable to any other blog or website. Here are the tips:

1- Use Google Analytics
Google Analytics tells you everything you want to know about how your visitors found your website and how they interact with it. This heps you improve your blog to attract more visitors.

To start, visit http://www.google.com/analytics/, login or register a new account (if you have not ), then add your website. Google Analytics will generate code that you should paste into all your website pages. You can paste it in a header file that is included in all your pages. Once this code is inplace, Google Analytics will start immediately collecting information, wait a day or so and see a wonderful analysis to your website.

2- Use Google Webmaster
You know that many visitors come from search engines, especially Google, if you want to see interesting information about how Google crawls and indexes your website. as example:

  • The keywords that give you high rank in search results
  • Indexed pages in your site
  • Pages that links to your site
  • Any errors in your website
  • Crawl rate

To start, create a Google account if you don't have one already, then verify your ownership to the site through adding a code that is generated by Google to your home page - or any other page -, then wait a couple of days and see that interesting information .

3- Submit your Feed to Google Webmaster
When I used Google Webmaster, I found many pages are missing, Google Webmaster suggest to add your SiteMap. I have the option to submit RSS Feed as a sitemap, of course Feed URL is easy for me as it is generated automatically by my Blogger account. After I added the Feed, I found that Google is able to index almost all of my pages, this of course will generate more visitors to my website.

4- Send Email Notifications of Posts to Your Friends
Most probably you already subscribed to many groups, such as old company friends, you faculty friends, and so on. Carefully select specific posts that match one of those group interest and email it as a link. They will be looking at your Blog and will know about it.

5- Subscribe By Email
You can give visitors the option to receive your blog posts by email. This requires some effort. You have first to subscribe to http://www.feedblitz.com/, feedblitz will ask you about your RSS feed and show you HTML code to use it in your blog. To use it in your Blogger account, add a new page element "HTML/JavaScript", and copy/paste the code of feedblitz to it.




6- Show up your feed icon:

Your Blog Feed is important, but in my template the link of it is at the end of page and is missing the distinguishable orange icon. I get the icon form the Google Images, and in my blogspot account, I added new Page Element "HTML/JavaScript" at the top of my side bar (navigation boxes), and add the HTML code to it.
Note: I am using the new Layout design of Blogger.com

7- Properly Label Your Posts:
Over time you will have many posts, the old posts are hidden as Blogger will archive them into the Archive section. By utilizing labels, you are categorizing all your posts so that your visitors can look at older posts in specific category.
In new posts it is easy to label it. But if you have many old posts that need labeling/relabeling, the task of editing each post and label it is annoying. Happily we have a faster way by using Blogger Edit Posts feature, you can easily tag many posts at the same time.

8- Create Navigation Boxes
Select the most important posts in your blog and create a list of links, this will attract visitors to look at more posts. This is easily done by Blogger by adding a new page element named "Link List".



9- Set Your Blog Feed to Short
When people subscribe to your feed via Feed readers, they receive the entire post in the email. This will not reflect in Google Analytics. By setting your Blogger to send only Short Blog Feed, the subscriber will receive the title and URL, when he click on it he will receive your entire post page inside his feed reader.

10- Show Posts as a Summery
I like to post long articles, at least several pages, and like to make my home page short. To let it shorter, I changed blog setting to show only 10 posts per page. Scrolling posts is still annoying. I researched about showing a summery and "Read Full Post" link, if the reader want to read the article he will click at the link and see the full article.

Blogger help in this regard, but you have to edit the template. This requires you to be advanced user if not a web developer and the changes are risky. To minimize risk, don't try this in your blog, just create another test blog, play with it. After getting real experience just do the same in your blog, but be very careful to backup your old template to fallback in case things go wrong.

First familiarize yourself with the template and Layout features in Blogger, read this page http://help.blogger.com/bin/topic.py?topic=10274, and look at your template and try to get sense of the code.

Second, read the following post http://help.blogger.com/bin/answer.py?answer=42215, it describe in detail how to change the template, but the article have fatal mistake that could waste you hours of frustration. The wrong line is in red and the correct code is in green.

Wrong Code:

<b:if cond='data:blog.pageType != "item"'><br />
<a href="<data:post.url/>">Read more!</a>
</b:if>

Right Code:
<b:if cond='data:blog.pageType != "item"'><br />
<a expr:href="data:post.url">Read more!</a>
</b:if>


Conclusion
There exist many ideas to improve your blog and you website, I hope the ideas presented here to be useful and encourage everyone to blog more :)

Thursday, March 08, 2007

News Website Basic Features

Modern news websites must have basic features to let users' life easier, here is a list of those features:


1) Search Page: Search page that uses Search Engine that return fast search hits, and rank the search results. Google right now offer search through a specific website using the keyword site:sitename.com, where sitename.com is the site you want scope search to.

2) Search Suggest: While you are typing keywords in the site search editor, a list of common search keywords pop up. Try the search feature of Safari Book Website, after typing keyword as example computer, after a second or two, a list of suggested terms appear to guide you. This feature uses Ajax and is easy to develop once you have a good search engine on your website.

3) RSS Feeds: feeds that enable users to track new published content. By using online feed readers or desktop feed reader you will be in control on new content, for details see What is Website Feed?

Wednesday, March 07, 2007

Open Source Presentation




I have created a presentation about open source software, it was a 2.5 hours presentation. You can reuse it from http://www.amadsoft.com/ahm507/Open Source Software.odp

The presentation is in Open Document format, you can open it with Open Office, download and use Open Office from http://www.openoffice.org/. Open Document Format is a standard open format for any office application, read about it on wikipedia http://en.wikipedia.org/wiki/OpenDocument.

The session is followed by an Ubuntu live demo. The primary objective was the introduction of Linux and Ubuntu, Open Source presentation was only a background to understand the value of Open Source operating system.

Saturday, March 03, 2007

TrueDownload, Truly a Nice Tool




What is download manager?: A download manager is a computer program designed to download files from the Internet, unlike a web browser, which is mainly intended to browse webpages on the World Wide Web (with file downloading being of secondary importance).



There are several things that some web browsers are not very good at. That's where the download managers enter the equation:

  • Pausing the downloading of large files.
  • Resuming broken or paused downloads (especially for very large files).
  • Downloading files on poor connections.
  • Downloading several files from a site automatically according to simple rules (file types, updated files, etc. - see also Offline Browser).
  • Automatic recursive downloads (mirroring).
  • Scheduled downloads (including, automatic hang-up and shutdown).
  • Searching for mirror sites, and the handling of different connections to download the same file more quickly (Segmented downloading).
Look at http://en.wikipedia.org/wiki/Download_manager for a complete info about download managers.

I fed up using freeware download accelerator tools, all have annoying ads and worse, it installs adware so I find ads coming without any ability to control it. It may even have spyware, I know some free tool vendors who get money by writing freeware that includes apyware and adware. To get rid of these problems, I researched for a good Open Source tool and found TrueDownload.

Here is a summary of its features:
- Simple, Reliable, No banner or advertisement.
- No adware or spyware.
- Can be used for HTTP or FTP Internet download.
- Compatible with all webservers.
- Multi Langugage supported.
- Integrated in Internet Explorer, Mozilla, FireFox and their derivatives.
- Open Source.

If you are interested, you can look at the source code to learn how it works, you can even contribute to the source code. These are a little benefit from the huge benefits of Open Source. The tool is fast and reliable, what is a surprise for me is, it is written in Visual Basic. Look at more info and download from http://sourceforge.net/projects/downloadplus/

If you need to make your own selection, Wikipedia has info that will help you. There exist a list of many download managers article and a comparison of most download managers.