Examples Of Spyware And What They Are

Spyware is a general term used to describe software that performs certain behaviors such as advertising, collecting personal information, or changing the configuration of your computer, generally without appropriately obtaining your consent first.

Spyware is often associated with software that displays advertisements (called adware) or software that tracks personal or sensitive information.

That does not mean all software that provides ads or tracks your online activities is bad. For example, you might sign up for a free music service, but you “pay” for the service by agreeing to receive targeted ads. If you understand the terms and agree to them, you may have decided that it is a fair tradeoff. You might also agree to let the company track your online activities to determine which ads to show you.

Other kinds of Spyware make changes to your computer that can be annoying and can cause your computer slow down or crash.

These programs can change your Web browsers home page or search page, or add additional components to your browser you don’t need or want. These programs also make it very difficult for you to change your settings back to the way you originally had them.

The key in all cases is whether or not you (or someone who uses your computer) understand what the software will do and have agreed to install the software on your computer.

There are a number of ways Spyware or other unwanted software can get on your computer. A common trick is to covertly install the software during the installation of other software you want such as a music or video file sharing program.

Any software that covertly gathers user information through the user’s Internet connection without his or her knowledge, usually for advertising purposes. Spyware applications are typically bundled as a hidden component of freeware or shareware programs that can be downloaded from the Internet; however, it should be noted that the majority of shareware and freeware applications do not come with SpyWare. Once installed, the Spyware monitors user activity on the Internet and transmits that information in the background to someone else. Spyware can also gather information about e-mail addresses and even passwords and credit card numbers

Aside from the questions of ethics and privacy, SpyWare steals from the user by using the computer’s memory resources and also by eating bandwidth as it sends information back to the spy ware’s home base via the user’s Internet connection. Because SpyWare is using memory and system resources, the applications running in the background can lead to system crashes or general system instability.

Because SpyWare exists as independent executable programs, they have the ability to monitor keystrokes, scan files on the hard drive, snoop other applications, such as chat programs or word processors, install other SpyWare programs, read cookies, change the default home page on the Web browser, consistently relaying this information back to the SpyWare author who will either use it for advertising/marketing purposes or sell the information to another party.

Licensing agreements that accompany software downloads sometimes warn the user that a SpyWare program will be installed along with the requested software, but the licensing agreements may not always be read completely because the notice of a SpyWare installation is often couched in obtuse, hard-to-read legal disclaimers.

Examples of SpyWare

These common SpyWare programs illustrate the diversity of behaviors found in these attacks. Note that as with computer viruses, researchers give names to SpyWare programs which may not be used by their creators. Programs may be grouped into “families” based not on shared program code, but on common behaviors, or by “following the money” of apparent financial or business connections. For instance, a number of the SpyWare programs distributed by Claria are collectively known as “Gator”. Likewise, programs which are frequently installed together may be described as parts of the same SpyWare package, even if they function separately.

o CoolWebSearch, a group of programs, takes advantage of Internet Explorer vulnerabilities. The package directs traffic to advertisements on Web sites including coolwebsearch.com. It displays pop-up ads, rewrites search engine results, and alters the infected computer’s hosts file to direct DNS lookups to these sites.

o Internet Optimizer, also known as DyFuCa, redirects Internet Explorer error pages to advertising. When users follow a broken link or enter an erroneous URL, they see a page of advertisements. However, because password-protected Web sites (HTTP Basic authentication) use the same mechanism as HTTP errors, Internet Optimizer makes it impossible for the user to access password-protected sites.

o Zango (formerly 180 Solutions) transmits detailed information to advertisers about the Web sites which users visit. It also alters HTTP requests for affiliate advertisements linked from a Web site, so that the advertisements make unearned profit for the 180 Solutions Company. It opens pop-up ads that cover over the Web sites of competing companies.

o HuntBar, aka WinTools or Adware,WebSearch was installed by an ActiveX drive-by download at affiliate Web sites, or by advertisements displayed by other SpyWare programs-an example of how SpyWare can install more SpyWare. These programs add toolbars to IE, track aggregate browsing behavior, redirect affiliate references, and display advertisements.

oZlob Trojan or just Zlob, Downloads itself to your computer via ActiveX codec and reports information back to Control Server. Some information can be as your search history, the Websites you visited, and even Key Strokes.

Posted in general | Comments Off on Examples Of Spyware And What They Are

Why Computer Hardware Is Important

In this day and age, it is hard to deny the influence of technology in our lives. We live in an era where pretty much is automated and computerized. And amidst all the technological advancement that humankind has achieved, one important device has been created that will only sure to become more relevant to our lives as technology progresses, the computer. No one can deny that computers are now an essential part of our lives, the same way a cell phone and television does. It is safe to say that in this day and age, having no computer would be an inconvenience. Which is why it is important that we know the way our computer works so that we would be aware of the things that we should do in case it stops working. The hardware of the computer is considered to be the most important because without it, it will simply not work.

