Showing posts with label Quality. Show all posts
Showing posts with label Quality. Show all posts

Friday, November 30, 2007

Sun’s Java certifications: Are they worth the effort?

Sun’s Java certification track

Sun’s Java certifications are designed to be focused on particular roles in the software development cycle and, therefore, are more useful than all-in-one certifications such as IBM’s XML certification.

Sun currently offers eight Java certifications, which are classified by level and specialization. Most of the certifications require you to pass a multiple choice exam, but some also require you to write an essay. It is recommended to have six to twelve months of actual job experience before attempting to pass any exam.

  • Sun Certified Java Associate (SCJA): This entry-level exam certifies only knowledge of basic Java language concepts and general knowledge of Sun platforms.
  • Sun Certified Java Programmer (SCJP): At the “foundation” level, there are exams for Java 1.4 and Java 5.0. These exams certify solid knowledge of the Java language. (Note: It is not required to have SCJA to get SCJP, which makes me wonder why SCJA certification is needed at all.)
  • Sun Certified Java Developer (SCJD): Many employers may focus on this level of certification for two reasons: You need to be an SCJP (any version) before you can try to become an SCJD. Also, the SCJD requires candidates to develop a small business system according to the problem and write an essay defending the solution and explaining the design and programming decisions.
  • Sun Certified Web Component Developer (SCWCD): This exam can be of interest for Web developers who specialize in using Java technologies such as Java Server Pages (JSP) and servlets. SCJP is a prerequisite for taking this exam.
  • Sun Certified Business Component Developer (SCBCD): This certification, which consists of only one exam, is the kernel of J2EE certification — as long as it certifies your knowledge of Enterprise Java Beans (EJB). The exam is pretty hard to pass if you do not have any Enterprise JavaBeans (EJB) project experience. SCJP is a mandatory prerequisite. This certification can be of interest to employers who use EJB for project development.
  • Sun Certified Developer for Java Web Services (SCDJWS): This certification is for Java developers who build Web services. You have to take one exam for this certification, and SCJP is a prerequisite.
  • Sun Certified Mobile Application Developer (SCMAD): This is a certification for developers of Java applications for cell phones or any other devices containing J2ME onboard. You have to take one exam for this certification, and SCJP is a prerequisite.
  • Sun Certified Enterprise Architect (SCEA): This is what the Sun certification program is all about. This certifies enterprise architects responsible for architecting and designing J2EE-compliant applications from scratch. There are no prerequisite requirements even though it is the most advanced certification. In fact, if you cannot pass any of the previously listed certifications, you will never succeed with this one. To achieve this certification, candidates must complete three steps: a multiple choice exam, a development assignment similar to SCJD (but on a much larger scale), and a final essay exam where you will defend your solution.

See the Sun Microsystems Web site for more information about Java certifications, including the cost of the exams.

Is the effort you expend worth the result?

I have two Java certificates: SCJP and SCWCD. I earned the first certification while I was student at university; my professor awarded students with vouchers for attempting to take the SCJP exam. With the second certification, Sun contacted me about its new certification program and invited me to assess my skills for free (and take the actual exam) in exchange for my feedback about the questions and about the certification itself.

I think both of my certifications are pretty much useless pieces of paper. The main reason why I got these certifications was to prove to myself that I am proficient in Java. While preparing for these exams, I learned a lot; also, since I was engaged in real production projects at that time, I immediately started applying my newfound knowledge. This is the only reason why I would recommend that Java developers pass the entry- and mid-level exams. None of my employers showed interest in looking at my certifications.

The SCEA certification, however, is a completely different story. If you peruse career sites, there are lot of vacancies for which SCEA is considered highly desirable. Developers can only earn this certification after having a lot of experience in software architectural design and working with J2EE, i.e., with a broad range of Java technologies. SCEA is the most attractive certification for developers who are seriously thinking about becoming a software architect. I don’t think the other certifications offer much value.

It’s been my experience that most employers will overlook your certifications unless your resume shows that you have hands-on experience working with a particular technology. At the other end of the spectrum, I have seen examples of successful career building on the base of certifications. In my opinion, this is more a question of a particular certification program and particular holder’s attitude to the certification. Most IT pros take certification exams more for self-learning than for their employer.

courtesy @TechRepublic

Wednesday, November 14, 2007

The ten hottest certs for 2008

The list is based on job growth, sales of certification training material, and “a little guess work.”

1. MCP (Microsoft Certified Professional)

2. CCNA (Cisco Certified Network Associate)

Trapp reasons that most network administrator jobs right now are IP related and they are in more demand at a higher professional level as compared to Microsoft Certifications.

3. MCPD (Microsoft Certified Professional Developer)

Demand for these developers is up over 80% compared to last year. Trapp says there are only a little over 3,000 currently with the certification.

4. SCJP (SUN Certified Java Programmer)

Trapp says that a Java credential is one of the most valuable credentials that a programmer or developer can have, since about 70% of business entities’ development projects are done through J2EE.

5. CISSP (Certified Information Systems Security Professional)

