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

Texas Two Step Strategy – Everything You Need to Know

The Texas Two Step lottery is a great example of a game that is both strategic and fun. The state lottery is an excellent arena for you to shell out your extra dollars while learning about alternative lotto mechanics. In the state of Texas, the Texas Two Step is considered to be the most popular form of lottery. The game beings when an individual is asked to pick four number from and in between 1 to 35. Like most lotto types, this also has a bonus ball number, which can increase your chances of winning. The grand price for this unique game does not go below two hundred thousand dollars so long as you make five matches. If you are also quite hesitant to pick your own number, the quick pick system also applies to the Texas Two Step lottery. A multi-draw feature also allows you to bet for ten advance drawings at once by simply making a distinguishable mark in the designated ticket boxes. Single plays cost only US$1 each and can reflect winnings up to a hundred thousand dollars.

Most lottery systems base on luck as foundation for winning. Unfortunately, even with the convenience of quick picks and other strategies, chances of winning are still small. One effective way to increase the chances of gaining back positive results from your chosen number is by adhering to the Wheeling Systems. Generally, wheeling systems do not guarantee an automatic win after placing your number picks in the Texas Two Step. However, the mechanism gives you more chances of bringing home multiple tier prizes as opposed to you simply randomly selecting the number, or relying on quick picks. The odds of winning the Texas Two Step prize are statistically ranging from 1 to 32. The overall ratio of victory can be quite unsatisfactory if played with mere dependence on luck. Although you can win $5 for simply matching the bonus ball number, naturally, anyone would still want to vie for the grand prize.

There are also a handful of lotto software that provide good combination numbers for players. Most people confirm the effectiveness of most online programs in tracking the best numeral combinations for lottery. You may program these to suit your needs and according to the type of lottery that you participate in. For Texas Two Step, it is much easier to use a software to calculate possible combinations as it has lesser selections or numbers compared to most lotto games.

For serious lotto players, individuals simply log onto the website and place their bets randomly. Sites also offer a few tips and strategies on how to best employ their gaming techniques. You may be able to view advices on when is the best time to place your bets and how to purchase your tickets quickly. Other websites also present lottery news, which is also an effective way to keep track of your bets. Bear in mind that in order for a player to achieve positive results while playing lotto, the correct strategy and technique must put in place so as to lead you to triumph and victory.

Posted in general | Comments Off on Texas Two Step Strategy – Everything You Need to Know

Jingle Maker – Making Jingles With Desktop Music Maker Software

Looking to get into the jingle maker industry? It’s not exactly an easy field to break into but it is worth the trouble if you are ready to put forth the necessary time and effort to make it. If you are not already a professional musician then you will need a way to produce your jingles. We recommend desktop music maker software for this purpose. The rest of this article will cover the top three things you should look for when it comes to a desktop music making application for making jingles.

Feature #1 – Professional Music Production

If you are approaching the jingle making from the perspective of making money then you need to make sure your entire production is created in the manner that lends itself for commercial adaptation. This is essential if you expect your jingles to be used as radio jingles, commercial jingles or advertising jingles. For starters that means making sure you are able to create music output that is a minimum of 44,1 khz.wav files. You will also want to be able to create real bars of music versus samples or loops. This is a benefit of using music making software because it will make sure your music is created to be communicated to other musicians for playback.

Feature #2 – Variety Of Features

When you are just get started you will want something that allows you to take the melodies in your head and get them into music as quick as possible. Yet at the same time you don’t want to have to learn another application as your own skill set grows. This is why it makes sense to choose software that is usable as a beginner and expert alike. It should come with a number of presets that you can expand upon and purchase as your own abilities grow.

Feature #3 – Complete With Sound Generator

You never know where your jingle making skills will take you so you should also have access to making sound effects. It’s not necessarily a must have feature but if you have the choice then make it for software that does include this. You just never know when you may need this as a jingle maker.

We have briefly looked at some of the features you may want to look for when searching for music maker software for your jingle production exercise. The needed feature set should include professional music production capabilities, a variety of features and a sound generator. Of course these are just a small sample of features that you will find when looking for music maker software. But having the right tools just means you will be that much closer to creating the next set of catchy jingles.

Posted in general | Comments Off on Jingle Maker – Making Jingles With Desktop Music Maker Software

The 4 Elements That Makes Up A Personal Computer System

