Introduction to Silk Test Architecture

Normal use of an application consists of a person manipulating a keyboard and mouse to initiate application operations. The person is said to be interacting with the GUI (Graphical User Interface). During Silk Test testing, Silk Test interacts with the GUI to submit operations to the application automatically.

Thus Silk Test can simulate the actions of a person who is exercising all the capabilities of an application and verifying the results of each operation. The simulated user (Silk test) is said to be driving the application. The application under test reacts to the simulated user exactly as it would react to a human rest. Silk Test consists of two distinct software components that execute in separate processes:

The Silk Test host software

The 4Test Agent software

Silk Test host software

The Silk Test host software is the program you use to develop, edit, compile, run and debug your 4Test scripts and test plans. This manual refers to the system that runs this program as the host machine or the Silk Test machine.

The Agent

The 4Test Agent is the software process that translates the commands in your 4Test scripts into GUI-specific commands. In order words, it is the Agent that actually drives and monitors the application you are testing. One Agent can run locally on the host machine. In a networked environment, any number of Agents can run on remote machines. This manual refers to the systems that run remote Agents as target machines. This manual refers to the systems that run remote Agents as target machines. In a client/server environment, Silk Test drives the client application by means of an Agent process running on each application’s machine. The application then drives the server just as it always does. Silk Test is also capable of driving the GUI belonging to a server or of directly driving a server database by running scripts that submit SQL statements to the database. These methods o directly manipulating the server application are intended to support testing in which the client application drives the server.

Posted in general | Comments Off on Introduction to Silk Test Architecture

How to Watch Satellite TV Online Without Any Satellite Dish

Anyone can watch satellite TV online without any satellite dish system nowdays. In case you do not know, this article would show you one time-tested and another new revolutionary way to watch satellite TV on the internet without having to set up a satellite dish.

Many of the older generation grew up in an era of satellite dishes, especially for those who live in the rural areas where cable do not exist. The dishes are transmitters and together with receivers are conduits for TV signals to be displayed as visual images and pictures on our TV screens. However, they are not always pleasant. Set up can be tough and definitely not for those who are not good with their hands or have poor technical skills. Satellite dishes have grown smaller in recent years but they used to be larger than 6 foot monsters in earlier days. If that irks you, you would be relieved to know that you can watch satellite TV online just like many others without satellite dish system.

What are the hardware and PC requirements you need to set up your 'satellite-dish less' PC satellite online TV?

1. A Good PCTV Card

A PCTV card can be installed onto your computer to make your computer work like a satellite television set. Such cards come in the form of internal or external hardware. If you are familiar with the inside of a computer, then an internal card could be a good choice since they tend to be cheaper and more affordable. However, do not bother yourself when you find it too troublesome to fix it internally because there are external cards that work more like plug-and-play gadgets. They cost more and can set you back easily by a few hundreds. As long as your PC has a spare USB port, this option to watch satellite TV online is open to you.

2. PC Requirements

I would suggest you check your systems configuration before you start shopping for a PCTV card. Most cards require a minimum Pentium 3 333MHz system to run well but remember to note down the specifications like RAM, hard disk space, Operating System, etc before you head to the stores.

3. Ready Internet Connection

PCTV cards work well with both dial-up and broadband connections. However, I have a word of advice here. Dial-up transmission runs like a snail and is a really serious party spoiler. You can end up more frustrated than glad that you are watching the program. Go for broadband connection if you can afford to.

Okay, now that we have discussed about the older commonly accepted method to watch satellite TV online, we will look at another new revolutionary technique. This requires the usage of PC satellite TV software which can be downloaded easily. The setup is simple and all it takes is downloading the software and clicking a few buttons before you are ready to watch satellite TV online from more than 3000 channels. Awesome is not it?

For more information on this PC satellite TV software, do a read up at my satellite TV blog.

This article may be freely reprinted or distributed in its entity in any ezine, newsletter, blog or website. The author's name, bio and website links must remain intact and be included with every reproduction.

Posted in general | Comments Off on How to Watch Satellite TV Online Without Any Satellite Dish

Advantages and Disadvantages of Biometric Time and Attendance Software

First of all let me ask you what you understand by time and attendance software? Have you ever been asked to log in as soon as you enter office and the main gate of the office has a Biometric machine that takes in your finger prints and allows you to enter the office premise? Yes, these are the time and attendance software being installed in a company.

Biometrics consists of methods for uniquely identifying a person (human being) by his/her physical or behavioral traits. There are many biometric software available in market for such purpose and their use is widely known. One such use is Biometric time and attendance management software.

Those days are gone when we had to punch in cards or sign into a register to tell the other person that we are present. Just as paper checking has been changed from manual to computerized, identifying a person and letting him in your office has been changed from manual to biometrics.

There are many benefits of having such methodology in your office. Such as:

• Accurate timing: When a person looks at his watch and enters the time there is a slight chance that he may see the wrong timing and write. Whereas with biometric time and attendance software there is no possibility of such mistake. The user does not need to see or check the time, it automatically gets logged in.

• Less error: There is no scope of human error here.

• Profit to company: If it’s accurate and correct the company will definitely gain from it.

As everything has a good and bad side this too has its disadvantages, such as:

