Archive for the ‘Robotics’ Category

Methodologies versus Techniques and Tools



“Having a Project Management system without a methodology is like

attaching a speedometer to an orange crate; it measures nothing.”

- Bryce’s Law

INTRODUCTION

The term “methodology” is being bandied about by just about every

software development vendor and consultant imaginable. You would be

hard pressed to find a vendor who, in addition to their usual tool

offering, doesn’t promise a methodology to solve all of your development

problems. But like many things in this industry, the terminology is

getting sloppy and it is becoming apparent the true definition of

“methodology” is being bastardized.

IN THE BEGINNING

The term “methodology” became popular in information systems in the

early 1970’s, initially as a response to the question, “What is it?” Milt

Bryce first applied the term to systems development in 1971, to describe his

Information Systems Engineering process. Bryce referred to “methodology” as

a process which ends with the delivery of a product or a completely defined

result.

Later on, during the structured programming movement, a different

interpretation of the word emerged from software gurus such as Yourdon,

Gane/Sarson, Orr, Finklestein, Martin, Warnier/Orr, etc. Instead of

describing the overall process by which development occurs, the structured

programming people began to use the term “methodology” to describe their

techniques for designing software (e., functional decomposition, data

driven design, object oriented design, etc.). Consequently, software

development tools, which represent automated extensions of these techniques,

began to tout their products as “methodology” enablers.

This division in the use of the term “methodology” is a major source

of confusion to the industry. Not all “methodologies” are created equally.

There are fundamentally two interpretations: as a term referring to the

“process” by which work is performed, and; as a term referring to a

particular design technique. To truly understand “methodologies” you

must know the difference.

METHODOLOGIES AS “PROCESS MANAGEMENT”

We at MBA define a methodology as, “a process which ends with the delivery

of a product or a completely defined result.” Under this perspective,

a methodology defines the “5-W’s”; it defines WHO, is to perform WHAT work,

WHEN, WHERE, and WHY. If this sounds like an engineering/manufacturing

process, it is. MBA contends information resources can be designed and

developed in the same manner as any other product. Here, a methodology

defines the division of labor and synchronization of work effort. With

this approach, the development effort is divided into smaller more

manageable pieces just as in an assembly line process. Construction

projects represent another example (e,g., shipbuilding, office/home

construction, etc.), where the work is carefully divided into stages with

precedent relationships.

METHODOLOGY AS A DESIGN TECHNIQUE

As opposed to the “5-W’s” interpretation by MBA, a methodology

supported by the software design people defines HOW a particular task

is to be performed. For example, the forte of design techniques such

as “object oriented programming,” “structured programming,” or “information

engineering” is on HOW to accomplish specific activities of work. From

this context, the term “methodology” is a misnomer which should be

replaced by the term “technique,” a more apt description.

Techniques may differ from company to company, and there is not always

a single way to perform a task. For example, in the automotive industry,

fenders have always been a part of the car, but they have not always been

attached the same way. Originally, fenders were bolted to the body of the

car. Years later, an automotive worker welded the fender to the car. Today,

welding robotics perform the task. The task, attaching the fender to the car,

hasn’t changed, but the techniques to do it have. Improved techniques can

mean realizing the same result with savings in time and money.

The same is true in the information systems world. Whereas there are

generic stages of work for designing and developing a system, there are a

multitude of techniques for performing the work. For example, there are

significant differences between “structured programming” and “object

oriented programming,” yet the result is fundamentally the same, the

development of an executable program. The difference is the chosen approach

of implementation (there are pros and cons for both techniques). Whereas

“Software Engineering” represents a phase of work in a development project,

“structured programming” and “object oriented programming” represent

techniques that can be used to perform the phase.

Does this mean there are overlaps or conflicts in the use of the

different types of “methodologies”? Not quite. But to appreciate the

difference, one must understand the concept of “Productivity” (as

we have discussed in other “PRIDE” Special Subject Bulletins).

PRODUCTIVITY = EFFECTIVENESS X EFFICIENCY

Productivity is not simply a matter of how fast a task can be performed,

it’s a matter of performing the right task at the right time. This is what

underlies the concept of productivity. Whereas “efficiency” concentrates

on speed of delivery, “effectiveness” is concerned with doing the right