Simply put if you know how to handle the hardware of a computer and know each of their function for the unit, then you can easily determine what the problem is in case the unit stops functioning. In order to be familiar with basic computer troubleshooting, then you also need to be familiar with computer hardware. A good example of this is the memory of the computer (RAM). All programs and applications that are ran in a computer needs memory. Without RAM it simply will not function. Aside from that, even if you have a RAM but it does have the specifications to keep up with the programs that are being run, then the operation would have slowed down to a crawl. So when it comes to computer hardware, you have to make sure that it is not obsolete, so you need to upgrade depending on what sort of program that you are usually using.

When handling computer hardware, you have to keep in mind some safety measures so you can manipulate the unit safely. Before opening any computer cases, you have to make sure that the unit is unplugged or you might risk electrocution or shocks. While checking your hardware components, always check for damaged parts because that is most likely the one that is causing problems. When inserting components and parts, you have to remember that if it does not fit, then most likely you are inserting it on the wrong slot. If it does not fit, then do not force it or you will risk breaking the component. Before touching any parts inside the unit, make sure that you discharge yourself first by through a grounded metal object or you can use an anti-static wrist strap or mat which is sold in stores for cheap.

By knowing and analyzing every computer hardware part you will know about its importance and if it ever breaks down then you can perform the proper troubleshooting steps. Every hardware component is important for the computer's operation. The performance of your computer largely depends on how good your hardware is, so be sure that they are always in good working condition.

Posted in general | Comments Off on Why Computer Hardware Is Important

Determining the Best Type of Fastener to Use For Outdoor Furniture Construction

If you want to learn about selecting hardware for your next outdoor furniture project, then you'll want to read this article. Specifically, I'll be telling you about what type of hardware will perform best, why the type of metal used for fasteners and the finish used are important considerations, and how properly protecting or limiting exposure of your furniture to wet and winter conditions can increase Life span. After you're done with this article you will understand that the best choice of hardware for your outdoor furniture project is dependent on furniture style, material used for construction, selected location for the furniture and budget.

Selecting proper hardware for your furniture will help ensure a long life span, as well as improve the overall appearance of your furniture. Part of the problem is knowing what hardware to select when there are so many options available at the hardware store. The typical Lowes or Home Depot carries a huge selection of stainless steel, hot dipped galvanized, bright galvanized, plain steel, coated steel and brass bolts, nuts, washers and screws. Each type of fastener is suitable for certain applications, but not all are ideal for outdoor furniture applications.

In fact, choosing the wrong fasteners can greatly shorten the lifespan of your furniture, contribute to rot of wood furniture, cause unsightly staining, and even make your furniture unsafe to use.

One thing that needs to be noted right up front is, do not ever use unprotected steel fasteners for outdoor furniture, they will rust very quickly, and the steel will react with the tannic acid in the wood causing streaks and staining. The tannic acid actually speeds up the corrosion of the fasteners. Have you ever seen a wooden fence with black streaks running down the boards from the nails? This fence was installed with the wrong type of fasteners. The same thing will happen to your furniture. Even worse, as the fasteners rust, they will speed up the decay process of the wood around the rusted fasteners, ruining your furniture and making it potentially unsafe to use.

Hot Dipped Galvanized

Screws and bolts treated by hot dipped galvanizing are specifically designed for use outdoors. Electroplated galvanized or bright galvanized fasteners will very well not hold up as well as the hot dipped galvanized hardware. Zinc is used as a coating in both methods, and acts as a barrier against the elements and the tannic acids in the wood.

I strongly recommend only using screws or bolts in the construction of outdoor furniture, however. The galvanized finish on nails, either electroplated or hot dipped, can easily become damaged while hammering them in, exposing the nail head to the elements and allowing them to begin rusting quickly.

Adequate care must be taken when installing galvanized screws. Drill pilot holes in hardwoods, and be sure to use a bit that is not worn and intolerable to skipping in the screw head. For whatever reason, the galvanized screws seem to not be as well tempered as other steel fasteners, and are more likely to either snap off or have the heads strip out while installing them. Due to the permission required for the hot dipped coating, galvanized bolts do not have as tight of tolerance on the threads, and are more likely to strip if over tightened.

Hot dipped galvanized fasteners are a fine choice for many outdoor furniture applications, including Adirondack Chairs, but are not the best choice for use in woods, such as teak.

Stainless steel

Stainless steel is the best choice for use in woods with higher levels of tannic acid, such as teak. Stainless steel is an alloy or blend of steel, nickel and chrome. The ratio of the other metals with the steel determine the weather and corrosion resistance of stainless steel. Because the steel is mixed with other softer metals, the stainless steel is not as strong, so predrilling of screw holes is highly recommended in all applications, and essential in hardwoods such as teak and mahogany. The added corrosion resistance more than outweighs any shortcomings that the metal may have, especially in outdoor furniture applications.

While stainless steel fasteners are the most rust resistant, they are also the most expensive of the options we are discussing. However, using stainless steel fasteners will add years of life to your furniture. In the respect, they are an investment that will pay out for years to come.

Brass

I have seen brass used in some commercially produced outdoor furniture, but do not recommend it. While brass does not form red rust, and is well suited for many wet applications such as toilets and sinks, it does tarnish and corrode. It is also very susceptible to the tannic acids in wood, which will cause it to fail more quickly. Brass screws in particular Do not have sufficient strength for outdoor furniture applications.

