History and Components of a Modern Mainframe Computer

Mainframe computers are critical for some of the largest corporations in the world. Each mainframe has more than one modern processor, RAM ranging from a few megabytes to multiple-score gigabytes, and disk space and other storage beyond anything on a microcomputer. A mainframe can control multiple tasks and serve thousands of users every second without downtime.

The chief difference between mainframes and other computing systems is the level of processing that takes place. Mainframes are also different in terms of data bandwidth, organization, reliability, and control. Big organizations-banking, healthcare, insurance, and telecom companies, etc.-use mainframes for processing critical commercial data.

In this article, we discuss the evolution of mainframe computers and their components.

History of mainframe computers

IBM developed a critical part of mainframe computing, the Automatic Sequenced Controlled Calculator (ASCC) for arithmetic operations, in 1944. From the late 1950s through the 1970s, several companies manufactured mainframes: IBM, Burroughs, RCA, NCR, General Electric, and Sperry Rand, for example. Since then, System / 390 by IBM is the only kind of mainframe in use. It evolved from IBM's System / 360 in 1960.

An Early mainframe occupied a huge space. New technologies have drastically reduced the size and cost of the hardware. A current-generation mainframe can fit in a small closet.

Components of a modern mainframe computer

Like a PC, a mainframe has many components for processing data: operating system, motherboard or main board, processor, controllers, storage devices, and channels.

• Motherboard: The motherboard of a mainframe computer consists of a printed circuit that allows CPU, RAM, and other hardware components to function together through a concept called "Bus architecture". The motherboard has device slots for input cards and cable interfaces for various external devices. Where PC motherboards use 32- or 64-bit buses, mainframes use 128-bit buses. General instructions regarding the internal architecture help the motherboard connect to the other devices and retrieve data using binary computation.

• Processor: A CPU acts as the central processing point in mainframe architecture and includes an Arithmetic Logic Unit (ALU) for performing arithmetic calculations. It also works as a controller for the bus architecture and handles traffic and data requests. The processing power of mainframes is much higher compared to PCs, so that they can handle huge amounts of data.

• Storage devices: Storage devices are for entering, retrieving, storing, and recording data. Many are external devices, such as hard drives, tape drives, and punch card readers, all connected to terminals of the mainframe and controlled by the CPU. Their capacity for data storage can be hundred or even thousands of times that of a PC.

• Communication controllers: Communication controllers allow remote computers to access a mainframe. With the help of networks, LAN or WAN, communication controllers establish connections with various devices, perform data transmission over communication channels, and keep track of users at terminals.

• Channels: The "channels" are the cables used to connect the CPU and the main storage to other parts of the system and make sure that data is moved in a systematic way without losing its integrity.

Modern mainframes have advanced features such as expanded service management capabilities, cross-platform integration facilities, etc. And so are suitable for critical data center operations. The cost of maintaining modern mainframes is much less compared to older models.

Posted in general | Comments Off on History and Components of a Modern Mainframe Computer

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?

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”

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

How To Spot a Fake Jimmy Choo Handbag

  • Label: The Jimmy Choo label is generally a lilac colored metal face fastened to a leather backing, and stitched to the interior of the handbag. Many fakes have the incorrect shade of lilac, either going to light or too dark in the purple spectrum. The label should read in either gold or silver. However, even if the colors are correct, the label may still not be in the clear. Because it often times the font details that are singular to authentic Jimmy Choo that many of fake handbags get wrong, and this is one of the best places to look when trying to identify a phony J. Choo.
  • Font: Always check out the "H" in Choo. On an authentic handbag, the horizontal cross-bar in the H should not be in the center of the letter, the way it is intended to be with regards to most standard fonts. Instead, the Jimmy Choo H should have the cross-bar closer to the top, about 75-80% of the way up the H, if measuring from the bottom of the letter. If the handbag has the correct H, move to the letters "O" in Choo. On an authentic handbag, the O will have a slightly bent look. This means that the "O" will appear as if someone snapped down on the top of the letter, giving the O an oval shape rather than a perfect circle. Spotting a fake Jimmy Choo handbag often times comes down to the subtleties in the font.
  • Hardware: Any screws located on handbag hardware will always be a flat head (-) screw. Jimmy Choo will never use any Philips head (+) screws in any of their handbags.
  • Dustbag: Fake Jimmy Choo handbags will often be accompanied by a dustbag that is an incorrect color or format. An authentic dustbag should have the logo: "JIMMY CHOO," with "LONDON" centered perfectly under the logo. The font should be an embossed gray, while the dustbag itself will be the famous lilac color. Many fakes will have incorrect font colors on the dustbag, as well as the incorrect dustbag color ie the wrong shades of purple etc. Good luck and safe shopping!
Posted in general | Comments Off on How To Spot a Fake Jimmy Choo Handbag

Creative Marketing Ideas For Hardware Stores