thing at the right time; the two are not synonymous. For example, performing

a weld using robotics may be a far more efficient means than performing the

task manually, but it is useless if you are welding the wrong thing. There

is nothing more unproductive than to build something efficiently that should

never have been built in the first place. Zero percent effectiveness

times 1000% efficiency equals zero productivity.

A true methodology addresses the effectiveness side of the equation

(Who, What, When, Where, Why), and a technique addresses the efficiency

side (How to). Whereas a methodology defines the work environment, the

technique defines how the work is to be performed. The two are obviously

complementary and one does not eliminate the need for the other. But

comparing one with another is like comparing apples with oranges, they are

simply not the same.

FACTORY CONCEPT

Within an engineering/manufacturing facility you will typically find:



An Assembly Line where products are developed in stages.



Production Control monitoring the assembly line for delays or

accelerations in production.



Techniques for performing work.



Tools providing mechanical leverage.



These elements can be found in any development environment, including

the IT world. What is interesting is the relationship between the elements:

ASSEMBLY LINE – at the heart of the factory is the Assembly Line process

where products are developed in stages by workers with different skills

for the different stages of work. In IT terminology, this is the

“methodology.”

PRODUCTION CONTROL monitors the assembly line using dials and gauges.

Production Control is not an entity by itself; it is totally dependent on

the existence of the Assembly Line in order to measure performance.

In IT terminology, this is Project Management. However, this brings up

an important point; without a de
fined methodology, Project Management is

an exercise in futility. It measures nothing. Only if a defined mode

of operation exists can dials and gauges be effectively applied.

TECHNIQUES, as mentioned, represent ways for performing specific tasks

(”how to”). A variety of techniques may be used on the Assembly Line.

Obviously, it would be counter-productive to use a technique at the wrong

time on the Assembly Line. This means the effective use of techniques

is dependent upon a defined Assembly Line.

TOOLS implement techniques. Tools provide mechanical leverage for performing

a specific task. In this sense, it is an extension of a technique, and like

the technique, tools must be deployed at the proper locations along the

Assembly Line. This is the reason why many software engineering tools are failing;

not because they are bad tools, but simply because companies have not defined

their Assembly Lines (methodologies) and haven’t specified when the techniques

and tools are to be used.

What this highlights is that a methodology is the focal point within a

development environment. Without a defined methodology, Project Management

will be ineffective, and design techniques and software development tools

will be misapplied. Productivity will be low.

METHODOLOGY CRITERIA

Since a methodology is critical to the success or failure of a

development environment, it is important to be able to differentiate

between a methodology, technique and tool. The generic properties of

a methodology include:

1. DEFINES THE STAGES OF WORK (a work breakdown structure normally

consisting of phases, activities and tasks). The stages of work

defines the “5-W’s” (Who, What, When, Where, Why). The synchronization

of work is needed to define direction and is provided by the precedent

relationships between the various steps in the methodology. Defined

duties and responsibilities provides insight for performing the work

and methodology standardization improves communications between workers.

2. MEASURABLE – The stages of work can be evaluated in terms of how long

it takes to perform them and how much they cost to perform. Further,

criteria is provided to substantiate completion of deliverables

thereby assuring the development of a quality product.

3. TECHNIQUE AND TOOL INDEPENDENT – various techniques and tools can be

deployed as required.

4. PROJECT MANAGEMENT INDEPENDENT – can work with or without a Project

Management system. For example, an Assembly Line can still function

without Production Control, but not vice versa.

If the methodology you are evaluating does not match this simple

criteria, it is not a methodology and probably some form of technique.

TYPES OF METHODOLOGIES

Of the “process management” methodologies, there are fundamentally

three types:

LINEAR “WATERFALL” METHODOLOGY (sometimes referred to as “Life Cycle”) -

this is perhaps the best known of the methodologies. Various interpretations

of this approach have been published for several years, both commercially and

public domain. Fundamentally, it a sequential process where the design of an

application moves from the general to the specific; for example:

FEASIBILITY STUDY DESIGN PROGRAMMING TESTING REVIEW

The problem with this approach has been its orientation towards computer

software and not on total systems. But the biggest pitfall has been its

sequential orientation which tends to prohibit parallel development.

SPIRAL DEVELOPMENT – this approach is based on the premise the development