Outdoor or deck screws

In the past several years a number of manufacturers have introduced outdoor fastening products specifically marketed for deck building. These will typically be green, gray, tan or brown. These screws are either ceramic or plastic coated to delay the metal reacting with the wood acids. The specific coating methods are proprietary to each manufacturer, and can be a combination of electroplated galvanizing and plastic, or a baked on ceramic.

I have used these fasteners in furniture applications and they perform just fine. Unfortunately, I have not come across bolts with this type of finish. The brand of screw I used was Deck Mate, and they were available in tan and brown, so that the color can be selected to better match the wood being used. These screws are ceramic covered, and the manufacturer provided a coated bit for installation, which was designed to not damage the ceramic coating at the screw head. If you choose this type of fastener, be sure to compare the cost with stainless steel, as the price will vary. If the stainless steel is reasonably comparable in cost, it would be the recommended fastener.

Always be sure to read the manufacturers specifications on the box to be sure that the screws are suitable for your application.

Other Considerations

If you are building furniture that will be located on a covered porch or patio where it will be protected from the elements, the concern will be the interaction between the wood and the fasteners, much more so than the weather. Furniture that will be exposed to the elements all year, such as a garden bench, or an adirondack chair in the corner of your garden, will have to be constructed with much more care and concern to ensure that they hold up more than just one or Two winters.

Additional considerations must be made beyond just the choice of what type of fastener to use, though this is very important. For example, fasteners should not be located where water where collect and sit on the fasteners for an extended period of time. The screws that attach the seat slats to an Adirondack chair are a prime example- typically these screws will be countersunk below the surface of the wood. This will allow water to collect in the screw holes, shortening the life span of all but stainless steel fasteners, and prolonging the exposure of the wood to water, which will increase the rate of decay. In applications where the furniture will be exposed to the elements year round the screw heads should be driven flush with the surface of the surrounding wood.

Construction and design of the furniture are also important considerations. Are the horizontal surfaces of the furniture constructed in such a way that will allow them to shed water, rather than collect it? Think of a picnic table with a slatted or board top. The gaps between the boards allow water a way to run off the top and not pool up.

Conclusion

Stainless steel is usually the best choice for outdoor furniture applications, although the cost may be prohibitive for some. There are other less expensive fastener options available that will perform acceptably. Do not use unprotected steel fasteners for outdoor furniture applications under any circumstances. Know where and how you intend to use your furniture and design it for the conditions it will be subjected to.

Posted in general | Comments Off on Determining the Best Type of Fastener to Use For Outdoor Furniture Construction

Best Windows 7 Optimizer That Can Stabilize and Improve Your Computer Performance

A system optimizer is a software designed to maintain the performance of your computer, fix software related problems and keep your computer stable and secure. The need of a system optimizer software in Microsoft Windows7 operating system is high. This is because Windows 7 itself is unable to maintain all the mentioned aspects without the help of third-party products.

We are going to learn what exactly Windows 7 optimizer software is.

The best Windows 7 optimizer software shall include all the following features:

1. Registry Cleaner to fix the registry related issues

2. System Cleaner to clean unnecessary stuff and free-up the disk space

3. Registry Defragmenter to defrag the system registry

4. Startup Manager to control the programs running when you turn on your computer

5. Backup & Restore feature to restore unfavourable registry changes

“Registry Cleaner” to Fix the Registry Related Issues

Windows Registry is a vital component in Microsoft Windows 7. It contains information stored by your operating system and installed software. For example, the default settings, changes you made to your computer, system information, runtime data, etc. are stored.

Registry Cleaner is a software that finds the junk entries in the registry, and repairs them as far as possible. Unfortunately, Windows 7 does not include a built-in registry cleaner. The registry cleaner software included in the best Windows 7 optimizer lets you scan the genuine registry problems and correct them. It thereby helps avoiding many runtime errors and problems, such as, File Not Found, etc.

“System Cleaner” to Clean Unnecessary Stuff and Free-Up the Disk Space

A System Cleaner software lets you find the files and stuff that have unnecessarily occupied the hard disk space.

The tasks, like installing a program, uninstalling, repairing or updating the existing programs, and even just running the installed programs many times create temporary files, log files that need not be kept after the corresponding operation is performed. Sadly, many programs do not itself delete such files and stuff and thus your hard disk space is used for such unproductive stuff. Using a system cleaner software included in best Windows 7 optimizer, you can easily and safely delete such temporary stuff.

“Registry Defragmenter” to Defrag the System Registry

You know the importance of the registry in Windows 7 operating system, as already discussed. The continuous access of a number of programs to the registry results in its fragmentation. It reduces the system performance and freezes your computer.

The best Windows 7 optimizer software includes a registry defragmenter that enables analyzing the registry fragmentation and afterwards defrags it. A reboot is required to perform this process and all other running programs and services must be terminated.

“Startup Manager” to Control the Programs when you Turn on your Computer

