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?

Medical Coding History – From Paper to Medial Coding Software

If we define medical coding as the assignment of alphanumerical characters to diagnoses, diseases, and treatments, then medical coding has been traced back to the 1600s in England with the London Bills of Mortality. A more standardized system of coding was developed for classifying death at the tail end of the 19th century. In 1893, Jacque Bertillon, a statistician, created the Bertillon Classification of Causes of Death, a system which was eventually adopted by 26 countries at the beginning of the 20th century. Shortly after the Bertillon Classification system was implemented, people began discussing the possibility of expanding the system beyond mortality as a way of tracking diseases.

By the middle of the 20th century, the World Health Organization (WHO) adopted a goal of a single global classification system for disease and mortality, entitled the International Classification of Diseases, Injuries, and Causes of Death (ICD). This classification system is updated every 10 years. The latest revision, ICD-10, is scheduled for adoption in the United States in 2013.

What started out as a small set of medical codes has evolved into a complex system that was initially standardized by the American Medical Association back in 1966 with current procedure codes (CPT) codes that are updated annually.

In the late 1970s, the Healthcare Common Procedure Coding System (HCPCS) was developed based on CPT. HCPCS has three levels of codes: Level One is the original CPT system. Level Two codes are alphanumeric and include non-physician services such as ambulances and other transportation as well as patient devices such as prosthetic devices. Level Three codes were developed as local codes, and were discontinued in 2003 in order to keep all codes relevant worldwide.

Recently, medical coding systems have been expanded to include other medical specialties. For example, there are coding systems related to disabilities, the dental field, prescription drugs, and mental health.

As the coding systems have become more complex and diverse, the need for training of medical coders has grown exponentially. Private training schools and public colleges throughout the country have developed certification programs. In order to be awarded a certificate, students must obtain a two-year degree from an accredited medical coding school and pass an exam given by the AHIMA.

Over the past 20 years, many coding processes have shifted from a paper-based system to a computer-based system using medical coding software and medical billing software. Many companies sell complete medical software-based coding solutions and myriad of products for specific medical disciplines, such as products that are specifically tailored to skilled nursing facilities, physicians, hospitals, surgery, cardiology, and more.

As medical facilities and professionals begin preparing for the conversion to ICD-10 in 2013, the need for more sophisticated medical coding software solutions and qualified medical coders will continue to grow.

CPT is a registered trademark of the American Medical Association.

Posted in general | Comments Off on Medical Coding History – From Paper to Medial Coding Software

Automated Real Estate Software – The New Trend in Investing

The value of real estate has appreciated in the last few years. It also shows great potential for growth. Hence, now might be the best time to look at an investment in property. However, if you’ve spoken to someone who already has his knees deep in real estate investing, you will realize that a lot of things are easier said than done.

It requires skill and experience to scour the market for high value properties.

Then comes landing good buyers.

Finally, there’s a humongous amount of paper work to handle.

This is where real estate investing softwares might lend a hand. They automate the entire process of real estate investing. If you would like to know more about such applications, here’s a low down on some of the common features they offer.

Lead generation –

At the click of a single button you are able to find a comprehensive list of buyers and sellers scattered across the country. The information elicited includes names and mail addresses of buyers, owners of properties, the type of property (bank owned, foreclosed, low and high equity, absentee owner etc.) and amount of cash paid.

Website creation –

Every business needs a website, especially if you do not have a physical location from which operate. Not all of us know the technicalities of writing HTML codes and designing a website. The real estate softwares can help you create targeted and user-friendly websites that you can use to showcase your business.

Direct mail generator –

Marketing is the soul of a real estate business. The more you network the more leads you can generate. The direct mail generator feature helps you setup a highly productive and efficient mailing system. You can send out emails, newsletters, posters and flyers.

There are a range of pre-made email templates you can use to send out messages to your leads. Autoresponders make sure you can keep in touch with sellers and buyers even when you are not physically present to answer their queries.

This feature is a highlight feature of most real estate software given that the savings in time and money are large.

Investing tips –

This is a section that most newbies can benefit from. Most applications include a resource library with info on the basic aspects of the trade. An open community of members can also give you an opportunity to interact and build your resource with real-time knowledge about making, building and closing a deal.

Diverse user base –

Modern-day automated real estate investing software applications cater to a varied group of investors. It includes those who buy, fix and flip properties. If you are a landlord, it can increase the convenience of managing your properties including finding tenants and repairing and renovating properties between subsequent deals. There are also features that rehabbers and builders of new constructions can use.

Contracts and paperwork –

Real estate investment also means a lot of paperwork. Most applications offer tools to generate contracts. Features such as auto-fill enable you to fill personal details into letters, contracts and other property-related documents. You can sign them online, and then email or fax them free of charge.