process is evolutionary in nature (which, in fact, it is). The concept is

to initially design a program, then add additional phases of work to

constantly revise the program to enhance its features. From a Project

Management perspective, the problem with this approach is that the project

never ends.

PRODUCT DEVELOPMENT – as proposed by MBA, this approach uses elements of

the other two methodologies, with the added nuance of using a product

orientation as the basis for the development process. Under this approach,

a system is viewed as a product. Consequently, it can be designed in the same

manner as any other product. For example, when a product is being designed

(such as an automobile), the overall assemblies are first designed (such as

the body, chassis, engine, etc.). After this phase, each assembly is designed

by teams of engineers who refine the design of each assembly into sub-assemblies

and parts. All of this occurs as parallel phases. MBA advocates the same

approach for systems development. An initial phase is used to design

the architecture of the system, followed by succeeding parallel phases to

refine the design. This is the best approach for parallel development.

INDUSTRIAL ENGINEERING

In an engineering/manufacturing environment, the responsibility for

defining the work environment is normally delegated to an “Industrial

Engineer.” It is the Industrial Engineer’s responsibility to define the

Assembly Line, the types of people and skill sets required to perform the

work, and the deployment of techniques and tools to be used on the

Assembly Lines. Industrial Engineering is a recognized profession in

the engineering/manufacturing world. A comparable position is required

in the information systems world.

Unfortunately, most development methodologies purchased today are

evaluated by the wrong people. Quite often, the evaluation of a methodology

is delegated to programmers or technicians who are more enamored with the

latest software design technique or tool than in defining a managed development

environment. This is like Henry Ford allowing the UAW to invent the concept

of the Assembly Line. They simply have the wrong perspective. Someone who

specializes in installing headlights doesn’t necessarily have the expertise to

develop Assembly Lines. True, their input can be helpful when evaluating a

technique or a tool, but not for an overall development environment. This is

one area where American businesses have abdicated complete control.

CONCLUSION

There are essentially two interpretations for the term “methodology” in

the IT industry. One interpretation is as a disciplined process for developing

information resources, from inception to conclusion. Another is as a technique

for performing a specific task of work. These are subtle but significant

differences, particularly if a company is analyzing their development

environment. As companies have learned, it is not simply a matter of

purchasing the latest software engineering tool to overcome their productivity

problems. Studies show such tools are failing to have an effect in this area,

primarily because they are being misapplied by the users. People looking for

programming tools to bring order out of chaos are going to be sorely

disappointed. This is not their forte. Rather, they represent an efficient

approach for implementing design techniques. The intent of a true methodology

is to define the work environment, thereby providing the ability to effectively

deploy tools and techniques. To implement a methodology, a development

organization needs to reorient themselves into an “Information Factory”

environment, where systems and software (products) are developed in the

same manner as any other engineering/manufactu
ring facility.

A Bad Apple Logic Board Can be Very Inexpensive to Repair



 The cost savings of having your apple logic board repaired instead of swapped out completely add up to over $800 dollars on some apple computer models. Quotes in excess of $1000 dollars have been issued for the replacement logic board and labor! Finding the right facility to repair an apple logic board instead of replacement can make a big difference.

 That is the tricky part. Finding an apple repair center that can repair the board itself can take months to find then MONTHS to get the repair finished. Proper logic board repaira do take a longer time to complete properly due to Q/A testing of the actual apple computer repair. A week or 7 business days is a reasonable expectation for a normal turn around time on a mail in apple laptop repair.

 I don’t think even apple them self could beat 7 days on a logic board swap anyway. So that is reasonable for a smaller company to meet or even sometimes beat. I believe it is worth a week of down time to save $800 dollars and I bet you do also!

 The apple logic board repair company should have at least a 90 day warranty. Sadly, a lot of companies that install refurbished boards can’t even offer a warranty on the board itself.That is another reason to have your current logic board repaired properly instead of replaced. You know the history behind your computer. You could end up with some 17 year old kids logic board who spilled coke on it and played video games 24-7! We all understand how much stress and heat video games cause to logic boards!

  The price for a correct apple logic board repair should vary based on model and speed of the apple laptop or desk top to be repaired. At most it should not exceed $250 dollars and include return insured shipping and a 90 day warranty. At that price it is much less expensive than buying a whole new laptop or apple desktop. You have the security of knowing the past history of your complete computer.

 Make sure the apple repair center has the ability to replace actual components on the board itself. The machinery to do this cost hundreds of thousands because it must be done with inhuman precision. Some apple logic board components require proper alignment of over 160 TINY pins. Impossible for a human to remove or install these types of components without error or mechanical assistance!

 The reward of saving $600 or $800 dollars on a repair is sweet. Getting your computer fixed for $250 after you spilled coke in it is even better! Yes, any honest board level repair facility should be able to fix most liquid spills. There are very few liquid spills that cannot be fixed by a proper application of logic board repair techniques!

 Hopefully you are now inspired to save that rotten apple computer, you know the one you love so much until it had come down with a bad logic board? With the cost of living going up consider repairing an older computer you may have lying around and give it to one of your children to save money instead of buying new. Knowing the computers history is a huge plus. 

 When running a business from your computer, you really need a back up. That is another great reason to get that broken mac repaired instead of tossing it and buying a new one. Most likely if you have it repaired you can Easily resell it for a lot more working than you paid to repair the logic board. All of there things should be considered when you are saving so much money on the apple computer repair itself!

 

 