There are 4 elements that make up a personal computer system: the user, software, hardware and the electricity all working together for the whole system. Each of these elements is essential to the system itself.

The user is the person's who perform the task using the computer system. The nature of the task depends upon the application program or software that is needed to perform the task. The software that the user used requires certain hardware components to function properly.

The hardwares of the personal computer system are made up of its equipment that are usually connected (the computer, monitor, printer and so on). It is defined as hardwares because you can physically touch these components. The programs are called softwares since their function can only be used when the computer is turn ON. Software is a set of coded instructions that the computer uses in order to carry out the user's tasks.

The user can only use the computer when it is turned ON. Without any electrical power to run through the personal computer system, it will not function. The ability of the personal computer system to control its components is through a series of on / off signals.

Here is how it works, when a user tries to type a document or a letter using his / her personal computer. The first thing the user do is to turn ON the power for the computer. Choosing a Word Processor software in order to write the document. The user uses the hardware such as the keyboard to write the content of the document; The typed document is then displayed onto the monitor screen. After the user finished writing his / her document. The user will use the software to instruct the printer to print the document. The software works together with the hardware components (the keyboard, monitor and printer) to accomplish the task that the user requested.

All of the four elements: the electrical power, hardware, software and the user work together to make up a personal computer system.

Posted in general | Comments Off on The 4 Elements That Makes Up A Personal Computer System

How to Fix an Error Accessing the System Registry Easily

The system registry is an important component to practically every computer, and it would actually be considered a pile of electronics if the system registry was not included. It is essential for computers based on Windows, since it is the storage location for the hardware, software, and pretty much everything that makes the computer run.

Changes and updates go directly through the system registry for storage, but sometimes things do not always go as smoothly as we wish. Not many know what to do about an error accessing the system registry, but it must be fixed in order to keep your computer running.

An error accessing the system registry is not very uncommon, and it usually occurs when old files or updates are still located within the registry. The error can occur when new updates are downloaded, new programs installed, or even when new software is being added to your computer. A window will usually pop up stating “error accessing the system registry” and not much can be done until the error is fixed.

It can result from old updates being left in the system, or even old files that were not deleted when a download or installation was incomplete. The best way to get rid of the error accessing the system registry is to find out the problem, get rid of old files, and start fresh with new updates and software to keep your computer running smooth.

Because the error accessing the system registry can occur for a number of different reasons, it can sometimes be hard to locate the specific problem. The first step is to determine what exactly triggered the error, such as a new download, new software being installed, or updates occurring to current software on the computer.

The error is most common when updates occur or when updated software is installed, since most likely older versions are still being kept within the registry. In this case, the error accessing the system registry can be easily correct. First off, the installation or update needs to be stopped. Then the system registry can be accessed by the computer owner, and software can be purchased or downloaded to fix this problem.

One of the best options for getting rid of an error accessing the system registry is a registry fix program, since it goes in and does all of the work for you. Rather than trying to find the damaged files and delete them yourself, the program knows exactly what to look for and get rid of for the error to go away.

Not only will a registry fix help to get rid of the problem occurring now, it can even help to get rid of any files and old updates that may cause problems in the future. It is beneficial for clearing your computer of any unnecessary files or programs that may be causing it to run slow, and can even prevent an error accessing the system registry in the future.

A registry fix program can either be downloaded online or purchased at an electronics store, and is a great way to fix an error accessing the system registry. It does all of the work for you, and can even improve the overall performance of your computer. It can get rid of old files, partial updates, or even programs that are no longer needed, and is perfect for fixing your error accessing the system registry.

Posted in general | Comments Off on How to Fix an Error Accessing the System Registry Easily

Mortgage Loan Origination Software – 10 Functions of Mortgage Banking

Regardless of a mortgage lending organizations’ size, mortgage loan software, data security solutions and automation tools and services should be able to assist with mortgage loan automation requirements. In today’s chaotic mortgage lending environment origination and document security systems need to be easily configured to emphasize a company’s special needs and increase efficiencies across all aspects of the loan origination process, allowing lenders to increase quality and productivity.

Technology-driven automation is the key to succeeding in the increasingly complex, deeply scrutinized mortgage industry. Web-based (Software-as-a-Service), Enterprise mortgage software that supports the ten primary functions in mortgage banking will provide lenders with the necessary competitive advantages to succeed in today’s mortgage industry.