Running too many programs at the Windows startup, results in system freezing and slow performance. A Startup Manager, included in best Windows 7 optimizer, lets you monitor and control the programs that run each time your computer is started. It lets you disable or delete the unwanted program entries and enable only those who are necessary.

Backup & Restore Feature to Restore the Unfavourable Registry

While doing all the above steps, care must be taken that you have followed some precautionary measures first, so that any unfavourable registry change can be later restored and unwilling situations can be easily avoided. The best Windows 7 optimizer should include such a feature.

Best Windows 7 Optimizer Recommended by Worldwide Experts

Posted in general | Comments Off on Best Windows 7 Optimizer That Can Stabilize and Improve Your Computer Performance

What Is The Difference Between ERP And Enterprise System?

Enterprise system and Enterprise Resource Planning System terms are similar but there is difference between an enterprise system and an ERP system. An ES or enterprise system is a large scale system which includes packages like ERP and CRM. ERP is a subset of Enterprise System or it can be said that ES is a superset of ERP. It contains a variety of solutions. ES contains applications and packaged solutions which can be directly used in an enterprise. On the other hand ERP system is the automation of the business processes and the solutions are in the form of modules which are designed according to the client’s requirements.

The functions are customized according to the client’s business environment. Enterprise system does not include architecture of other solutions whereas an ERP implementation automates systems using technical aspects. ERP system includes architectures and databases and is client server architecture. The system is server based therefore the consultant needs to be aware of the technical aspect too.

Another difference between an ES and an ERP system is that the ERP is aimed at improving the functionalities of the organization whereas the ES helps to improve the overall maintenance and accuracy. It provides for better solutions and aids in decision making. ES is difficult to implement compared to Enterprise resource planning and even the timeframe needed for implementation maybe more. The overall impact is high but so are the risks involved. If the ES is not implemented in the right manner, it can cause business failure and if implemented properly it can increase the efficiency and profits of the business organization. It is normally required when there is a big drawback in the current procedures and methodologies in the organization and need to be corrected. The company going in for enterprise system needs to be careful while choosing the software and the vendors due to the risk of failure involved.

The difference between an enterprise system and an ERP system is that ERP is mostly used for medium scale companies to big companies and ES is restricted to the big companies. There are many complex functions involved in big companies which cannot be provided solutions for alone by ERP. The role of ERP is restricted when compared to enterprise system because it does not include customer relationship or vendor management.

These applications are needed when the business process is complex and on a big scale. Therefore bigger organizations need to go with ES instead of enterprise resource planning alone. ERP is also an important system to streamline the internal processes but it does not provide for taking care of the external processes. Enterprise system takes care of the end to end business process of organization since it involves other applications also like SCM and CRM. There is quite a lot of difference between an enterprise system and an ERP and it depends on the company whether it wants to go with an ES to streamline the entire process starting from supplying, production and customer or whether he wants to go with an ERP system to streamline the internal process.

Posted in general | Comments Off on What Is The Difference Between ERP And Enterprise System?

How Useful is CAD Software to Engineers and Architects?

The emergence of advanced technology has made people today dependent on machines. Using computers and software, for example, is a very common illustration of this. Computer experts are coming up with more and more software to make more and more jobs easier.

A more specific illustration of this can be found in the modern approach towards engineering and architecture. These days, professionals in these fields use CAD computer software which is a program that allows them to create designs faster, easier and with more accurate measurements. Aside from the convenience that CAD software brings, it also helps put architects and engineers ahead of their competitors. CAD, which can render designs that are two-dimensional or three dimensional, stands for Computer Aided Design and has been in use since 1982.

So how does CAD computer software work? And what does it do exactly to help engineers and architects? The program is actually multifaceted in the sense that there are many ways it can help. To make CAD work will require, however, a careful study of its features and the many ways it can be used. It is rather a complex yet flexible and highly functional program.

This article will not be enough to discuss the various ways that CAD works but pinpointing its advantages could give some very good ideas. One great advantage of CAD computer software is its easy-to-use tools in the creation and alteration of designs. Obviously, this is so much better than the old fashioned way of using a pencil and eraser directly on paper. This method of designing is obviously so much easier and engineers and architects simply have more time to finish other tasks. In other words, high productivity is going to be the main end result of using CAD.

Before the design is actually printed on paper, CAD also allows both the design professional and the client to preview what has been finished so far. Any alterations can be made simply by manipulating the drawing through the use of the software. With CAD, it is so much easier to spot errors because the designs can be rendered exactly as they would be in reality. Hence, modifications can be done even before printing, thus, allowing one to save.

With the tough competition that everyone has to face these days, it is wise to take advantage of new technologies that can help put them ahead in the race. While traditional methods hold a significant part in the history of design, advanced tools such as CAD software should only be welcomed as man’s way of furthering development in a field of expertise that he himself has created long ago.

Posted in general | Comments Off on How Useful is CAD Software to Engineers and Architects?

Strengths and Weaknesses of Waterfall Approach for Software Development

One of the most famous and widely used approaches for software development is the waterfall model. Waterfall approach is an old technique that has been in use for quite some time, but in modern times agile approach is gaining prominence.