Travel Hong Kong: 12 Must See Places



Hong Kong features a diverse mixture of characters as a result of long British occupation and a great Chinese influence. As a state of China, Hong Kong provides a good introduction to who ever wants to know more about China without entering the mainland plus a venue for more attractions with western culture and Asian spirit.

1. Hong Kong Museum of Art – Located at 10 Salisbury Rd Tsim Sha Tsui, Kowloon, the Hong Kong Museum of Art is open to anyone who wants to take a glimpse of Hong Kong’s culture and history through its large collection of over 14,000 items ranging from calligraphy, paintings, Hong Kong treasure, art objects, antiques, and lithographs. The museum is open from 10:00am-6:00pm daily except Thursday (public holidays not included).

2. Hong Kong Disneyland – The newly open and the first ever Disneyland in Asia offers total fun and excitement for the whole family. The park is divided into four major attractions: Tomorrowland, Adventureland, Fantasyland, and Main Street, USA.

3. Victoria Peak – Soaring 1810 feet above sea level, the Victoria Peak is premier destination for tourists who want to take a birds eye view of downtown Hong Kong, Kowloon, and Victoria Harbour. Go another step higher and take a 10-minute hike to the actual Victoria Peak.

4. Lantau Island – Travel Hong Kong and take a cruise around the waters of Lantau Island and watch pink dolphins that only live in this waters.

5. Ocean Park – Travel Hong Kong and visit Ocean Park. This is one Hong Kong attractions where you and your kids will have a great fun. The park is one big oceanarium containing Lowlands Gardens where pandas live, goldfish pagoda and butterfly house are located, Marine Land where atoll reef and shark aquariums are found, and Headlands amusement park where you can go and take a ride with cable cars and roller coasters.

6. Water World – Travel Hong Kong with kids would never be so much fun without taking a plunge on Water World. Enjoy wave pools, play area, and water slides.

7. Middle Kingdom – A miniature China that houses Chinese shrines, street scenes, temples, and palaces only at Middle Kingdom.

8. The Central district – If you travel to Hong Kong because you love to shop, you better go to the central Hong Kong district where big shopping malls and several Western designer and signature boutiques are located.

9. Lamma Island – If you want to see a different Hong Kong, try Lamma Island. It hosts several outdoor activities such as swimming and hiking. And if you love to taste fresh Hong Kong seafood in great dining ambiance, Lamma Island is still the preferred place to go.

10. Ten Thousand Buddhas Monastery (Sha Tin) – Located at New Territories, the Ten Thousand Buddhas Monastery features Buddha in different poses and colors.

11. Hong Kong Space Museum – See what’s in store for you in the future at Hong Kong Space Museum. The complex offers hundreds of displays ranging from telecommunications, robotics, energy, computers, and physics with hands on experience that will keep you interested.

12. Wet Market – In Hong Kong, everything is fresh. And when they say fresh, they mean it. If you happen to travel Hong Kong to visit a friend or someone you know, come along when they go to wet market where the freshest among freshest seafood are for sale.