Ten Primary Functions in Mortgage Banking

  1. Mortgage Web site design, implementation, and hosting to provide product, service, loan status, and company information to mortgage customers and business partners
  2. Online loan applications for gathering information from borrowers and business partners that issue loan terms, disclosures, and underwriting conditions
  3. Loan origination software for managing loan data, borrower data, property data, general status reporting, and calculations
  4. Interface systems to send and receive data from real estate service providers, such as credit reports, flood determinations, automated underwriting, fraud detection, and closing documents
  5. Internal automated underwriting system that is simple enough for originators and sophisticated enough for underwriting portfolio loan products
  6. Document generation for applications, upfront disclosures, business processes, and closing documents
  7. Integrated imaging that is used from loan origination to investor delivery and for file archiving
  8. Interest rate and fee generation along with program qualification guidelines
  9. Secondary marketing data tools to track loan revenue and investor relationships, including warehouse line management and interim servicing to complete the back-office system
  10. Reporting such as loan delivery, year-end fee reporting, and HMDA reporting for loan application disposition

Web-Based, enterprise mortgage software that supports the ten primary functions of mortgage banking simplifies compliance, maximizes operational efficiencies, and increases profitability.

Posted in general | Comments Off on Mortgage Loan Origination Software – 10 Functions of Mortgage Banking

7 Benefits of the Doctor and Clinic Management System Software

A cloud-based clinic management system addresses your hospital management related woes. It brings simplicity to the patient appointments, their treatment, medical billing and payments and services that take care of other requirements of the hospital.

Advantages of a Cloud Compliant Software

A software that leverages the cloud technologies in full, offers flexibility, cost saving, fast service, ease of accessibility and sustainability.

Flexibility

Even small hospitals can harness the power of this type of software. As the business grows, the software automatically scales itself to the hospital’s increasing needs without the user having to provide for it. The software is easy use, at its fullest, right from the first day.

Cost Saving

Choosing to use clinic management software located on the cloud platform is cost effective for the hospitals. It is an attractive choice for the small as well as big hospital setups.

It requires no expenditure on hardware, equipments and trained IT staff. These are the resources that a hospital, supporting an in-house IT setup must utilize. They are costly.

This highly optimized software is maintained, updated and configured in the cloud by the skilled IT experts. The users are, thus, spared from the burden. It leads to cost saving. Unhindered, the hospital staff stays focused on the core functions of the hospital.

Harness it From Anywhere at Anytime

The hospital administrator acts as the super-user of the software. He or she, then, grant access permissions to the others. The managers, doctors and others can then access the necessary data stored in the cloud, from anywhere at anytime.

They can use smartphones, tablets, phablets, laptops, notebooks and desktops over the internet for the purpose.

Fast Service

This software gives fast, easy and simple solutions for the hospitals in managing their day-to-day activities. It helps in streamlining patient management, inventory management, employees’ and doctors’ attendance, online report generation and other tasks.

Sustainability

For hospitals using this software, it is easy to recover from an on-site disaster. Their data is stored in the cloud, where it remains safe. It is repeatedly backed up. They need to simply access it to get their system online.

Features of the Cloud Based Clinic Management System

1. Patient management: Maintains records of the patients that include personal details, visits to the hospitals, allergy related data, medication, etc.

2. Appointments and schedule management: Determines the availability of the doctors before scheduling appointments. Uses powerful search engine to set up an appointment for the patient. The software assists the staff in knowing the availability of the beds for the patient’s hospital stay.

3. Alerts: Sends alerts and reminders using SMSs and Emails. It notifies the patients about the future appointments and vaccination schedules.

4. Purchase and inventory management: Keeps track of the drugs, equipments, instruments and other hospital items in the stock. Generate expiry alerts for the drugs in stock. Assists in creating a purchase list.

5. Records: Stores all the electronic medical records of the patients and the data related to the hospital, in a central place. It is available to the authorized persons from anywhere, at any time. Doctors can use the patient data to conduct medical research.

6. Payment Processing: Assists the hospital’s accounting department in, accurate medical billing to the patient. Provides connectivity to the top accounting software and eases the tasks of accountants.

7. Lead Generation: It assists the business managers employed by the hospitals in lead generation and tracking.

It is easy to start using a cloud-based clinic management system software. It needs no installation and one can access and start using it over the internet, in a jiffy.

Posted in general | Comments Off on 7 Benefits of the Doctor and Clinic Management System Software

Top 25 Terms All Computer Students Should Know