• Extra cost to company: Biometric software and machine cost a lot more, so installing such software need a good investment money wise.

• Extra management: Remember when every employee is logging his own timing when he comes or leaves; there is no extra management here. But, if you are putting a machine there has to be taken some care of it.

Biometrics time and management software is really helpful when creating payrolls for employees. Once a definite timing has been registered you don’t need to think twice before creating the employees pay.

Many homes are also using such kind of software to have a safe and secure home. Biometric software is really helpful when you need security in your home as well as in office. There are many companies all over the world providing such biometric time and attendance software. You just need to keep an eye on the technologies and websites that are providing you these.

Posted in general | Comments Off on Advantages and Disadvantages of Biometric Time and Attendance Software

Review of Takeoff Software for Estimating Construction

So often people want to rush out and buy estimating software or takeoff software without first trying to define their internal estimating processes. Once the estimating process is clearly defined, then and only then, can you actually try to compartmentalize the process into segments. So often the segment is really quantity takeoff. Takeoff of what you may wonder? That is like the million dollar question. This article will speak about the takeoff software process which usually associated with estimating software processes. The takeoff software process can often be takeoff of materials for some folks, and to many others, the takeoff process of scoped systems to create estimates or proposals. This review or comparison will not try to explain the estimating software process but bring to you valid quantity takeoff thinking among estimators in a quest to find which product thinks the way you do. These are the opinions of the author.

I will review and compare 3 types of measuring takeoff products:

It is extremely important to note that these are ONLY measuring takeoff programs, NOT estimating programs.

1) Planswift

2) On-Screen Takeoff by On Center Software

3) Electronic Plan Takeoff Software

All three products have their strengths, however, Planswift and On-Screen Takeoff are stand-alone products and Electronic Plan Takeoff is actually dynamically integrated live with Microsoft Excel which means that it starts and finishes and saves in Excel. They all integrate with Excel, however, you will have to evaluate your thought process and decide which of the three products work-flow think along the lines of how you think. For instance, what is the first thing you do when you get a set of plans? Typically, you start flipping through the plans to see how involved the project is and what type of work do you see that is attractive for your company. Then when you decide you are going to estimate this job, more often than not, you start like 80% of companies in the world of construction estimating by opening your takeoff master template Excel spreadsheet. You rename your spreadsheet to the new job or project and off you go performing takeoff. This is where the differences are:

In Planswift, you decide what drawing you are on and then you perform the measuring of an item you want to perform takeoff on the plan. Unfortunately, that is not exactly how an estimator thinks. Planswift does give you the ability to add a type of takeoff item on the fly by naming it and then perform takeoff of it; somewhat of a very manual and slow process. They also provide you with the ability of applying a type of assembly to a takeoff to aggregate quantities of items in that assembly. Not quite the way an estimator thinks. It forces you to jump to different screens which slows down the process. Typically, the main start of anyone’s takeoff process, or some may think of it as a checklist approach, is to start with your own spreadsheet of YOUR items. Those items can be material items or can be scoped assembly system items. Either way, by starting with a master spreadsheet say in Excel for example, many estimators think of this as a risk reducer, not to forget things they normally takeoff. Being that Planswift is a stand-alone takeoff program, it typically saves your takeoff images in Planswift instead of your estimate in Excel, if Excel is your estimating system. If you are using Excel, you have to manually save your takeoff measurement numbers in Excel and your takeoff images in Planswift or elsewhere, just not in Excel where the takeoff quantity resides. Again, if you want to integrate with Excel, they force you to either export or import takeoff items from Excel rather than being dynamically integrated live to Excel. They do however have the ability to dump the measured quantity from Planswift into any Excel spreadsheet or Word document. The main purpose or the primary focus of this program is measuring, therefore it does a good job at that function. Most of the other functions require you to jump around different screens, and essentially, you loose your thought of where you are. There are some features that attempt to address the estimating process, however, there are many features that are missing for Planswift to be a full fledged estimating system; it is NOT one. Planswift does integrate with the leading estimating system Sage Timberline, but the integration is weak. Since Timberline’s power is in assembly takeoff and where most estimators reside in Timberline, Planswift does not give the estimator the ability to add quantities of miscellaneous Timberline items or one-time items that need to added on the fly to an assembly while they are in Planswift at the Timberline interview screen, and while being in the measuring phase. Planswift does allow the deleting of assembly generated items as well adjusting assembly item quantities in a different screen. Again, to perform all that, you are forced to jump around to different screens. No assembly is ever perfect in any estimating system since project conditions are always uniquely different, therefore, having to add items to an assembly is extremely important. That adding of items and associated quantities is an absolute requirement any estimator typically has to do during the takeoff measuring and estimating phase; something that Planswift struggles with as related to Timberline Estimating. Planswift does allow the direct send of measurements to Timberline Estimating items and assemblies while in Timberline Estimating, just as you would do with the old digitizer measuring boards. Training, support and maintenance are extra for Planswift. On-Screen Takeoff by On Center Software, and Planswift charge their annual maintenance and support fees per license (mandatory) which costs the end user more expense annually especially if a customer has more than one license.