Waterfall approach, as is evident from the name, refers to a systematic approach where one step comes after the other. It cannot go the other way round. The process works like the waterfall effect that flows in one direction, which is from up to down.

In this process the life cycle of the development process is predetermined. All the steps are defined before the start of the project. The approach is predictive, where the team is well aware of the order of each step and therefore works accordingly. It starts from the requirement analysis, the design phase and then proceeds on to the implementation, testing and the maintenance phases.

The waterfall approach can be quite beneficial for those who are quite clear on their requirements. A planned approach works for them because they want fixed processes and budget. Where fixed processes are beneficial, at the same time they can be inconvenient at times. In cases where the client is not clear on the requirements and finds in the middle of the project that he/she wants to change course, this approach can prove to be quite problematic.

Another point of the waterfall approach is that the requirement analysis and design of architectural structure can consume a lot of time. Extensive research is done initially as the next phases depend completely on the planning strategy. However, the good thing is that everything is thoroughly worked out and each aspect is studied beforehand. The developers in such cases know what is expected of them.

A waterfall approach works in a systematic order, with one step following the other and the testing phase comes in the end. If there are any big problems encountered in the testing phase, it means a long process to make the amends. The process can consume extra time and money.

We cannot conclude that one approach is better than the other, as every method would have its own strengths and weaknesses. The determination of success for each method depends on how it is being used and whether the approach suits the scope of work being undertaken. While one approach may be suitable for a particular project, it might become totally useless under different circumstances. For example, some believe that agile methods are not well suited for offshore development, as they require a closer contact and communication that is not possible in an offshore project.

Posted in general | Comments Off on Strengths and Weaknesses of Waterfall Approach for Software Development

How to Repair DBF Files by Using DBF Recovery Software

As a computer user you must have heard about a DBF file or some of you have used it. DBF is a database file format used by various database software programs, such as: Visual FoxPro, Clipper, dbFast, CodeBase, MultiBase, dbXL, Arago and similar database programs. A database file is a collection of data organized in a tabular form. A DBF file can be easily opened, edited and saved by any of these database programs therefore, this file format is very popular among computer users.

The most common use of a database file is to store a large amount of data and information. The file is widely used in almost every sector, such as: corporate and educational sectors to store the data and information. It has become an essential file format for an individual and an organization.

Where this file format is very useful for users on the other hand, it may create some serious problems as well. Sometimes a DBF file may become inaccessible or invalid due to corruption. DBF is not immune to corruption; in fact, this file format is prone to corruption due to its large size and complex file structure. It might be easily corrupted due to various reasons, such as: virus attacks, malfunction in database application, hard disk drive failure, software collision, unexpected cancellation of DBF, human errors and many more. These are some common reasons which can play an important role in database file corruption.

While opening a corrupt DBF file you may receive some error messages something like these:

  • “File .dbf does not exist”.
  • “The fields in table did not match the entries in the database”.
  • “Access to table disabled due to previous error”.
  • “Database file appears corrupt: Page is of wrong type.
  • “Corrupt table”/ “index header”.
  • “Filename .dbf has become corrupted”.

These are some common errors which frequently take place at the time of corruption. For example: you are working on your DBF file, everything is fine. But all of a sudden your database application (Visual FoxPro or other) starts hanging. You have no other option other than restarting the system. But when you restart your system and open the same DBF file, in which you were working earlier, it does not open or you get an error message saying the file is corrupted or damaged. This must be very frustrating situation for any user since all the hard work will go into the vain. All the data and information stored in the file might be lost forever. You have to re-create the file, which might not be possible in some cases.

In such critical state a BKF file will definitely help you. If you have backed up the database file (which is now corrupted), then you can easily restore it from the BKF file. But sometimes the BKF file may not be available or corrupted or invalid. In this situation you can use third-party DBF recovery software. This is one of the most efficient and effective solutions to fix corrupt DBF files. The DBF recovery software is designed to repair an extremely corrupted DBF file and to restore maximum data from it. It is highly capable to resolve or fix all the errors from corrupted DBF files. The software supports all popular database applications, such as: dBase III, dBase IV, dBase V, Visual FoxPro, Clipper, dBFast, CodeBase, MultiBase, dBXL and Arago. The best feature of the software is its self-describing user interface. It requires no technical knowledge or skills to use this software. Any tech savvy and a novice user can easily and comfortably use this software to repair corrupted DBF files. The DBF Recovery software is available with free demo version. Users can download the demo version before buying the full software. This helps users to examine the features and performance.

Posted in general | Comments Off on How to Repair DBF Files by Using DBF Recovery Software

Choosing the Right SDLC For Your Project

Choosing the right SDLC (Software Development Lifecycle) methodology for your project is as important to the success of the project as the implementation of any project management best practices. Choose the wrong software methodology and you will add time to the development cycle. Adding extra time to the development cycle will increase your budget and very likely prevent you from delivering the project on time.

Choosing the wrong methodology can also hamper your effective management of the project and may also interfere with the delivery of some of the project’s goals and objectives. Software development methodologies are another tool in the development shop’s tool inventory, much like your project management best practices are tools in your project manager’s tool kit. You wouldn’t choose a chainsaw to finish the edges on your kitchen cabinet doors because you know you wouldn’t get the results you want. Choose your software methodology carefully to avoid spoiling your project results.