With CISSPs earning $94,070 a year on average, it’s easy to see why Trapp puts this one on the list. (Note that the exam costs $500, lasts up to six hours, and includes 250 multiple choice questions.

6. Comptia A+

By far the most popular entry level certification.

7. Comptia Network +

A good cert to have since the network systems and data communications analyst is ranked Number 2 on the most in demand jobs list.

8. MCTS SQL Server 2005 (The Microsoft Certified Technology Specialist)

Trapp thinks SQL Server 2005 is going to be hot next year since many companies are switching to SQL Server 2005.

9. RHCE (Red Hat Certified Engineer)

RHCE is called the “crown jewel of Linux certifications.” According to a survey by Saugatuck Technology and BusinessWeek Researce Services, about 25% of enterprises will be running mission-critical business applications on the Linux open source operating system by 2009.

10. Comptia Security+

Growth in Security+, which covers topics like communication security, infrastructure security, cryptography, access control and authentication, shows no signs of slowing down. According to Trapp, “Comptia’s Security+ Credential is must have in today’s world.”



Wednesday, November 7, 2007

Save time and money, and deliver a better product: Build quality into your IT project from the ground up

Overview: If you think the rigorous processes required to deliver high quality results are too expensive, just think about the long-term costs of delivering poor quality. These costs are often dismissed in the planning stages of a project, but they include redoing a project, losing customers, bad press for the company, and negative career repercussions for the project team. An IT project manager's goal, therefore, should always be to deliver the absolute highest quality result possible within the constraints of a project. This doesn't necessarily mean the absolute highest quality of all time, but the highest quality within the boundaries of the specific project. Explore how you can improve IT project quality to the highest reasonable degree given limited time, resources, and money in this sample chapter from How to Cheat at IT Project Management. Investigate the concept of quality and how quality is built into an IT project via three key components: planning, monitoring, and testing. Look at ways you can build quality into your project without implementing an additional quality management program. Applying these methods consistently with your team will help you do a better job at each step of your IT project and deliver, time after time, higher quality results at lower cost.

download or you can see it from here....

Wednesday, October 31, 2007

Find errors as early as possible on your project

Project teams generally use three types of quality management activities:

* Quality planning
* Quality control
* Quality assurance

The purpose of quality assurance is to prevent as many errors as possible by having sound processes in place to begin with. The purpose of quality control is to inspect or test the deliverables to find as many remaining errors as possible.

One important aspect of quality control is to find errors and defects as early in the project as possible. Therefore, a good quality control process will end up taking more effort hours and cost upfront. However, there will be a large payback as the project progresses.

For instance, it’s much better to spot problems with business requirements during the analysis phase of the project rather during the testing process. If you see the problem during the requirements gathering process it might just take a call to your client and the quick update of a Word document to fix it. On the other hand, if you discover this problem in the testing phase, it could impact the business requirements, the solution design, and some of the construct work. It will also require you to re-test the solution again. As you can see, this is a potentially huge impact to your project.

Likewise, if you were manufacturing a computer chip, it would be much cheaper to find a problem with a computer chip when the chip is manufactured, rather than have to replace it when a customer brings the computer in for service after a purchase. In fact, if the error isn’t caught until after the chip is sold to the customer, the cost to make the repair might cost more that the entire cost to manufacture the product to begin with.

There was a project early in my career that applied poor shortcuts to the development process. Since the programmers were under time pressure to complete their modules, they figured they would write the code and make sure it compiled cleanly. Then they would then call the module complete, with the attitude that they could “fix it in the testing phase.” They thought that they were just deferring their unit test time until later in the project. But by pushing these errors further downstream, it actually took much longer to fix the problems later - to the detriment to the overall project.

In Figure A, we see a traditional approach to finding errors.
Figure A


On many projects the team plans to find as many errors as possible during the testing process, with some errors not caught until support/maintenance.

In Figure B we see the better approach. It is much better to catch any errors that are introduced as quickly as possible. In other words, errors in the deliverable created in the Analysis Phase should be caught in the Analysis Phase; errors introduced in the Design Phase should be caught during the Design Phase, etc. This greatly minimizes the impact of correcting the errors.
Figure B

The bottom line is that the project team should try to maintain high quality and low defects during the deliverable creation processes, rather than hope to catch and fix problems during the testing phase at the end of the project (or worse, have the client find the problem after the project has been completed).

courtesy @TechRepublic

Thursday, October 25, 2007

Project management: Pin down how your client defines quality

A good definition of quality management is “to first understand the expectations of your customer in terms of quality and then put a proactive plan in place to meet that level of quality.” The first part of this definition can be the toughest - understanding what quality means to your customer.

Your customer may only tell you that you should build a “good quality solution” or you should build a solution with an “acceptable level of quality.” Your response to that should be “Great. But what the heck does that mean?”

The customer needs to state that the project solution needs to be:

* Reliable
* Easy to use
* Easy to maintain when completed
* Available when needed
* Flexible for future needs
* Intuitive / easy to understand
* Secure
* Minimally defective (Doesn’t have to be perfect)

Once you’ve gotten that far, you need to help the customer drill down further. Let’s say that the customer thinks that a good quality solution needs to be “secure.” Further probing might reveal that for the customer, this means

* The solution should be place in a secure room with password access
* Only authorized people can login
* The password must change every thirty days
* There will be role-based security so people can only see data that is consistent with their roles.

People sometimes ask where this information gets documented. It’s easy - these end up being detailed quality requirements and they’re captured along with all of the other project requirements.

Most project teams don’t make it a point to capture all of their quality requirements. Most project teams focus requirements on understanding features and functions. If you focus on features and functions, many of the quality requirements may come out as well - usually by accident. But if your team is trying to practice formal quality management, you should have a discussion with your clients that focuses on the broader and more specific set of quality requirements.


courtesy @TechRepublic