On Center’s On-Screen Takeoff is the Grand Daddy of software takeoff products due to the fact that it has been around the longest. On Center recognizes that On-Screen Takeoff is primarily a measuring program. That is why they have a separate estimating program named QuickBid for those who want an estimating program. On Center does not try to trick you into thinking it is an estimating system. In On-Screen Takeoff, you also decide what drawing you are on and then you perform the measuring of the plan. BUT, before you start, you can load a master set styles of things you typically takeoff or measure from your own library. That process seems to be less complicated than that of Planswift. On-Screen Takeoff does give you the ability to add a type of takeoff item on the fly by naming it and then performing takeoff of it; somewhat of a manual and slow process as well. The program does come with many features that are primarily focused on simple measuring to advanced measuring issues all with attention to detail regarding easy navigation for the takeoff process. On Center does a very good job at that. However, there seems to be a disconnect of thought from an Excel spreadsheet items you may use for estimating and/or proposals. The integration to Microsoft Excel is not a dynamic live link, more like an after thought in my opinion. Yes, you can establish links to named styles to cells or ranges in Excel, somewhat rigid. But the question you will have to ask yourself, which will happen more often than not is: What do you do when you need to add things on the fly during takeoff and in an Excel spreadsheet? Again there will be manual associations you will have to establish with Excel which is another major slowdown. You have to manually save your takeoff measurement numbers in Excel and your takeoff images in On-Screen or anywhere you decide, except the takeoff images will not be saved in Excel where the takeoff quantity resides. This type of situation arises when a takeoff program is a stand-alone program. On Center’s On-Screen Takeoff has the best integration with the most widely used estimating system in the USA: Sage Timberline Estimating. It basically mimics the same interview process as you would do with the old digitizer measuring boards. By working directly with Timberline, On-Screen Takeoff allows the estimator to perform takeoff of a Timberline variable question and immediately returns back directly with the takeoff quantity in a Timberline assembly at the variable question. By virtue of this process, On-Screen Takeoff allows the estimator to continue his/her Timberline interview process in Sage Timberline Estimating by reviewing/massaging generated quantities, or adding items in a Timberline assembly as the estimator see fit. That workflow process gives full control to the estimator, good job On Center. Training, support and maintenance are extra for On-Screen Takeoff. On-Screen Takeoff by On Center Software, and Planswift charge their annual maintenance and support fees per license (mandatory) which costs the end user more expense annually especially if a customer has more than one license.

This next system is ONLY if your estimating system or proposal generator is Microsoft Excel. Electronic Plan Takeoff Software is a plug-in for Excel. You start your spreadsheet, you perform the measuring takeoff, you may even add some more items on the fly all the while you are in the measuring phase in the Electronic Plan Takeoff program. When you are done, even if you added items on the fly, they automatically appear in your Excel spreadsheet. Excel is the control of everything. Your project is started in Excel, your takeoff is saved in Excel, the estimate or proposal is/can be produced there in Excel; one program, one place. Many takeoff programs interface with Excel somehow, but only Electronic Plan Takeoff is live linked with Excel, meaning all your Excel spreadsheet descriptions appear in the measuring takeoff program so you always know where you are in Excel. That is a huge difference in comparison to Planswift and On-Screen Takeoff. You can even change a description of a takeoff item in Electronic Plan Takeoff and it is automatically changed live, in your Excel spreadsheet. When you talk about the estimating and takeoff phase you must keep processes cleans and easy and this program does just that. There is no getting lost in this program. Just like the other reviewed programs above, the central focus of this program is takeoff measuring, and it does a GREAT job at that. The navigation within the program is really simple and easy. It is not made to work with other estimating systems, but there is a version that allows the direct send of measurements to any Microsoft Windows program awaiting a keyboard entry, just as you would do with digitizer measuring boards. There is also a version that works with digitizer boards as well. If you use Microsoft Excel for estimating, or takeoffs, or proposals, then this Electronic Plan Takeoff program for Excel would be your best choice. The integration to Excel is unmatched in Electronic Plan Takeoff compared to Planswift or On-Screen Takeoff. What is quite different in Electronic Plan Takeoff is that training, support, and maintenance are INCLUDED with a purchase, whereas training, support and maintenance are extra for Planswift and On-Screen Takeoff. Moreover, annual support and maintenance for Electronic Plan Takeoff year two and beyond is a low fee per company per year, instead of per license. On-Screen Takeoff by On Center Software, and Planswift charge their annual maintenance and support fees per license (mandatory) which costs the end user more expense annually especially if a customer has more than one license.

Microsoft and Excel are registered trademarks of Microsoft Corporation. Planswift is the registered trademark of Tech Unlimited, Inc. On-Screen Takeoff and QuickBid are registered trademarks of On Center Software, Inc. Sage Timberline Office, Sage Timberline Estimating are registered trademarks of Sage Software, Inc.

Posted in general | Comments Off on Review of Takeoff Software for Estimating Construction

Application Software in Business Activities

Business is any activity undertaken by an individual or a group of person with an intention to make profits. A business engages in various activities like planning of resource, scheduling of activities, coordinating and other managerial activities. All these have to be completed in time in order to generate maximum profit in the production. Prospective entrepreneurs should adhere to these objectives.

