Creative Marketing Ideas For Hardware Stores

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

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

Introduction to Silk Test Architecture

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

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

The Silk Test host software

The 4Test Agent software

Silk Test host software

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

The Agent

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

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

How to Resolve “Memory Card Error” From Canon IXUS 130

Canon IXUS 130 is a sophisticated digital camera that has a resolution of 14.1 megapixels. The camera is inbuilt with almost all advanced features, including fully wide-angle 4x zoom lens and motion blur technology. The IXUS camera is compatible with SDHC (Secure Digital High Capacity) and SDXC (Secure Digital Extreme Capacity) cards, with storage capacity as high as 2TB.

Since the storage memory of the cards is huge, data loss from these cards is simultaneously huge. One of the main reasons for data loss from cards is corruption of these cards. In most cases, you receive an error message after your card gets corrupted. However, an updated backup allows you to overcome card corruption. It allows you to restore data. But in case of unavailability of backup, you can use recovery software to recover data from a corrupted card.

As a practical case, you view the below error message on Canon IXUS 130 while attempting to view some previously stored photos on your SDHC card:

“Memory Card Error”

Every single photo saved in the memory card becomes inaccessible after the above error message appears. In addition, no more photo can be saved on card. In short, the card can not be read or written upon.

Cause:

The above error message that makes all the photos inaccessible is primarily caused due to corruption of card. Few reasons that are accountable for the above error message are virus infection, interrupted read/write operation, and human errors.

Resolution:

The resolution for the above error message is formatting of memory card in the camera itself. The process deletes all the previously saved data and allows you to save new data. While formatting proves a good resolution for users who do not require the old data, it becomes fatal for users, like photographers, detective agents, etc, who save critical data in their memory card. However, recovering formatted data now-a-days is an easy process. To do so, you need to use an advanced third-party Photo Recovery Software. A Image Recovery tool is readily available on the Internet by just one single click.

Posted in general | Comments Off on How to Resolve “Memory Card Error” From Canon IXUS 130

What Is The Difference Between ERP And Enterprise System?

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

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

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

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

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

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

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

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

Application Software in Business Activities

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

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

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

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

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

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

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

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

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

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

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

Build Your Own Tree House – Pros and Cons, Fasteners and Hardware

Tree houses are fun, bonding activities you can do with your friends or family, and can provide a unique and ideal hangout spot surrounded by Mother nature. One of the biggest differences in my opinion, between tree houses and other on-ground add-ons you can build on your property, is the fact that a house up in the trees sways – to varying degrees depending on the height and size of the Tree and branches – and so can add a unique and soothing feel.

There are several prerequisites that must be met before this particular project would be considered feasible for you. The first ones are also the most obvious:

  1. Do you have a suitable tree with your property on which you can construct your tree house? This question may be ambiguous to some, as what kind of tree exactly is considered suitable? Well, this depends largely on the size of the structure in question, as well as the expected load – number of people, furnishings, etc. The larger your tree house is, the larger your tree needs to be.
  2. How are you with heights? Now is not a good time to kid yourself or anyone else if you happen to be abnormally scared of heights! We're all scared of heights to varying degrees, but if you lack the courage or ability to comfortably work at the needed height, this project may not be for you. Granted, it can be built relatively low to the ground as well and still be called a "tree house" – in which case, this may not apply.

Now that we have those out of the way, we can get into the other aspects of building. When compared with a structure on the ground, a tree house may somehow seem like a simpler project due to the fact that some of us have grown up "throwing" little makeshift tree houses up here and there. However, it's important to remember that any halfway decent structure, whether on the ground or up in a tree, requires careful planning and implementation of standard safety code.

Here are some other questions you should ask yourself before concluding the planning stage:

  1. What will I use the tree house for? Depending on your answer, you may want a roof and walls, or you may find it unnecessary. In either case, a rail and / or walls at least a meter high is recommended for safety.
  2. How long do I want it to last? You may think that the answer to this question is obvious, but you should understand that the lifespan of your tree house depends heavily on the materials you use and the quality and number of layers of your protective stain. Tree houses, by virtue of their definition, stand within and under the canopy of the tree in which they are built. Because of this, they are more susceptible to premature rot due to the prolonged shade and humid nature of their environment. The fallen leaves and branches scattered across the deck also serve as decay-accelerators unless they are regularly swept off.

Foundation and Floor-shape

One of the unique beauties of a tree house is the fact that you can simply build around the various branches leaving them exposed within your tree house, enhancing the "natural" atmosphere. As with an on-ground structure, you should start with building your base and floor. You may face complications with the shape of your floor due to the limitations of suitable branches to base off of.

Because of this, there's a possibility you may have to set up for a non-square shape. This may be what you want, or this may be a problem for you. In any case, you should understand that there are some restrictions placed upon you by the particular tree you're working with. All branches used for a foundation should be able to single-handedly carry several hundred pounds, and more if you're expecting higher traffic.

Tree Wood Density and Fastener Quality

Large tree houses that weigh more than the collective weight of their occupants should be carefully designed , as various factors such as the hardness of the tree and fastener quality and design come more into play. Wood will compress where the fasteners connect to the tree to varying degrees based on the hardness of the tree in question, causing a sinking of the tree house.