I realize that not every project manager can choose the software methodology they will use on every project. Your organization may have invested heavily in the software methodology and supporting tools used to develop their software. There’s not much you can do in this case. Your organization won’t look favorably on a request to cast aside a methodology and tools they’ve spent thousands of dollars on because you recommend a different methodology for your project. We’ll give you some tips on how to tailor some of the methodologies to better fit with your project requirements later in this article. In the meantime, before your organization invests in software development methodologies you, or your PMO, ought to be consulted so that at least a majority of projects are benefited from a good fit.

This article won’t cover every SDLC out there but we will attempt to cover the most popular ones.

Scrum

Scrum is a name rather than an acronym (which is why I haven’t capitalized the letters), although some users have created acronyms, and is commonly used together with agile software development. Scrum is typically chosen because of its iterative nature and its ability to deliver working software quickly. It is chosen to develop new products for those reasons. There is typically no role for a project manager in this methodology, the 3 key roles are: the scrum master (replacing the project manager), the product owner, and the team who design and build the system. There is only one role that you would be asked to play if your organization is committed to using this methodology, scrum master. If you should determine that this would actually be the best methodology for your project, you’ll have to re-examine your role as project manager. You can either identify a suitable scrum master and return to the bench, or fill the role of scrum master.

Scrum suits software development projects where its important for the project to deliver working software quickly. Scrum is an iterative methodology and uses cycles called sprints, to build a working system. Requirements are captured in a “backlog” and a set of requirements is chosen with the help of the product manager. Requirements are chosen based on 2 criteria: the requirement takes priority over others left in the backlog and the set of requirements chosen will build a functioning system.

During the sprint, which can last from 2 to 4 weeks maximum, no changes can be made to the requirements in the sprint. This is one of the reasons that a project manager isn’t necessary for this methodology. There is no need for requirements management because no changes are allowed to the requirements under development. All changes must occur in the requirements set in the backlog.

Scrum will be suitable for software development projects where the product is a new software product. By new I mean that it is new to the organization undertaking the project, not in general. The methodology was developed to address a need for a method to build software when its necessary to learn on the fly, not all requirements are known to the organization and the focus is on delivering a working prototype quickly to demonstrate capabilities. You need to be careful when choosing requirements to deliver in each sprint to ensure that the set developed builds a software system that is capable of demonstrating the feature set supporting the requirements included.

You also need to ensure that these requirements are well known and understood as no changes are allowed once the sprint starts. This means that any changes to the requirements must come through a new set of requirements in the backlog making changes to these requirements very expensive.

This methodology divides stakeholders into 2 groups: pigs and chickens. The inventors of this methodology chose this analogy based on the story of the pig and the chicken – it goes something like this. A pig and a chicken were walking down the road one morning and happened to notice some poor children who looked like they hadn’t eaten for days. The compassionate chicken said to the pig: “Why don’t we make those children a breakfast of ham and eggs?” The pig said: “I’m not happy with your suggestion. You’re just involved in making the breakfast, I’m totally committed!” The point to this is the product owner, scrum master, and team are all in the “pig” group. All others are in the “chicken” group. You will be in the “chicken” group if you choose the Scrum methodology as a project manager.

Waterfall

Waterfall methodology calls for each phase of the development cycle to be repeated once only. Requirements will be gathered and translated into functional specifications once, functional specifications will be translated to design once, designs will be built into software components once and the components will be tested once. The advantage of this methodology is its focus. You can concentrate the effort of all your analysts on producing functional specifications during one period rather than have the effort dispersed throughout the entire project. Focusing your resources in this way also reduces the window during which resources will be required. Programmers will not be engaged until all the functional specifications have been written and approved.

The disadvantage of this approach is its inability to teach the project team anything during the project. A key difference between the waterfall approach and an iterative methodology, such as Scrum or RUP, is the opportunity to learn lessons from the current iteration which will improve the team’s effectiveness with the next iteration. The waterfall methodology is an ideal methodology to use when the project team has built software systems very similar to the one your project is to deliver and has nothing to learn from development that would improve their performance. A good example of a project which would benefit from the waterfall methodology is a project to add functionality to a system the project team built in the not too distant past. Another example of an environment that is well suited to the waterfall methodology is a program to maintain a software system where a project is scheduled for specific periods to enhance the system. For example, an order and configuration software system which is enhanced every 4 months.

The waterfall methodology does not lend itself particularly well to projects where the requirements are not clearly understood at the outset. Iterative approaches allow the product owners or user community to examine the result of building a sub-set of requirements. Exercising the sub-set of requirements in the iteration’s build may cause the product owners or user community to re-examine those requirements or requirements to be built. You won’t have that opportunity with the waterfall method so you need to be certain of your requirements before you begin the build phase. Interpreting requirements into functionality is not the only aspect of development that can benefit from an iterative approach. Designing the system and building it can also benefit from doing these activities iteratively. You should use the waterfall method when your team is familiar with the system being developed and the tools used to develop it. You should avoid using it when developing a system for the first time or using a completely new set of tools to develop the system.