Much of business time is put waste when it handles its tasks through the use manual system. This necessitates to the use of the software, an automated means which is efficient-oriented. Examples of the software in business application include the Decision Support System, Transaction Processing system and Management Information System. They can be largely used in resource planning where an enterprise defines way to achievement.

Collaborative resource planning software provides the business people with adequate and reliable information. Marketing information and bureaucracy of the enterprise is unambiguous. Previous methods that contributed to the failures can be fully noted. This enables the enterprise to opt to use other successful means in use elsewhere. An efficient resource planning software helps you to generate and retrieve information about resource allocation in form of detailed niche reports. As a result, time as a resource is much conserved and can be used in other productive areas.

Boundaries are clearing defined by the software. The business is expected to work towards the laid limits by the legal authority, operational, technical, economic and social feasibility. Beyond the predetermined extents, no productive operation can be encountered.

Scheduling of activities is best in practice via use of the software. The order and the way in which operation is accurately developed by use of the program, this results into application of qualitative business techniques, where there is matching of skills and jobs to done. The enterprise standards of performance are maintained. Cases of underemployment or over employment are eradicated. In turn, employees’ are encouraged to exercise creativity and innovation in right of their propelling positions, and hence works towards achievement of objectives of the business.

Planning software makes efficient forecasting of resources. Unknown future is determined prior. Situations like inflation, competition increases government provision of subsidies and technological changes can be adequately known. The fallout is to relay strategies to deal with upcoming challenging matters.

Top echelons (management) benefits significantly in software application. Executives’ unstructured decisions are accurately established. They rapidly derive information from the software. For example, decisions on where to establish a new firm or a branch, whether there is funds to finance multiple projects.

Management need to store information in reliable source (in software). This is used for swift evaluation of business performance. They can decide to reward the best performing employees based on the results retrieved from the software. This motivates employees to work zeal and confidence. Their individuals objectives are harmonized to entire business objectives.

Managers use software to control the progress of activities. Those deviating from the predetermined plans can be precisely noted. Management can also rely on software for marketing of its products. Research on business competition like advertisement and efficient market penetration means is done in detail.

In conclusion, software suitable for effective planning of the business operations, scheduling of activities and other managerial activities. Without use of software, a business is considered to be running behind technology and operating at obsolete level.

Posted in general | Comments Off on Application Software in Business Activities

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?

Computer Hardware Course – The Advantages of Taking It

Computer hardware courses are an excellent way to learn how to manage the inevitable computer failures that you will encounter as you find yourself hanging on your computer more and more everyday. While you do have the option of taking your computer to the service center it can cost you a lot of time and money. Your computer hardware course is invaluable for helping you understand the hardware requirements for your computer that will be enable you to jump to the rescue instead of trudging along to the repair shop.

It does not take an engineer or a technician to be successful in learning about computer hardware. If you are interested in engineering or technician positions however, a background in computer hardware can make you a far more valuable person in your field and can enhance your employability tremendously.

To troubleshoot your computer you can do very well with a simple computer hardware course. You can become your own specialist and forgo spending the money on an IT specialist.

The time invested in a computer hardware study program will pay off quickly when things go wrong. But, this is not the only reason taking a computer hardware course would be a good plan.

Not only will you be able to fix your computer, but you will have the knowledge to build a computer from scratch. The cost of computer parts is often far less expensive than buying a pre-made package. You will also be able to customize your computer so that it is perfectly designed for your needs.

By avoiding the cost of labor from the computer store you will have a far less expensive computer that is perfect for you. You will also no longer need to worry about taking your computer in for repairs as you will know just how to fix what goes wrong.

Computer knowledge is in high demand no matter what career you are involved in. With the information you learn in a computer hardware course you will be able to take on an IT position. Such positions are in high demand as a limited number of people have the knowledge to take on an IT role.

The time needed to take a computer hardware course is well worth the investment. Learning about software and programming can only make you even better with your computer goals. If you are limited in time, not to worry. Many courses are available online or on CD for you to do at home.

Take some time to discover exactly what will be covered in your course. The computer technology field is huge, so you will need to focus. You will never be able to learn everything about computer hardware in a single course. It takes a lifetime of study to learn, and with technology constantly changing you will need to continuously work on keeping your knowledge up to date. A computer hardware course will bring you a chance to get ahead of the game and keep up with your own computer.

Louis Zhang, computerhardwarecute dot com

Posted in general | Comments Off on Computer Hardware Course – The Advantages of Taking It

Why Do We Need Software Engineering?

To understand the necessity for software engineering, we must pause briefly to look back at the recent history of computing. This history will help us to understand the problems that started to become obvious in the late sixties and early seventies, and the solutions that have led to the creation of the field of software engineering. These problems were referred to by some as “The software Crisis,” so named for the symptoms of the problem. The situation might also been called “The Complexity Barrier,” so named for the primary cause of the problems. Some refer to the software crisis in the past tense. The crisis is far from over, but thanks to the development of many new techniques that are now included under the title of software engineering, we have made and are continuing to make progress.