With large nationwide chains that dominate the market, small hardware stores sometimes have a difficult time being competitive. The key is to find a unique selling proposition for your business and to capitalize on it so customers see the value in choosing you over one of the larger stores. Here are some great ways to make your business stand out.

  1. Giveaways -When your store first opens (or even if you're just looking for an extra push), offer small giveaways to your customers with their purchase. These will be tools or products they can use that are branded with your store's information-hammers, tape measures, levels, etc. When a customer is using this product and runs out of something or determinates the need to visit a hardware store, they'll see your information and immediately head your way!
  2. In-Store Classes -Hardware stores often form a bit of a culture and social atmosphere, so find ways to play this up. One great choice is to sponsor training classes and educational seminars in your store. Work with your vendors to provide information that your customers will find valuable. Even your employees can instruct these classes-anything from minor home renovation products to full-scale remodeling. List the classes you're offering that month above your cash registers with a large, visible vinyl banner which clearly-informs customers of their opportunities to expand their skills.
  3. Charity Donations -Offer your products to charity groups and organizations in-town which build or repair homes for the less-fortunate. This is great PR for your business, it makes you look more-reliable, and in return you're often able to advertise at the home-site using a banner or yard sign. When customers see that you're giving back to your community, they are more-inclined to shop with you.
  4. Ladies Night -Most hardware stores predominately-market toward men. While the majority of your customers are probably male, do not neglect the ladies. Host a "Ladies Night" at your store that offers your educational classes and even a special discount on purchases made by women. Use removable window clings to give your store a slight feminine touch. There's a huge potential market here that is somewhat-untapped, and with the right approach, female customers can dramatically affect your business.
  5. Personal Shoppers -Some customers complain that hardware or home improvement stores are overwhelming. Counter this objection by providing customers with a personal shopping service. Your employees already help customers find products daily anyway, but creating a formal program provides a revenue opportunity. Customers can have one of your employees guide them around the store and help them find exactly what they need for their project, or for even-more convenience, your employee can preselect the products they need so that when the customer arrives, all they have to Do is check out.
Posted in general | Comments Off on Creative Marketing Ideas For Hardware Stores

10 Top Reasons Why I Have to Upgrade My Computer

The rate at which technology is improving is very fast and in the time you get comfortable with the computer hardware you have bought, several new and improved models appear in the market. While some people prefer to keep their computers state of the art, most of us have a 'If it is not broken, do not fix it' attitude when it comes to upgrading or replacing our computers.

This is a strategy that could prove expensive in the long run. It is always better to upgrade your computer on a regular basis, especially if you have had it for over 2-3 years. Even if your computer has had a large trouble-free existence, you really need to consider periodic upgrades and here are the reasons why you must dos so:

1. Increase in Processing Speed ​​- This is one place where you really get to notice an improvement in performance. If you are upgrading from a Celeron 433MHz processor to a Pentium 4 1.6GHz, you would really notice the difference in performance!

2. Faster Memory Access – Improvements in CPU speed are typically accommodated by improvements in the speed at which data transfer occurs between the CPU and RAM. This is another area that provides an improvement in performance.

3. Size and Capacity improvements – Technology drives a reduction in component size coupled with an increase in storage capacity. This means that a RAM card or hard disk of the similar size as the older ones in your computer could have double the capacity!

4. Software Compatibility – Many of the new software packages you may wish to use in order to improve your productivity or entertainment experience may not function well on you old computer. It is better to upgrade your computer to enjoy the benefits of new software fully.

5. Obsolescence of Hardware – As your hardware gets older; Getting a replacement will get more difficult once manufacturers start phasing out the production. With improvement in technology, the older hardware becomes cheaper initially and becomes expensive as supply dries up.

6. Technical Support Issues – Many manufacturers stop providing technical support for older components as they cease production. The older your computer gets, the harder it is to find help in fixing it when it malfunctions.

7. Development of New Hardware – New hardware products appear in the market frequently that revolutionize your computer experience and are based on newly developed technology. The chances of your old computer supporting new devices are very low.

8. Faster Devices – Your old computer may not be in a position to accommodate the speed at which the new devices communicate.

9. New, Fast Communication Protocols – You may not be able to implement new or faster communication protocols in your old computer because the hardware is unable to support them.

10. Operating System and File Format – Your old hardware may not be able to run newer operating systems and some of the file formats may not be supported.

Posted in general | Comments Off on 10 Top Reasons Why I Have to Upgrade My Computer

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

Introduction

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.

Conclusion

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

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?

Clinic Management Software: Benefits of Clinic Software

Clinic management software is a web-based program which helps clinic owners manage their operations. It is already widely used in clinics in many regions of the world especially in the American continents, Europe, and Australia.

Here is a list of the many benefits of clinic management software.

1. It helps clinic owners simplify their business and helps them manage one clinic or a huge group of clinics.

2. It keeps and updates patients’ demographics like residence, gender, age, ethnicity, and diagnosis of patients.

3. It keeps and updates patients’ records like lungs chart, heart chart, kidney chart, weight and height charts, nutritional date, respiratory system chart and others.

4. It can print out prescriptions, patient records, billings, certificates, and others. It can also give information about patients’ prescription, medicine available, and the formulation of the medicine.

5. It completes receptions in an automated and systematized way.

6. It manages accounting needs and maintains the inventory.

7. It completes billing transactions.

8. It checks account balances.

5. It schedules multiple appointments.

6. It can send out multiple email reminders.

7. It allows patients to confirm appointment in real time with the use of a mobile phone or a computer.

8. It allows practitioners an easy and quick access to their schedule and patients’ record anytime.

9. It includes reporting tools which could quickly present, print out, or send out reports like patient visits, patients referred to other doctors, patients referred by other doctors, list of fee collection, and daily profit report.

10. It can multitask and designed for quick and easy usage which consequently lessens the stress of clinic owners and clinic employees.

11. It saves business owners a significant sum of money since clinic management software does not require expensive servers or IT support group.

12. It allows clinic owners maximize billable time and spend more time in taking care of their patients since almost all administrative procedures are supported by the software including the daily backing up of everyday reports.

13. It also allows clinic owners to spend more time in making their business grow.

14. Clinic management software general has security features like password facility to validate users, entry validation, data secrecy feature, and data access that is user defined.

Business establishments like clinics need to cope up with the fast advancement in technology nowadays. Otherwise, they will be left behind since most business enterprises are already using such software.

Posted in general | Comments Off on Clinic Management Software: Benefits of Clinic Software