Archive for June, 2010

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.

Everyone wants the best quality

Now everyone is always judging things objectively, evaluate it in terms of quality not just quantity. Quality will be much more valuable because the slightest thing that is around us if the benefits and huge profits will be more different functions for our lives. This also applies to the download process is often done a lot of people, where someone is always watching quality downloads that he got from a place not just the large number of which can be downloaded. There are many people who love to enjoy the game by downloading from the internet. It is not rare is the result of weekly sometimes does not match what is expected, which sometimes results come even causing virus was detected when the downloads took place, or sometimes the downloads are often jammed. Of course there will be many people disappointed if that happened.

Therefore, if you want a smooth download process and provide quality results then Newest torrent search files on Bush Torrent attend our midst today. This facility is available because we understand your needs. Especially for those of you who love to play games or game geek sort of, in general the people who love to play this game often feel bored if you only play the same thing. Therefore many games players often try other games more exciting and challenging, of course you can get an exciting game that if you use the Search games download in torrent. And you will be very satisfied with the latest games that you can, you can even forget the time when playing. This is all because the download you can give the best results for you.

What are Ferrite Chokes?



Ferrite beads and chokes both have impedance characteristics that can be employed as filters and safeguards to muffle unwanted interference in electronic circuits. Random high frequency signals, also know as “noise”, can cause other nearby circuits to fail to operate correctly.

An analogy for unwanted noise on top of the signal is being at a party and trying to have an intimate conversation with someone you can’t hear because everyone else around you is being too loud. In circuits, through electromagnetic coupling, a circuit that has extremely sharp pulses can induce extra signals over and above the main signal in a nearby circuit and thus becomes a source of noise, which makes it almost impossible for the receiving circuit to interpret the main signal.

So, what exactly are these things? A ferrite bead or choke is a non-resistant electronic member composed of ferromagnetic compounds that contain iron and trace amounts of nickel, zinc, or manganese oxides. The impedance properties of the ferrite choke allow it to act with a high resistance to high frequency signals and low resistance to lower frequency signals. This way, the high frequency noise is damped out and the absorbed energy is converted to a very small amount of heat. The type of ferrite material used in the bead will determine the range of frequency suppression, and the physical dimensions and shape of the ferrite bead determine the amount of suppression possible.

The beads themselves can be nothing more than a dowel-type device that has a hole in the center or something that looks like a metal blob, which is really a multi-layer bead utilized in surface mount applications. Electromagnetic Interference (EMI) suppression beads, which are comparable to inductors, are designed to rise in the transmission of signals with frequency until a resonance point. While a regular inductor’s wave propagation would begin to drop as frequency continued to increase, the ferrite bead inductance flattens out and acts as a perfect muffler for a wide frequency band.

One extremely basic use of ferrite chokes is on computer cables. You’ve probably seen these before; they look like a bump or a cylinder in the cable. These cylinders are snap-on ferrite beads that suppress the potential RF interference from the cables.

They can also be used in cell phones. There is no agreement on whether the radiation that emanates from cell phones will result in damage to one’s brain, and there are various devices being offered for sale like ferrite chokes or shields that are crafted with the intention of suppressing the radiation and the interference from the phone. If your cell phone is located anywhere near the speakers of your PC, you will actually hear this interaction of sound waves or interference.

Usually what happens is that you hear an irritating buzzing, which occurs because the cables on those speakers pick up the energy transmitted from your cell phone. Besides adding beads to your own telephone, you might also want to put snap-on-beads on your speakers to muffle the interference (unless you want the two second alarm that your phone is about to ring).

Because today’s circuits are faster and more of them are packed onto a circuit board, it is extremely desirable to employ ferrite beads and other techniques to suppress noise. Digital designers only think in terms of ones and zeros signaling until they uncover the nightmare of the sphere of analog where there is noisy circuit conduct or interference from power supplies or problems with grounding.

Besides protecting yourself from your own circuits, there are numerous “harden applications” where you need to protect the circuits and muffle any noise caused by external sources. An example would be a strong transmitter such as a cell phone accidentally being operated on a plane or a more purposeful attempt to jam a military application.

Ferrite bead and chokes are basic devices that can serve as the first line of defense for RF muffling and other noise suppressing uses. A company that produces beads can give you the arcs of impedance vs. the frequency for the beads they manufacture; typically their application engineers can assist you in choosing the correct type of bead.