In the early days of computing the primary concern was with building or acquiring the hardware. Software was almost expected to take care of itself. The consensus held that “hardware” is “hard” to change, while “software” is “soft,” or easy to change. According, most people in the industry carefully planned hardware development but gave considerably less forethought to the software. If the software didn’t work, they believed, it would be easy enough to change it until it did work. In that case, why make the effort to plan?

The cost of software amounted to such a small fraction of the cost of the hardware that no one considered it very important to manage its development. Everyone, however, saw the importance of producing programs that were efficient and ran fast because this saved time on the expensive hardware. People time was assumed to save machine time. Making the people process efficient received little priority.

This approach proved satisfactory in the early days of computing, when the software was simple. However, as computing matured, programs became more complex and projects grew larger whereas programs had since been routinely specified, written, operated, and maintained all by the same person, programs began to be developed by teams of programmers to meet someone else’s expectations.

Individual effort gave way to team effort. Communication and coordination which once went on within the head of one person had to occur between the heads of many persons, making the whole process very much more complicated. As a result, communication, management, planning and documentation became critical.

Consider this analogy: a carpenter might work alone to build a simple house for himself or herself without more than a general concept of a plan. He or she could work things out or make adjustments as the work progressed. That’s how early programs were written. But if the home is more elaborate, or if it is built for someone else, the carpenter has to plan more carefully how the house is to be built. Plans need to be reviewed with the future owner before construction starts. And if the house is to be built by many carpenters, the whole project certainly has to be planned before work starts so that as one carpenter builds one part of the house, another is not building the other side of a different house. Scheduling becomes a key element so that cement contractors pour the basement walls before the carpenters start the framing. As the house becomes more complex and more people’s work has to be coordinated, blueprints and management plans are required.

As programs became more complex, the early methods used to make blueprints (flowcharts) were no longer satisfactory to represent this greater complexity. And thus it became difficult for one person who needed a program written to convey to another person, the programmer, just what was wanted, or for programmers to convey to each other what they were doing. In fact, without better methods of representation it became difficult for even one programmer to keep track of what he or she is doing.

The times required to write programs and their costs began to exceed to all estimates. It was not unusual for systems to cost more than twice what had been estimated and to take weeks, months or years longer than expected to complete. The systems turned over to the client frequently did not work correctly because the money or time had run out before the programs could be made to work as originally intended. Or the program was so complex that every attempt to fix a problem produced more problems than it fixed. As clients finally saw what they were getting, they often changed their minds about what they wanted. At least one very large military software systems project costing several hundred million dollars was abandoned because it could never be made to work properly.

The quality of programs also became a big concern. As computers and their programs were used for more vital tasks, like monitoring life support equipment, program quality took on new meaning. Since we had increased our dependency on computers and in many cases could no longer get along without them, we discovered how important it is that they work correctly.

Making a change within a complex program turned out to be very expensive. Often even to get the program to do something slightly different was so hard that it was easier to throw out the old program and start over. This, of course, was costly. Part of the evolution in the software engineering approach was learning to develop systems that are built well enough the first time so that simple changes can be made easily.

At the same time, hardware was growing ever less expensive. Tubes were replaced by transistors and transistors were replaced by integrated circuits until micro computers costing less than three thousand dollars have become several million dollars. As an indication of how fast change was occurring, the cost of a given amount of computing decreases by one half every two years. Given this realignment, the times and costs to develop the software were no longer so small, compared to the hardware, that they could be ignored.

As the cost of hardware plummeted, software continued to be written by humans, whose wages were rising. The savings from productivity improvements in software development from the use of assemblers, compilers, and data base management systems did not proceed as rapidly as the savings in hardware costs. Indeed, today software costs not only can no longer be ignored, they have become larger than the hardware costs. Some current developments, such as nonprocedural (fourth generation) languages and the use of artificial intelligence (fifth generation), show promise of increasing software development productivity, but we are only beginning to see their potential.

Another problem was that in the past programs were often before it was fully understood what the program needed to do. Once the program had been written, the client began to express dissatisfaction. And if the client is dissatisfied, ultimately the producer, too, was unhappy. As time went by software developers learned to lay out with paper and pencil exactly what they intended to do before starting. Then they could review the plans with the client to see if they met the client’s expectations. It is simpler and less expensive to make changes to this paper-and-pencil version than to make them after the system has been built. Using good planning makes it less likely that changes will have to be made once the program is finished.

Unfortunately, until several years ago no good method of representation existed to describe satisfactorily systems as complex as those that are being developed today. The only good representation of what the product will look like was the finished product itself. Developers could not show clients what they were planning. And clients could not see whether what the software was what they wanted until it was finally built. Then it was too expensive to change.

Again, consider the analogy of building construction. An architect can draw a floor plan. The client can usually gain some understanding of what the architect has planned and give feed back as to whether it is appropriate. Floor plans are reasonably easy for the layperson to understand because most people are familiar with the drawings representing geometrical objects. The architect and the client share common concepts about space and geometry. But the software engineer must represent for the client a system involving logic and information processing. Since they do not already have a language of common concepts, the software engineer must teach a new language to the client before they can communicate.

Moreover, it is important that this language be simple so it can be learned quickly.

Posted in general | Comments Off on Why Do We Need Software Engineering?

Schedule Slippage – Root Causes