The following basic terminologies are considered the top 25 terms all computer students should know before they even begin their studies:

1. Bit: Binary data storage unit valued at either 1 or 0.

2. Byte: Eight data bits valued between zero and 255.

3. Word: Two data bytes or 16 data bits between zero zero and 16,535.

4. CD-ROM: A storage disk with approximately 640 megabytes of capacity.

5. CD-ROM Drive: Hardware used for reading and writing to CD-ROMs.

6. Storage Media: Magnetic devices that permanently store computer data.

7. File: Permanent storage structure for data kept on a hard drive or other permanent place.

8. Virus: Unauthorized programs that infect files or send themselves via email.

9. Vulnerability: When unauthorized access can be gained due to software errors.

10. Security Flaw: When attackers gain unauthorized system access due to a software bug.

11. Worm: Unwanted programs accessing computers via application / system vulnerabilities.

12. Hardware: Physical parts of computer (case, disk drive, monitor, microprocessor, etc.).

13. Software: Programs that run on a computer system.

14. Firmware: Software that has been permanently written into a computer.

15. ISP: Internet Service Provider.

16. BIOS: The basic input / output system computers use to interface with devices.

17. MIME: Multipurpose Internet Mail Extension.

18. Boot: What happens when a computer is turned on and beginning to run.

19. Crash: When computer software errors occur and programs fail to respond.

20. Driver: Program that understands interfaced devices like printers and video cards.

21. Network: Cables and other electrical components carrying data between computers.

22. Operating System: A computer's core software component.

23. Parallel: Sending data over more than one line simultaniously.

24. Serial: Sending data over a single line one bit at a time.

25. Protocols: Communication methods and other standard Internet / networking functions.

These are the top 25 terms all computer students should know before they even begin their technical training. Most computer students know much more. In fact, everyone who uses a computer these days should understand these terms so they can be better informed about the important tool that is so integral to our daily lives.

Posted in general | Comments Off on Top 25 Terms All Computer Students Should Know

3 Main Causes of Kernel Errors

A kernel error is a failure in some code critical to Windows. If you have ever encountered a Blue Screen of Death (BSoD), then you have seen a kernel error. Windows is actually several layers of programs made to work together. You can think of Windows as if it were your body, with many pieces working together to make a whole, and, like your body, some parts of Windows are more important than others.

The kernel is the most important part of Windows. It includes critical programs to handle things like memory management and device drivers for the graphics card. These programs are like a body's heart and brain. If something in the kernel crashes, it will often cause all of Windows to crash.

Software Failures

Because there are a lot of programs in the kernel, there are many opportunities for bugs to appear. Although Microsoft does extensive testing to get rid of bugs, their testing facilities can not run through all the combinations that billions of computers use with Windows when some bugs get through.

However, many of the kernel failures are in device drivers written by companies that make hardware, not by Microsoft. Your graphics card, for example, probably uses a driver created by the video company. These companies often work with Microsoft to test their drivers, but having companies working together adds an additional layer of complexity.

Hardware Failures

A hardware failure can cause a kernel error. If your graphics card fails, it can send bad data to the graphics device driver, which then crashes, creating a kernel error. If your hard disk fails, it can corrupt files used by Windows and cause the programs that use those files to crash.

Registry Failures

Registry failures can cause kernel errors. The registry is a database of information that Windows uses to store information about programs. If the registry gets corrupt, the programs that use it can cause kernel errors.

Registry corruption can come from either software or hardware failures. Software corruption can come from a bug in one of the programs that writes information out to the registry. Or if you turn off your computer without doing a complete shutdown, the registry files may not get completely written to the disk. Hardware corruption can happen when the hard disk fails causing parts of the registry files to be lost. It's a good idea to do some research on kernel errors and other registry issues.

Posted in general | Comments Off on 3 Main Causes of Kernel Errors

Choosing the Right SDLC For Your Project

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

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

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

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

Scrum

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

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

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

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

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

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

Waterfall

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

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

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

RUP

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

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

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

3. Construction phase – produces the system

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

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

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

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

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

JAD

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

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

RAD

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

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

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

LSD

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

1. Eliminate waste

2. Amplify Learning (both technical and business)

3. Decide on requirements as late as possible

4. Deliver as fast as possible

5. Empower the team

6. Build integrity

7. See the whole

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

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

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

Extreme Programming (XP)

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

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

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

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

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

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

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

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