RUP

The Rational Unified Process, or RUP, combines an iterative approach with use cases to govern system development. RUP is a methodology supported by IBM and IBM provides tools (e.g. Rational Rose) that support the methodology. RUP divides the project into 4 phases:

1. Inception phase – produces requirements, business case, and high level use cases

2.Elaboration phase – produces refined use cases, architecture, a refined risk list, a refined business case, and a project plan

3. Construction phase – produces the system

4. Transition phase – transitions the system from development to production

RUP also defines 9 disciplines: 6 engineering disciplines, and 3 supporting disciplines: Configuration and Change Management, Project Management, and environment so is intended to work hand in hand with project management best practices.

Iteration is not limited to a specific project phase – it may even be used to govern the inception phase, but is most applicable to the construction phase. The project manager is responsible for an overall project plan which defines the deliverables for each phase, and a detailed iteration plan which manages the deliverables and tasks belonging to each phase. The purpose of the iterations is to better identify risks and mitigate them.

RUP is essentially a cross between Scrum and waterfall in that it only applies an iterative approach to project phases where the most benefit can be derived from it. RUP also emphasizes the architecture of the system being built. The strengths of RUP are its adaptability to different types of projects. You could simulate some of the aspects of a Scrum method by making all 4 phases iterative, or you could simulate the waterfall method by choosing to avoid iterations altogether. RUP will be especially useful to you when you have some familiarity with the technology but need the help of Use Cases to help clarify your requirements. Use Cases can be combined with storyboarding when you are developing a software system with a user interface to simulate the interaction between the user and the system. Avoid using RUP where your team is very familiar with the technology and the system being developed and your product owners and users don’t need use cases to help clarify their requirements.

RUP is one of those methodologies that your organization is very likely to have invested heavily in. If that’s your situation, you probably don’t have the authority to select another methodology but you can tailor RUP to suit your project. Use iterations to eliminate risks and unknowns that stem from your team’s unfamiliarity with the technology or the system, or eliminate iterations where you would otherwise use the waterfall method.

JAD

Joint Application Development, or JAD, is another methodology developed by IBM. It’s main focus is on the capture and interpretation of requirements but can be used to manage that phase in other methodologies such as waterfall. JAD gathers participants in a room to articulate and clarify requirements for the system. The project manager is required for the workshop to provide background information on the project’s goals, objectives, and system requirements. The workshop also requires a facilitator, a scribe to capture requirements, participants who contribute requirements, and members of the development team whose purpose is to observe.

JAD can be used to quickly clarify and refine requirements because all the players are gathered in one room. Your developers can avert misunderstandings or ambiguities in requirements by questioning the participants. This method can be used with just about any software methodology. Avoid using it where the organization’s needs are not clearly understood or on large, complex projects.

RAD

RAD is an acronym for Rapid Application Development uses an iterative approach and prototyping to speed application development. Prototyping begins by building the data models and business process models that will define the software application. The prototypes are used to verify and refine the business and data models in an iterative cycle until a data model and software design are refined enough to begin construction.

The purpose of RAD is to enable development teams to create and deploy software systems in a relatively short period of time. It does this in part by replacing the traditional methods of requirements gathering, analysis, and design with prototyping and modeling, the prototyping and modeling allow the team to prove the application components faster than traditional methods such as waterfall. The advantage of this method is it facilitates rapid development by eliminating design overhead. It’s disadvantage is that in eliminating design overhead it also eliminates much of the safety net which prevents requirements from being improperly interpreted or missed altogether.

RAD is suitable for projects where the requirements are fairly well known in advance and the data is either an industry or business standard, or already in existence in the organization. It is also suitable for a small development team, or a project where the system can be broken down into individual applications that require small teams. RAD is not suitable for large, complex projects or projects where the requirements are not well understood.

LSD

Lean Software Development, or LSD, applies the principles of waste reduction from the manufacturing world to the business of developing software. The goal of LSD is to produce software in 1/3 the time, on 1/3 the budget, and with 1/3 the defects of comparable methods. Lean does this by applying 7 principles to the endeavor of software development:

1. Eliminate waste

2. Amplify Learning (both technical and business)

3. Decide on requirements as late as possible

4. Deliver as fast as possible

5. Empower the team

6. Build integrity

7. See the whole

Although Lean Manufacturing has been around for some time, its application to the process of developing software is relatively new so I wouldn’t call it a mature process.

LSD would be a suitable method to use where you have a subject matter expert in the method who has some practical experience in applying lean methods to a software development project. “Amplified” learning implies that your development team has a depth of knowledge in the software tools provided, and also a breadth of knowledge that includes an understanding of the business needs of the client. LSD would be suitable for a project where the development team has these attributes.

LSD depends on a quick turnaround and the late finalization of requirements to eliminate the majority of change requests, so will not be suitable for a project where a delayed finalization of requirements will have a poor chance of eliminating change requests, or the size and complexity of the system being developed would prevent a quick turnaround.

Extreme Programming (XP)