“The single most important task of a project: setting realistic expectations. Unrealistic expectations based on inaccurate estimates are the single largest cause of software failure.”- Futrell, Shafer


With global and competitive market, it is very important to launch a product or service in the market on time, ahead of competitors. Definitely, timely launch depends on on-time-completion of the product development projects. Project planning has lots of challenges to overcome in order to finish the project on time – right from schedule predictability, envisioning future/possible risks and coming up with mitigation plans.

This article talks about some of the challenges, often faced in the Software Product Development industry that causes the schedule slippage.

Schedule slippage: Delay in the project completion from its initial estimated date of completion.

Each project plan will have a planned completion date (NRA, RA), and a bounding box or upper limit in schedule. Nowadays, it is a common practice to have three dates associated with any project plan:

  • Non-Risk Adjusted (NRA) date: Project completion date assuming no hurdles – Ideal conditions.
  • Risk Adjusted (RA) date: Project completion date assuming some risks will come on the way and will need extra time to attend to them.
  • Bounding Box (BB) or upper limit: The upper limit on the project plan before which the project has to be finished under any circumstances – Generally decided by the top management based on product/services roadmap and launch in the market.

Under ideal circumstances, any project is scheduled to complete by NRA date. Considering some risks that may come on the way and would eat some time off the schedule, the project should be over by RA date. If the risks were not envisioned and hence not planned well, then project may get delayed and would complete after RA date. Project completion crossing the RA or upper limit is neither good nor expected out of a well-planned project.

Root Causes

As we always plan for a project to get over before RA date, seldom is the case it happens as expected. There are multiples reasons for schedule slippage, right from improper planning, lack of resources to unplanned requirements and rework that eat away vital time off the planned schedule.

A typical project development process – Each project will have a team (development, testing and other functions) that will work through a process (requirement analysis, schedule estimation, design, implementation and testing) to deliver a product to the customer/end user. Each entity that participate in the project – directly or indirectly affect the schedule.

From the development process, we can identify the items that can cause delay in the execution of the project – for example, misinterpreted or unclear requirement adds up to completion time, unavailability of development tools or resources can prolong the project duration. Various processes like schedule estimation, detailed design and product development if not executed skillfully, may significantly blow up the project cycle.

For better understanding all these possible causes that may result in schedule slippage are categorized .

Let’s have a detailed look at the root causes of schedule slippage category wise.

1) Schedule Estimation: “The key is not to prioritize what’s on your schedule, but to schedule your priorities.” – Stephen Covey

For a project to be executed on time, it is very important to have it planned very well. Any mistake in project schedule estimation reflects as delay in the project completion from its deadline. There are several factors that contribute to improper schedule estimation:

· Underestimation of technical complexities: At the start of the project, many of the team members may not have thorough knowledge of technical complexities and hence their estimation would be incorrect. Sometimes it may so happen that the person giving estimates for a particular task is having no idea about the technical challenges involved in carrying out that particular task. You might hear, towards the mid/end of the project life cycle when the task is not finished on time – “Oh, I didn’t know that this feature also requires 5 more tasks to be done!” or “I was thinking this task to be so simple, but I under estimated it!”. · Lack of Design/Big picture: It is important to have a bigger picture / overview of the complete project to understand how a particular module/feature would fit in to complete project. Product or system level design helps in understanding the interfaces among other modules and the required coordination for product assembly and hence, a better insight into the work involved. Often, estimates without focus on detailed design tend to deviate more from the actual time taken for finishing the job. · Integration Testing: While making a project plan, testing also needs to be accommodated in the schedule. At times, the unit testing or testing done by individual contributors on their module is taken into account but not the system level testing. Toward the release, when all the individually tested modules are brought together, a system level or integration testing is a must. Having the time for integration testing not accounted in the overall project schedule will cause delay in the project completion.

· Unplanned dependencies: Project planning is not only about breaking the project into minute tasks and managing them. A well-planned project schedule also needs to consider certain unplanned dependencies. Some of these are:

o People: Optimum utilization of human resources calls for same set of people working in multiple projects. A person may not be available to work for currently planned/assigned project due to extended/unplanned work in another parallel project. Another issue related to people could be unplanned/unexpected attrition that will affect the project plan. Time is also lost in mentoring of new member by a senior (more experienced) person which goes unaccounted if not planned.

o Tools & Equipments: Project can be delayed if team is waiting for release of upgrade or procurement of any vital tool (hardware or software being used in the project) or if the equipments required for development and testing are not available. “We had a 3-months project for validating our existing solution on new product platform using customer DUT (device under test). We had to wait for the DUT for nearly 1.5 months as it got stuck in customs. After getting the DUT, we realized that it’s been damaged partially during transportation. As a result we had to ask for another DUT and whole project took more than 5 months to get finished.” – I am sure that such cases will be quite familiar to many organizations. Other reason for timely unavailability of tools / equipments is that they are shared among various projects to reduce the operating cost. Any unplanned dependency on their usage or wrong assumption about availability of these shared resources would cause delay in the program. Team members might have to work on shifts to optimize the usage of shared resources which can cause reduced work hours and/or productivity loss and results to schedule slippage.