Professional-grade Tree house Fasteners – Are they Necessary?

There are various tree house fasteners available on the market today specially manufactured for their unique needs. However, the question invariably arises as to how necessary these customized bolts and brackets are in comparison to normal ones found in home centers due to their price. They often cost between one and several hundred dollars each!

The first thing to bear in mind when contemplating the pros and cons of these rather pricey pieces of hardware is that trees are living organizations, and are still growing, moving, and changing shape. Therefore, your tree house and the hardware on which it is mounted must accommodate this movement. Simply bolting the beams into the tree's branches results in a fixed attachment that will force the tree to either pull the screw through the beam or try to grow around the beam.

The first of the two will result in a sudden and dangerous failure , while the second will result in an unhealthy and unnatural growth around the beam, potentially causing disease and decay to set in. Custom bolts and brackets are made with a certain allowance for tree growth, with a section of the bolt that is embedded deep in the tree's heartwood and a large shank that allows axial movement coupled with a female part that is attached to the beam.

So to answer the question of whether these expensive custom parts are necessary, the short answer is yes, and no. Yes, if you lack the know-how to find parts that will accomplish the same purpose as the professional parts do, and no, if you do, and do not require your tree house to last for fifty years. Home centers sell bolts and hardware with large diameters and lengths which can be used, but the entire shank can not be threaded.

The half or so that is embedded into the tree must be threaded, but the reminder that acts as the cushion to compensate for tree-growth must be smooth. You also need a female piece that fits around the smooth shank that has a bracket that can be screwed into your beam. This female bracket then has the freedom to slide along the axis of the smooth bolt shank as the tree grows in girth. All parts should be stainless steel as well – others may corrode to failure.

Obviously, the big tree house building companies would disagree with the above opinion, and the ideal is to buy these parts. I'm just offering an alternative for those who do not have a large budget but still want to construct a safe and environmentally-friendly tree house. There is also a chance you will not be able to find hardware that meets the criteria, leaving you with no other choice.

The professional criterion when it comes to fastening your tree house to your tree seems to be "perch, do not pin". I agree whole-heartedly with this principle and any alternative I save above should not contradict this. But not everyone looking to build a tree house is willing to spend tens of thousands of dollars, so, your budget is a primary factor in determining the quality as well as what kind you would build.

In any case, it should be a safe and fun place to accommodate whatever activities you envision. Taking into consideration the damage inflicted on the tree as well as future complications that may arrise such as those mentioned above when planning, is simply the responsible and consider course of action.

Posted in general | Comments Off on Build Your Own Tree House – Pros and Cons, Fasteners and Hardware

What Are the Advantages of Using a Web Based Project Management System

Every project needs a large number of people for the completion of any task. Projects are of several kinds, and there capacity level is also variant. In order to help the managers control all tasks, management system was introduced. Project management system is used to make the managers feel easy. The first type of a project management system is manual.

However, nowadays much web-based project management software is available in the market. There is no need to process data manually. Everything is computerized; managers just have to enter the basic information into the system. Nowadays, lots of project managers are opting for web-based project management systems. They have access to the web-based project management software’s, and tools.

Using a web-based management system has several benefits. Project managers can reach their computers from anywhere, not only computers, but they can also contact their team members and check the progress of work. Discussing any problems that arise with the team is a lot easier. Team members can also interact with each other via e-mail.

Project scheduling is the basic solution of web-based task management plan in a large organisation. In many ways a web-based activity management plan can help your managers achieve optimum results. Whether a project is based on finance, marketing, construction, or information technology (IT), and web-based project management plan can help t.

Web-based activity management plan helps managers to make a proper scheduling plan of the project. Web-based software has many tools which help in managing time, and activities. The software includes spreadsheets, network diagrams, or Gantt charts to control the task management scheme.

In project-management scheme, HTML, ASP, or PHP are the supported languages coded into the software, and browser. The team can access it through a web browser. Moreover, main software is installed on to the server for multiple clients.

Project management scheme helps managers to supervise all the team easily. If the manager finds any team member late in the completion of the task, he/she can track the problem, and change that member, thus, avoiding any delays.. Web-based project-management-system enables the mangers to distribute the workload according to the capability of human resource (HR). In addition, he/she can monitor the performance of each person involved in the completion of a job. This web-based project management system also enables the manager to measure the achievement, and performance of the team in accordance to the strategy chalked down for completion, or achievement of the target.

Web-based project-management system keeps the human resources satisfied from the point of view that whatever performance he/she is given is being registered, and is not over looked. If, a company is using a custom-made programme, which is flexible to different projects, it remains cost effective, and is not a burden on the bottom line. For different projects, which have different dynamics, companies may need a tailor-made programme for them, This can be a little costly, but it ensures better management, proper monitoring, and timely completion of tasks, ultimately ensuring good performances. Nowadays, this web-based project software is a very important tool for the management of any project. Furthermore, using the correct project management scheme, and software, can help managers to manage their project smoothly, and effectively.

Posted in general | Comments Off on What Are the Advantages of Using a Web Based Project Management System

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