There is one thing – you need to be realistic. Real estate softwares are tools you can use to streamline your business. You should have a real estate business to start with and some basic know-how on investing.

Posted in general | Comments Off on Automated Real Estate Software – The New Trend in Investing

What Requirements Does a Dot Net Developer Need to Fulfill?

Microsoft Dot Net is a useful software development component. It provides tools and libraries to the software developers so that they can create Windows-based applications in a more efficient manner. A Dot Net developer is a software programmer who has specific skills using .Net to develop software and computer applications. For people who are in the midst of looking for developers for your projects, there are some areas you need to take note. You are advised to look for competent programmers who can really assist you to complete your tasks successfully.

First thing first, you need to be clear about the responsibilities of a .Net Developer before you start looking for suitable candidate. Seriously speaking, the programmer is required to:

• Work hand in hand with other software engineers and architects to develop a logical series of instructions referred to as programming code for the computer to communicate with the networks, applications and databases.

• Create new software applications to suit the business needs

• Modify, repair, test and enhance existing applications

After knowing what the developer is required to do, the next area we need to take into consideration is the academic qualification. In general, a programmer should have degree qualification in computer science, information technology or any related discipline. If the programmer is not a degree holder, you may take a look at his or her working experience. If the candidate has extensive experience dealing with .Net development tools, you can consider getting him or her in. Check with the candidate whether he or she is familiar with maintenance of ASP Applications, e-Commerce solution, online education and learning, social networking sites, corporate web applications, and so on.

At the same time, a good dot net developer must be competent in carrying out all the important tasks. It is a must for him or her to have the following skills in:

• Classic ASP

• Microsoft SQL 2000 / 2005

• MS Access

• JavaScript, XML, DHTML, AJAX and CSS

• VBScript and JScript

Frankly speaking, if the programmer does not have the above mentioned skills, most of the employers in the job market are not willing to hire him or her.

Besides the skills, we should also take serious consideration on the general qualities of the programmers. They should have qualities as follow:

• Good passion in work

Having great interest in work is important. The programmers should love and enjoy what they are doing.

• Good learning attitude

Learning is a continuous process. We can’t stop at certain stage. Good developers must have positive attitude in learning. They must always grab the opportunities to learn new technology so that good applications can be adapted.

• Some “intelligence”

Honestly speaking, intelligence is something very subjective. What I mean here is the “personality” of the person. Being a programmer, he or she must be smart and sensitive to respond to all changes. It is important for a programmer to be open-minded and willing to take new challenges from time to time.

Posted in general | Comments Off on What Requirements Does a Dot Net Developer Need to Fulfill?

How to Change the MPI Node Address For a Siemens S7-300 PLC

I have seven Siemens S7-300 PLCs connected together using the MPI (Multi Point Interface) interface. The Siemens MPI protocol is used by Siemens PLCs to communicate with external devices. I want to rename each of the seven PLCs. Here are the steps to accomplish that task.

First, connect your MPI cable to the first PLC. I will be connecting my laptop to each PLC individually. Power up the PLC and open Simatic Manager. The "New Project" Wizard window will open. Just click Cancel to close the window. Now click the Accessible Nodes icon on the toolbar. A window will open showing the identification of the PLC you are connected to. My window is showing MPI = 2 (directly). Make a note of this address and close the window.

Next we need to download a hardware configuration to the PLC. This is where we will rename the PLC node address. There are probably a couple of different ways to do this – following is how I accomplish this. All seven of my PLCs are the same model; Therefore, I am using the same hardware configuration. For the obvious reasons, I want to give each a different MPI node address. I have a project file that contains all seven of my PLC programs and one hardware configuration file. I open the one hardware configuration file, and then double click Hardware in the right hand window. This will open the HW Configuration window. In this window you should see your PLC with its MPI address given.

Remember when we clicked the Accessible Nodes icon and saw MPI = 2 (directly)? My Hardware Configuration Window is showing a MPI address of 7. Place your mouse cursor on the 7 and double click. Your CPU Properties window will open. It should open to the General tab. Look down and you will see Interface Type MPI with an address of 7. Click Properties and the MPI interface Properties window will open. Using the pull down menu, choose your MPI node address and make sure the MPI (1) 187.5kbps is highlighted and click OK. You are now back on the CPU Properties window where you will see your address has changed. Click OK and you will go back to the Hard Ware window where you can verify your MPI node address has changed.

You will now click the Save and Compile icon and then click the download icon. The Select Target Module window will open. Click OK and the Select Node Address window will open. Here you will see the MPI node address you assigned earlier. You will need to click the View button right below this. You will see the current node address appear, this should be the same as what you saw earlier when you clicked the Accessible Nodes icon. Simply click on this number and you will see it appear in the MPI address slot under the Enter connection to target station. Click OK and the Download to Module window will open. Click OK and the Stop Target Modules window will open. Click OK and the "Do you want to start the module?" Window will open. Click Yes.