“I was waiting for Matlab license to be released by another person in the team but he left the office without doing so and I lost 3 hours figuring out what to do?” – is it something you faced before?

o Other programs: If multiple programs have deliverable dependencies, then delay in one project will have cascaded effect on other projects, which directly or indirectly depend on its deliverable. “We got delayed because we had to wait for a critical UI component from the framework project team” or “We didn’t plan for bug fixes for a component which was supposed to be delivered defect free for our usage” are the common scenarios for delays in program which are dependent on other program deliverables. Parallel programs may affect the schedule of your program in a different way as well – Sometimes, management changes the priority of the programs running in parallel. If your project is considered as a low priority one then there might be lack of resources assigned to your project that may result in schedule slippage.

· Beta releases: How many times we seek feedback on our product during development? And how often we allocate time for it? It’s important to plan beta releases if we desire to have our product validated by expert users or lighthouse customers during development. Getting feedback from beta customers becomes important especially when their requirements echo that of a mass customer base. Process of giving workable releases to customers, collecting their experience, having their feedback analyzed, and then incorporating in the final product version takes significant time.

· Risk mitigation and plan B: Every project will have some or the other risks. These risks can be of varying severity and probabilities. While making project plan, it is important to treat the risk individually based on their severity and probability of occurrence. If high probable risks with higher severity are not planned with their mitigation plan (or plan B), they will have huge impact on schedule deviation from planned one. As in one of the previous examples quoted, getting a DUT on time for validation was a risk. Had there been a mitigate plan (plan B) like – Validate with other DUT or if DUT is not available here, let one developer travel to customer’s place and finish the validation on time, the schedule slippage would have been avoided.

2) People: Ultimately, projects are executed by people who may not be skilled or talented. Hence, looking for perfection in projects involving human beings may not be a feasible thought. Certain unpredictable and hence unavoidable issues under this category are:

· Poor leadership: Before thinking of project execution, it is project planning that actually would set the platform of success. Execution of the project depends on its team while planning is taken care by the project leader. The project leader is expected to have enough technical know-how to understand the project goals and to the details of the tasks involved. Poor leadership and superficial knowledge of assignments often results in invalid effort estimation and ad hoc task delegation causing stress and possible delay in project execution. People leading the team are also responsible for keeping the team spirit and motivation level upbeat. Poor personal commitment due to lack of motivation results in loss of productivity and may cause schedule to slip. Another reason that adds up to delay in projects is inability of leadership team to track the schedule progress and take the correction action.

· Attrition: If the project duration is large and job market is hot, it may be difficult to retain people in the project till its completion. Attrition may further delay the completion especially if the person leaving the job was in critical path. A person leaving the organization would leave a gap in the project that a new person may not fill immediately, which in turn causes sudden reduction in the task force.

· Learning curve: When ever a new person or team member is included in the project, he or she may require some time to understand the project to keep in pace with other members. Learning curve is needed for new team members, joining the team either due to attrition or due to any specific technical competency requirement. · Context switching: In smaller organization or groups where people work on multiple projects simultaneously, it is important to have some buffer for context switching. A person planned to work in project ‘A’ for two hours after a gap of two weeks, would take more than scheduled time to complete that task. Gap of two weeks and the fact that he or she was involved in other project would require some time for the member to get back to the context of current project. · Global development teams: In an era of globalization and outsourcing, it is common these days to have development team distributed over different geographical regions. Project plan needs to account for different time zones and working culture. You might expect an input for your task on Monday morning your time but it may be Sunday late evening for that person and finally when the input arrives, you might be on your way to home after work.

Sometimes schedule estimation might go completely wrong if you have not understood the work culture of the region your teammate belongs to – “In my previous work, I was given a task to be completed with a heads up that its very critical task and needs immediate attention’. When I asked my project lead how many days/hours I have for it, I had been time for 2 weeks for high priority and ‘immediate-attention’ work.” Definition of ‘urgent’, ‘high priority tasks’ changes with culture and region.

· Communication Issues: People communicate differently. If important issues are not brought to the notice of the team members, or are not escalated on time, the entire project may suffer. Often fear of embarrassment stops team members from reporting issues faced during execution leading to more time being spent on that task that can easily be executed additional help.

3) Customer Involvement: These issues are quite serious if customer or end users of the product are involved in the development phase. Understanding customer’s priorities, defining your expectation from their involvement needs to be clear and in agreement with both the parties.

· Expert user testing: In the beginning of the project, expert user testing cycle needs to be planned. Process of giving builds or releases for testing and collecting their feedback, analyzing and incorporating them in your product takes significant time which, if not planned, can delay your program. · Timely feedback: “I got feedback from customers for features, delivered in development milestone-1, after milestone-5 towards the release. These feedbacks are critical but now I am worried how to incorporate them without affecting the schedule.” It sounds like a common problem. Incorporation of feedback from customers needs to be planned well taking a commitment from the customer. · Product requirement specification review: Having a product requirement review planned and executed will keep you on right track throughout the project. Reviewing the requirement specification will avoid requirement related defects fixing which otherwise would have delayed, the project.

4) Ambiguous Project Requirement: For any project to be initiated, the first thing is to have requirements for it. In the product development life cycle, requirement phase acts like a foundation. Clear requirement or vision for the project navigates the team to success. However, requirements may not be clear at the time of estimation and may result in delay in the project completion. Issues related:

