Friday, September 17, 2010

More on Scrum

It is one thing to learn something like Scrum, and to go back to the organization to apply it. I was in such situation and it is really a fabulous learning experience for me and the organization I work with.

To summarize the learning,  here is my side of the story. We are attempting very much to apply scrum within the team and within a management environment that base on the waterfall model. It is a difficult part trying to convince the management of what to expect. The 2nd part that differs greatly that the management had a harder time embracing is that: The work that developer commits is based on their estimation. This does not help at all really if you focus very much into the benefits of it.

The solution to the above 2 is that, while internal to the team we practice Scrum, externally, we generate reasonable data and information records for reporting purpose. As for the second issue, the developer commitment will be detailed out as well as time management system continue to be used and required to be filled by all staff.

In addition we had some tools us in the form of VSTS 2008 which has a Scrum template build for those who work on Scrum. We started without, but eventually start to populate the required records such as sprint, start date, target hours of work, planned hours to work and working hours available. The result was using this, we were able to churn out reports much faster and we are able to trace our progress like never before. Though the drawback is that there is a lot of stuff to key in for every sprint.

In the quarterly forum I was also able to meet up with an exert who helped in imparting to me some great ideas if implementation. Mike Sutton from was the man who gave us the insights.

In a nutshell to move from a waterfall to scrum model, follow the following steps:
1. find a pm, developer, sponsor who is interested
2. find a pilot project
3. do it

~~ Show me the data.

Sunday, September 12, 2010

Process Improvement Tool - 8D

Recently I came across this tool, which one of my client is using. It does not have that much of a publicity but a size-able number of organization actually follows it. Check it out.

8D is a problem-solving methodology for product and process improvement. It is structured into eight disciplines, emphasizing team synergy. The team as whole is better and smarter than the quality sum of the individuals. Each discipline is supported by a checklist of assessment questions, such as "what is wrong with what", "what, when, where, how much".

The Eight Disciplines

1. Use Team Approach
    Establish a small group of people with the knowledge, time, authority and skill to solve the problem and implement corrective actions. The group must select a team leader.

2. Describe the Problem
    Describe the problem in measurable terms. Specify the internal or external customer problem by describing it in specific terms.

3. Implement and Verify Short-Term Corrective Actions
    Define and implement those intermediate actions that will protect the customer from the problem until permanent corrective action is implemented. Verify with data the effectiveness of these actions.

4. Define and Verify Root Causes
    Identify all potential causes which could explain why the problem occurred. Test each potential cause against the problem description and data. Identify alternative corrective actions to eliminate root cause.

5. Verify Corrective Actions
    Confirm that the selected corrective actions will resolve the problem for the customer and will not cause undesirable side effects. Define other actions, if necessary, based on potential severity of problem.

6. Implement Permanent Corrective Actions
    Define and implement the permanent corrective actions needed. Choose on-going controls to insure the root cause is eliminated. Once in production, monitor the long-term effects and implement additional controls as necessary.

7. Prevent Recurrence
    Modify specifications, update training, review work flow, improve practices and procedures to prevent recurrence of this and all similar problems.

8. Congratulate Your Team
    Recognize the collective efforts of your team. Publicize your achievement. Share your knowledge and learning.

~~ Show me the data.

Saturday, March 13, 2010

Systematic Innovation - Darrell Mann

I am honored to have the opportunity to meet with Darrell Mann, one of the many technical or engineering background man who is looking into technical and organizational issues and even improvement capability using a method known as Triz or better known as a systematic way of studying and applying innovation. Darrell has a lot of researcher helping him to continuously study how to innovate things with a method originated from a Russian guy.

Some of the key points during his presentation includes
- successful theory and method of successful innovation
- asking the right question is important in order to solve or even find a way to innovate.
- some tools that is going to help us do the job of innovation
- many application examples to help us see the light

Also we explored areas such as
-Why do so many software companies do the innovation job so badly?
-And essential to that, the area of business, technology and software, and in fact in many organization, opportunities missed because everyone has a silo view. For example, technical problem is perceived as a problem for the technical team only. Business unit is seldom put in to see if they can make any good of the situation.. 

Some ideas here may be in contrast with improvement, as Darrell mentioned that, moving forward, improvement projects may be saturated. It is time to move in with innovation, systematically.

~~ Show me the data.

Agile Methodology - Scrum

Recently, I attended a workshop discussing about an interesting framework of software development. It injects a rather new taste into traditional waterfall software development that I know of. It is called Scrum. Scrum is one of the many Agile methodology founded upon or built up from the Agile Manifesto. The manifesto concentrates on areas that my generation of IT professionals tried to move away from.
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan

The catch is items listed on the right is important, Agile adopters 'value' more, the items on the left.