Now go back to the SIMATIC Manager window and click the accessible nodes icon. You will see your new MPI node address. You can see this same article with pictures at http://www.morerobototics.com .

Posted in general | Comments Off on How to Change the MPI Node Address For a Siemens S7-300 PLC

How Are Brains Different From Computers?

Ever wondered how brains are different from computers? This article shows how. Read on to find out.

Brains consist of cells called neurons and they connect with millions of other neurons and information gets transferred across connection gaps called synapses. Inside the cells data are processed which gives rise to an idea, concept or understanding.

Computers are built of hardware chips and the central processing unit (CPU) processes data after receiving them from the other chips. How it processes data conss of several steps but the main outline is that software programs are fed into the CPU and processed. They provide end result information depending on how the programs are furnished with data and what the query is that fed into the system. If some information is asked that is outside the scope of the software programs, the computer gets limited in functioning.

Brains, however, are limitless. From childhood until adulthood, the brain gets more and more developed and mature. It can process unknown data or abstract data as well and provide insights and knowledge.

The brain is more complex than the CPU and therefore, with neurons and synaptic connections, it is possible to process all kinds of information. It uses the five senses: touch, smell, hearing, taste and sight and takes in information and produces knowledge.

On the other hand, the CPU of computers takes in data from the typing of the keyboard and processes it, which is very limited. However, it is only human beings feeding data, writing software programs and making the computer like like a brain although not quite so.

The brain is still more intelligent than the CPU of computers and has yet to train the computer to have like the brain of a human being.

Yes, computers will be able to take over many tasks of human beings but without human beings, they are lifeless because humans have to give life to these computers, operate on them and have regular updating, monitoring and maintenance on them.

Just as a brain needs to rest and relax, computers will also need that from time to time but they can operate longer times than the average brain. While the brain sleeps, the computer can carry on with its duties of processing data and converting them to knowledge and information.

Summing up, although the CPU is sometimes called the brain of the computer, it is actually a misnomer because as I have outlined in this article, the brain is definitely different from the computer in varying ways and the brain has yet to teach the computer to Behave 100% like a brain.

Posted in general | Comments Off on How Are Brains Different From Computers?

How to Retrieve Deleted Text Messages & Not Go Crazy in the Process

It’s happened to all of us. We’ve deleted a text message only to realize a short while later that we either deleted the wrong message, or we need to retrieve information off one of the deleted text messages. We then frantically search out ways online how to retrieve deleted text messages hoping to find an easy solution. We pour through websites pulling our hair out because we can’t find an easy solution.

Ultimately we walk away dismayed because either we were not able to find any solutions on how to retrieve deleted text messages, or the solutions we found seemed to require so much “detective” work, that the solution itself should be on a an episode of CSI.

Are there really any “easy” ways to retrieve deleted messages?

The good news is that YES, there are a couple options that do exist which enable anyone to easily recover deleted texts, and both are not only very affordable, but both work exactly as advertised.

Before we dig into the solutions, there is one solution that is often discussed, which does not work, although many people do still talk about it.

What does NOT work?

Going to your own phone carrier is not going to be a viable option. Yes, they are required by law to keep records of your communication (SMS, call, etc.), but they are not required to turn over their logs to you, unless requested by a court of law. You cannot call up AT&T, Verizon or Sprint and tell them you want to retrieve a deleted text message from last week because there is something really important within the contents of the message. It just wont work.

The only information AT&T, Verizon, Sprint, or any other cell phone carrier is going to provide you is the number, date, and time of a call or message. You can plead all you want, but they will not be able to do anything, so it’s not worth your time to attempt this approach.

What DOES work?

There are actually two options available for anyone who is looking for information on how to retrieve deleted text messages. These options rank from the “quick and easy” to the more difficult, but also the most effective.

1) Quick & easy method.

The ‘quick & easy method’ is to buy a SIM card reader, often referred to as a SIM card spy device. This device looks like a USB reader, and the way it works is you remove the SIM card out of your phone, and then place the SIM card into the SIM card reader, and then plug the reader into your computer. Using the included software (of the SIM card reader), you’ll be able to immediately retrieve and read deleted text messages. The time frame will vary, based on what new information is overwritten on the SIM card, but you’ll at least be able to retrieve and read the last 15-20 messages and scan through your call history and contacts, even if they were all deleted.

Positives of this approach?

  • Very easy.
  • Enables you to quickly recover deleted messages.
  • Does not require software to be installed prior to the message being deleted.

Negatives of this approach?

  • A bit costly.
  • Limited cell phone support.
  • Does not work on CDMA networks.

2) More difficult, but most effective method.