· Evolving specs: If you are making a product based on a standard which is not yet matured or still evolving, you are more prone to have this risk. Frequency changes in the specs will change the requirement for the project during different stages of product development and team will continue to work on something that is not yet evolved. This results in rework that would delay the project if time for dealing with these changes is not accommodated in the schedule. “We developed an algorithm and hence measurement that was based on certain industry standard. Towards the release of the product, the specs changed and our measurement was no more valid. We had to redo the algorithm to reflect the changes in the specs. This caused our product release delayed by 2 months.” · New requirements: Sometimes new requirements are added as the project evolves towards completion. Implementation of new requirements is not planned at the beginning of the project and hence is not accounted in schedule. Adding new feature without revising the schedule may result in delay.

· Untold expectation: Requirements from the customers may be of two types – implicit or explicit. It is important to have the requirements well documented. Implicit requirements needs to be better defined and documented to avoid any confusion towards the end of the project. Customers may not describe their requirements related to system performance, memory issues, user interface quality and usability but they are very keen on providing feedback in those aspects once the product is given for expert user testing. If we are not clear about such requirements, out design might not address them. Addressing them towards the end of the project may call for design changes and extra work that would delay the project.

5) Unplanned Tasks / Reworks: Bounding box for the project is set by higher management and often lack buffer for unplanned task(s). Having more of unplanned task that creep up at different phases of project can cause schedule slippage. The unplanned tasks or rework may arise due to:

· Sustaining work: In smaller organizations, some of the project team may also be responsible for sustaining / customer support of existing products. These unplanned tasks, which come on event basis, related to customer support are always of high priority. Excess or prolonged sustaining work may take resource out of the planned project causing a potential threat for schedule slippage. · Defect fixes: Defects are bad as they degrade the product quality and consume extra time/effort to fix them. It is good to have testing of the intermediate releases of the project to find and fix defects sooner in the development life cycle. If the fixing-cycle for such internal-milestone defects is not planned, then either the project is either going to slip or product is going to be of poorer quality. Poor programming skill of the team, not adapting to modern programming practices and having ad hoc development processes may lead to higher number of defects which would take more time to fix then planned and cause slippage.

· Task spillover from previous milestone: Tasks that are not completed in previous milestone, due to whatever reason (inefficiency, vacation of the team member, resource crunch etc), will have to be completed in the next milestone thereby increasing the load on the team. If adequate buffer is not planned, these tasks spilled from previous milestone over to next, can delay the project. · Requirement change / refinement: Requirement changes during the product development will result in rework of what has been previously done with first version of requirement(s). Addressing changes in the requirements needs extra time and effort and may cause schedule slippage. In some cases, the requirement from customer is misunderstood resulting in wrong system design and implementation. Additional, unplanned time is lost in correcting the design/implementation which causes schedule slippage.


On time delivery is the challenge software development companies are facing globally. To have a complete control over estimated schedule, it is very important to identify the elements in the development cycle that cause schedule slippage. This article uncovers and explains the root causes of delay in programs using examples from real world. Having an insight to the root causes will help the program managers to make good decisions to avoid future schedule slippage.

Posted in general | Comments Off on Schedule Slippage – Root Causes

How to Repair “Runtime Error 481”

The runtime error is one of the most common Windows problems that keep popping up and keeping your system from running smoothly and perfectly, even a small or a single error in the process will leave your system in a knot. This makes it even more important for any user to know how to fix runtime error 481. In order to fix or diagnose the problem correctly everyone should first know what the actual purpose of the runtime processes. It is an integral and essential part of the Windows system details to manage the handling of many services as well as many different software as running on the Windows platform. Since, the file actually handles a lot of information and settings at a time it is very prone to attack by many different viruses, malware and even spyware.

The problems – there can be many different symptoms to the errors related to the runtime process. The symptoms can range from a simple delayed operation of the software to much more complicated system freezes and error messages. This sort of problems may arise from many different factors starting from corruption of the system file due to a virus infection or any other malicious software to defective and invalid system registry entries.

Though the problems are varied but still the answer to the question remains pretty simple.

The solutions – the solution to the runtime error 481 can be many forms, as the problem itself may arise from many different sources. Though it is widely accepted that the most common reason for such errors is a corrupted registry entries but still many tools and software is required to be used in order to properly remove the problem.

  • If the error actually results after installing a new software always make sure to uninstall and reinstall the software to check whether the error was caused by it.
  • Is the process file is corrupted beyond repair it is always safe to replace the file with an original one from any windows XP CD using the system file Checker tool. This can also be achieved from the recovery console is the system has completely crashed due to the error and cannot be started in a normal way.
  • As the most common problems that can give out runtime related errors is widely identified as defective registry entries, it is best recommended that you always check your system with a proper registry cleaner before taking any drastic step.

Even if all of the above methods fail, you always have the option of reinstalling your operating system in order to solve the runtime error 481. Though this may seem the simplest one but the safest and wisest one would be to use a registry cleaner regularly and keep your system clean and healthy.

Posted in general | Comments Off on How to Repair “Runtime Error 481”