Interestingly enough, a very loosely defined Agile Manifesto now has several framework that is designed based on this manifesto. Some of the more famous ones are: Scrum, Extreme Programming (XP), Lean, Crystal, Feature Driven Development (FDD) and Dynamic Systems Development Method (DSDM).

Scrum in a nutshell is quick shot of software development, that attempts to produce working software within a period of about every 2 - 4 weeks. One period of 2 - 4 weeks is known as a sprint and every sprint produces a working product. Team works things out among themselves and they produce what Product Owner wants with the facilitation of a Scrum Master. The team is independent and the core of how this works is that, the team has to be protected and trusted to get the work done.

The traditional Gantt Chart that serves us so well with a lot of other tracking tools are thrown out if you decide to use Agile. In place of that, we have burndown chart and product/sprint backlog. Though a lot of tracking tools are thrown out, we have to follow a few Scrum rules closely, meaning, it should not be skipped to ensure success.

Of course there is a lot of debate on whether it works, it is not difficult to understand, but it may be difficult to implement and blended into our traditional environment. It may seem that a lot more issues will crop out as it is implemented, but then again, nothing good comes easy. Anyone who has implemented Scrum, do share your experience with me. I am all ready in reading your experience :)

~~ Show me the data.

Friday, March 05, 2010

Embracing yourself for the tough questions

The economic turmoil is far from having fully recovered. Company's management team will look into all aspect to strengthen their stake in the market share pie that they have and also looks for way to expand it. At the same time, they will also be looking for ways to reduce operating costs.

I found some tough questions that I need to address when I attend meetings on operating costs reduction. Below are some of it and I am about to share it with you. See if you face the same problem in your environment and are you addressing it. If you have some good answers, do share it with me

1. Reduction of development team size meant they have less time to address most of the minor bugs. They will only fix the major bugs. As for the rest of the bugs, you may work hard to find the bug, but development team is not going to do much about it. What can the quality team do about this?

2. What does the software tester thinks is best for the quality of the product, agile or waterfall?

3. Is exploratory test better or scripted test better? How can you be sure?

Well I find different people have different argument or thought about this. Do share what you have in mind with me. 

~~ Show me the data.

Monday, January 25, 2010

Trojan Horse….Greek Myth turned Computer Nemesis

We have all heard the term Trojan Horse, but what exactly is it?  A Trojan Horse is a destructive program that masquerades as a harmless application. Unlike viruses, Trojan Horses do not replicate themselves, but they can be just as destructive. One of the most dangerous examples of a Trojan is a program that promises to rid your computer of viruses but instead introduces viruses into your computer.

The Trojan can be tricky. Who hasn’t been online and had an advertisement pop up claiming to be able to rid your computer of some nasty virus?  Or, even more frightening, you receive an email that claims to be alerting you to a new virus that can threaten your computer. The sender promises to quickly eradicate, or protect, your computer from viruses if you simply download their “free”, attached software into your computer. You may be skeptical but the software looks legitimate and the company sounds reputable.  You proceed to take them up on their offer and download the software.  In doing so, you have just potentially exposed yourself to a massive headache and your computer to a laundry list of ailments. 

When a Trojan is activated, numerous things can happen.  Some Trojans are more annoying than malicious.  Some of the less annoying Trojans may choose to change your desktop settings or add silly desktop icons.  The more serious Trojans can erase or overwrite data on your computer, corrupt files, spread other malware such as viruses, spy on the user of a computer and secretly report data like browsing habits to other people, log keystrokes to steal information such as passwords and credit card numbers, phish for bank account details (which can be used for criminal activities), and even install a backdoor into your computer system so that they can come and go as they please.

To increase your odds of not encountering a Trojan, follow these guidelines. 

1.    Remain diligent
Trojans can infect your computer through rogue websites, instant messaging, and emails with attachments.  Do not download anything into your computer unless you are 100 percent sure of its sender or source.
2.    Ensure that your operating system is always up-to-date.  If you are running a Microsoft Windows operating system, this is essential.
3.    Install reliable anti-virus software.  It is also important that you download any updates frequently to catch all new Trojan Horses, viruses, and worms.  Be sure that the anti-virus program that you choose can also scan e-mails and files downloaded through the Internet.
4.    Consider installing a firewall.  A firewall is a system that prevents unauthorized use and access to your computer.  A firewall is not going to eliminate your computer virus problems, but when used in conjunction with regular operating system updates and reliable anti-virus software, it can provide additional security and protection for your computer.

Nothing can guarantee the security of your computer 100 percent. However, you can continue to improve your computer's security and decrease the possibility of infection by consistently following these guidelines.

~~ Show me the data.