The more difficult, but most effective method’ is to purchase a cell phone monitoring app that is often used to spy on cheating spouses, monitor teen cell phone use, track cell phone location, and locate missing or stolen cell phones. These apps (often called spy apps or spy phone software) are often used by people who want an easy and convenient way to back up and store all their own personal cell phone data. The reason why this method is fast becoming a popular way to back up their own personal cell phone data is because everything happens automatically. There is no “syncing” required, or any buttons or settings to worry about. Your cell phone data (text messages, call history, etc.) are automatically backed up every single day. This means if you ever delete a text message, and then need to quickly recover it, all you have to do is log onto your account and then in just a few clicks, you’ll have full contents of every message that was either sent or received from your phone. In addition, you’ll get access to all your call logs and contacts.

The reason why this is a more difficult method, is because it requires that you download the software from your cell phone’s web browser and install the application on your phone. Not everyone is comfortable downloading cell phone apps from the internet using their phone’s web browser. However, once you do complete the download, the actual installation is similar to installing an app on your computer. If you are willing to roll the dice and go with this method, you’ll be very happy with the results. It’s essentially a real time person back up solution that requires absolutely ZERO work on your part. Everything is done for you. The only drawback with this approach is that it does require you to install the software BEFORE you delete the text message that you want to retrieve. This means you need to be proactive and install the software ahead of time.

Positives of this approach?

  • Extremely effective.
  • Affordable.
  • Full contents of text messages are retrieved.
  • Large amount of cell phones are supported, including the popular models such as Android, BlackBerry, iPhone, Nokia, and more.

Negatives of this approach?

  • Can be difficult if not familiar with installing cell phone apps.
  • Software must be installed prior to message being deleted.
  • Requires a data connection such as 3G or Edge
  • May increase data fees if a large amount of text messages are sent on a daily basis.

There you go. Now you know how to retrieve deleted text messages using a couple different approaches. The next time someone asks you how to retrieve deleted text messages, you’ll know what options exist, and which one is the best for that particular situation.

Good luck!

Posted in general | Comments Off on How to Retrieve Deleted Text Messages & Not Go Crazy in the Process

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 Car Mechanics Use Technology

Do you know why it’s important to find a good mechanic or a good repair shop to repair your car? The reason: it could save you hundreds of dollars in parts and labor! When we say a “good mechanic” or a “good repair shop”, we’re referring to mechanics who are equipped with the latest technology. You don’t want to entrust your car to a shop with outdated machinery and equipment because it will take longer to arrive at a diagnosis. And the longer a mechanic takes to make a diagnosis, the larger your bill for labor!

Remember that car mechanics charge by the hour.

Car repairs can cover any one or a combination of the following (note that this is not a complete repair list).

• Air conditioning checks

• Air bag checks

• Electrical wiring

• Cables

• Clutch service and repair

• Transmission repair

• Wheel Alignment

• Suspension

• Brakes

• Heating system

• Oil and lubrication

• Battery

• Power windows

Much of the troubleshooting that mechanics use to diagnose a problem is facilitated by car repair technology.

Ever noticed how some lights on your panel come on when something’s wrong? In most cases, an experienced mechanic will know immediately what the problem is, but there are instances where it will take sophisticated technology to lead to an accurate diagnosis.

Sophisticated technology comes in many forms and one popular one is troubleshooting software. Companies like Auto Tech have a software program that car owners can use to find out what is ailing their vehicle.

Most car owners who were cynical about software programs before should seriously consider purchasing a reliable car troubleshooting software program. For instance, some programs start out by asking you to input your car make and model number, the year of the car and what kinds of equipment it has. The software features a large database of information about all cars in the market and a car owner simply follows the steps when prompted. It employs what the industry calls a “tree diagnosis” where logical steps take you through the entire diagnosis process.

After you’ve keyed in your car’s profile, you use the drop down menu to choose the symptoms that your car is exhibiting. For instance, if you choose “squealing brakes”, the program mimics the squealing of brakes and if that’s the sound you hear, you confirm it and the program recommends a series of steps.

You may not really want to use a troubleshooting software, but imagine how much time and money you could save if you spoke to the mechanic intelligently, letting him know that you’re in the know.

Students who are studying towards certification buy certain tools of the trade. A couple of examples are Snap On and Mac Tools. These two are the most popular in the United States and Canada.

Mechanics now have a wide range of technology tools to help them understand car problems better: digital multimeters (electronic measuring), boroscopes (testing heat exchangers), fuel diagnostic testers (testing and balancing fuel injectors) and other such new technologies.

New car mechanic technologies help shorten the learning curve and speed up diagnosis so that the car owner isn’t saddled with too many labor hours.

Posted in general | Comments Off on How Car Mechanics Use Technology

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