Extreme programming places emphasis on an ability to accommodate changes to requirements throughout the development cycle and testing so that the code produced is of a high degree of quality and has a low failure rate in the field. XP requires the developers to write concise, clear, and simple code to solve problems. This code is then thoroughly tested by unit tests to ensure that the code works exactly as the programmer intends and acceptance tests to ensure that the code meets the customer’s needs. These tests are accumulated so that all new code passes through them and the chances for a failure in the field are reduced.

XP requires the development team to listen carefully to the needs and requirements of the customer. Ambiguities will be clarified by asking questions and providing feedback to the customer which clarifies the requirements. This ability implies a certain degree of familiarity with the customer’s business; the team will be less likely to understand the customer’s needs if they don’t understand their business.

The intent of XP is to enhance coding, testing, and listening to the point where there is less dependency on design. At some point it is expected that the system will become sufficiently complex so that it needs a design. The intent of the design is not to ensure that the coding will be tight, but that the various components will fit together and function smoothly.

XP would be a suitable software development method where the development team is knowledgeable about the customers business and have the tools to conduct the level of testing required for this method. Tools would include automated unit testing and reporting tools, issue capture and tracking tools, and multiple test platforms. Developers who are also business analysts and can translate a requirement directly to code are a necessity because design is more architectural than detail. This skill is also required as developers implement changes directly into the software.

XP won’t be suitable where the development team does not possess business analysis experience and where testing is done by a quality assurance team rather than by the development team. The method can work for large complex projects as well as simple smaller ones.

There is no law that states you must choose one or the other of these methodologies for your software project. The list I’ve given you here is not a totally comprehensive list and some methodologies don’t appear on it (e.g. Agile) so if you feel that there is some other methodology that will better suit your project, run with it. You should also look at combining some of the features of each of these methods to custom make a methodology for your project. For example, the desire to eliminate waste from the process of developing software is applicable to any method you choose and there is likely waste that could be eliminated in any development shop.

Be careful to choose a methodology that is a good fit for your team, stakeholders, and customer as well as your project. Bringing in a new development methodology that your team will struggle to learn at the same time they are trying to meet tight deadlines is not a good idea. On the other hand, if you have the latitude you may want to begin learning a new method with your project.

Posted in general | Comments Off on Choosing the Right SDLC For Your Project

Visualwize Chess Training Software: A Review

Chess enthusiasts of all levels are always seeking ways to improve their chess skills, so that they can win at chess games, whether they play professionally or socially.

One of the most effective ways to improve your chess skills is to use a chess visualization software, which enables you to practice and improve your visualization skills. Visualization is one of the most important skills you need to succeed in chess.

A program that is apparently gaining a lot of popularity and is helping many people to improve their chess is Visualwize Chess Training Software.

Let’s address the basic questions on this software.

What is it?

Visualwize is a chess training software that trains your ability to have a clear mental picture of chess moves before you make these moves on the board. This enables you to assess the implications of your moves before you make the actual moves. This therefore enables you to play better at chess, as you will be able to make the right decisions and avoid making some mistakes that would make you lost a game.

This program has 240 visualization training exercises which are designed to develop your visualization skills. It has and more than 1200 moves to visualize. These moves are real moves made by a master player in real chess games. With the software, you can train to visualize up to 8 moves ahead.

The program consists of 4 levels, level 1 being rather easy and level 4 being hard. You can order the level that suits your needs. For those who really want to significantly improve their skills, level 4, the complete program, is recommended.

How does it work – what does the program actually do?

In simple terms, the program shows a chess position from a game between two chess masters, and then, with arrows, it shows the next few moves that have been made in that position by the renowned chess masters. The arrows stop in a position where a tactic, i.e., a combination that wins the game exists.

Unlike other programs and books that use written annotations for the moves, this program uses arrows on the board. This means it reflects a realistic playing scenario, and you don’t have to take your attention and eyes from the board to read written annotations.

This is one major factor that separates this program from others that are available on the Internet today. Rather than building up the skill of moving your eyes between notation and the board, Visualwize trains you in the art of seeing unfolding moves without actually affecting the board.

On the website where the program is offered, there are many informative and short videos that you can watch, which describe how the program works.

Why is it important – what benefits can you get from this program?

It is recommended that chess players wanting to take their chess to the next level use this program because it offers several benefits:

  • You will be able to see more chess moves ahead, before you actually make any move on the board, giving you an opportunity to assess the consequences of every move before you make it.
  • You will avoid making mistakes which can make you lose a game in an instant.
  • You will make the most of your training time since you will be able to easily visualize the notation below chess diagrams.
  • You become an efficient and effective chess player – you won’t need to calculate variations several times over because you will be able to clearly the consequences of your move in your mind, saving you a lot of time.
  • You will make a wise investment that will help you significantly improve your chess – the program is favourably priced at only $30. If you were to hire a chess coach, you would pay a very high fee per hour of the coach’s time to train you.
  • It is convenient – once you purchase the program, you can train at any time of the day or night, as much as you want.

With several books and programs on how to improve chess, available today, Visualwize is considered to be a cut above the rest among many chess enthusiasts.

Posted in general | Comments Off on Visualwize Chess Training Software: A Review