Uncategorized Archive

SEO a Scam? The Truth About the Industry

I frequent many SEO and Web Marketing forums on a daily basis and every so often there is a debate about the SEO industry and ethics. After being involved in a number of these debates, it has become really obvious that the main problems are the facts that no two SEO companies are alike and there is no unified methodology. It’s very hard to make statements about the industry as a whole because it’s debatable what exactly ‘SEO’ is. Mix in the fact that most SEO companies keep their methodology and campaign strategies secret and we have a situation where every company is totally different with very different results.Fact 1 : There is no unified SEO methodology. SEO is actually defined by wikipedia as a process of improving traffic from SERPs to a site. Of course, HOW they do that is the real question and causes the debates.Fact 2 : The effectiveness of an SEO campaign depends on the site structure, site content, keywords, methodology used, and how popular the site is. A site cannot just rank for any random keyword. SEO is also not voodoo. It is logic, problem solving, and Web marketing mixed together. If your site provides no value to users, it probably won’t rank.Fact 3 : Some ‘SEOs’ do search engine optimization and some do search engine manipulation. Of course, it is all marketed as SEO. Unethical optimization provides results at any cost and is always short term (usually ends in a banned domain name). Ethical optimization opens up the site to the search engines and provides long term benefits.Fact 4 : Most SEO companies get paid whether or not your site gets any rankings. Unfortunately, this is the case with the industry. Most SEO companies implement A, B, and C and move on to the next client. Hopefully, the site ranks. If it doesn’t, they always have more clients.Fact 5 : Most SEO companies use both ethical and unethical inbound linking strategies.To maximize profits, it is very common for SEO companies to buy bulk links from India, links on spam/scraper web sites, or sell large directory submission packages. It is also common for SEO companies to place huge amounts of the contract into inbound linking to make up for the poor quality of the site optimization.I don’t think it is fair to characterize the industry as a whole without figuring out what is wrong with it and how SEO companies can overcome it. So how exactly do we determine what is good and bad about the industry? I have now been involved with the Web for over 10 years and, specifically, with the SEO industry for almost 4 years and I’ve seen the inner workings of major SEO companies and worked with clients who had been burned by their previous SEO campaigns. Combined with numerous Web postings and forum debates talking about the same basic problems, I’ve compiled a list of the most common issues.Problem 1: Responsibility for ResultsIt’s no secret that the vast majority of SEO companies take no responsibility for results. It is a fact that no SEO company can guarantee results (and if they do, they are lying to you). It is also a fact that the client is taking a risk by spending money with an SEO company that basically says ‘We’ll do what we can’. SEO companies simply guarantee they’ll do the work to ‘optimize’ the site, but without full disclosure of their methodology, what exactly is the client paying for? No other industry sells a product with no guarantees and no specific list of work that will be completed. Of course, SEO work is basically the sales of information and keeping the specifics of a methodology is important, but the combination of secrecy and no responsibility for results really makes SEO campaigns risky. So, how can an SEO company reduce the risk for the client and provide the best grade of service?Answer 1: Incentive Based PricingThe only real way to reduce the financial risk of the client is to share the risk. Through incentive-based pricing, the SEO company can charge a certain percentage of the total contract (say 70%) to cover their intellectual property and time while placing the rest of the contract price (remaining 30%) in incentives for success. Of course, incentives and their percentage of the contract would be totally relative depending on the campaign. This first step into sharing in the risk provides both reassurance to the client that the company believes in its methodology and places some of the financial burden of the campaign on the SEO company. At the moment, however, very few SEO companies are willing to share in the risk and charge the same price whether the client gets top rankings or no rankings at all (or possibly even lower rankings).Problem 2: Unethical OptimizationUnfortunately, unethical (or blackhat) optimization is still very prominent on the Web. It’s also unfortunate that ‘SEO’ has been mistakenly confused with ‘Blackhat SEO’. This is still the biggest problem for SEO companies. Saying that all SEO companies deal in blackhat optimization is like saying everyone who emails is a spammer. Blackhat optimization is not optimization at all…it is search engine manipulation. Because there is so much money tied to top rankings, there will always be a market for unethical SEO and search engine spam. Until companies realize what is ethical and unethical and stop supporting those blackhat SEO companies, they will continue to thrive. This makes the industry as a whole look bad and does not reflect the ethics of good SEO companies. Blackhat provides fast, short term results, but is never a good option in the long run.Answer 2: Ethical OptimizationThere is no quick and easy solution to blackhat optimization’s stain on the SEO industry. I would suggest that all marketing departments research optimization techniques and educate themselves on what techniques are unethical. No SEO company is going to say they do unethical optimization. It’s also not a good idea to immediately trust a company or product based simply on their rankings. Unethical optimization DOES provide rankings…just not for the long run.It would also be helpful if the major search engines would be more open and accessible to SEO companies. Currently, the major search engines and SEO companies do not deal with each other and have formed a sort of love-hate relationship. Because of this, many ethical SEOs have slowly moved into dark territory. Ethical optimization seeks to make sites more easily accessible to the engines and help to improve the engine’s search results. The problem is that the search engines mainly clump all SEO companies together the same way as uninformed users do: search engine manipulation. This is just not the case. Search engines do not want to reveal what they consider unethical because it would basically be providing a list of holes in their algorithms that blackhat SEOs would be able to manipulate further, but a defined list of ‘what not to do’ would provide a definitive list for businesses looking for an SEO company.Basic Rules of Ethical OptimizationAny campaign that does not abide by the following rules is dealing in unethical optimization techniques and should be avoided.1.) What the user sees and what the search engine sees should be exactly the same. Do not hide anything.2.) Your keywords (and the resulting optimization) should exactly reflect the content of the page.Keywords should always reflect what your site is about.3.) Do not build out pages exclusively for search engines. The site should always cater to both audiences (users and search engines). Catering to only users is why optimization is necessary. Catering only to search engines is optimization gone too far into blackhat.4.) Do not participate in manipulative inbound linking schemes like link farms, bulk links, triangle linking, or any other unethical manipulation of your Google PageRank or link authority. Inbound links should be relevant to the content of your site and you should always know who is linking to you and where your links come from.Problem 3: Assembly Line / Software SEOWith the growth of the SEO industry has also come the automation of SEO. The absolute first thing any prospective SEO client should know is that all effective SEO campaigns are custom. There is no checklist of items that will work exactly the same on every site. If the SEO company claims there is, then they are not doing full optimization and the campaign is minimal. A good optimization campaign optimizes the site architecture, text content, and code of the site. Assembly line SEO does not take into consideration the unique needs/design of the site and may even deal in blackhat optimization. SEO software especially should be looked at closely. There are really only two things SEO software could do that would work for any site: doorway pages (showing engines one thing and users a different thing; which is unethical) or a system of pages build exclusively for search engines (often called info or information pages and linked in an out of the way part of the page). Doorway pages are 100% unethical and info pages are deep in the gray area. Neither of those two methods address the architecture of the site, proper keyword analysis, or effective text content. The following links are examples of automated SEO software freely available on the Web. All links contain ‘nofollow’ to prevent the sites from getting inbound link credit from our site. These sites are NOT recommended by TreeHouse SEM.http://doorwaypagemaker.com/ – Doorway page system; UNETHICALhttp://www.doorway-wizard.com/ – Doorway page system; UNETHICALAnswer 3: Custom Campaign and Assessment’SEO Software’ may be cheap and affordable, but you get what you pay for. Any campaign that is going to slap on additional pages are simply sell you links is NOT an effective SEO campaign. Any SEO effort that simply has you add a few ‘optimized’ pages to your site is not going to be optimal. If you wanted to convert a street car into a race car, you don’t simply add racing strips to it. Don’t think that dumping a few pages on your site targeted to some random keywords is the same as a real SEO campaign.If your SEO company will not sit down and talk about the layout, architecture, and aim of your site, then it is not providing a top-end service. Remember that the vast majority of ‘SEO software’ either is for building doorway/landing pages or simply providing you with data about your site (data that is already free to everyone on the Web). Good SEO campaigns take into account both the user and the search engines…not one or the other. An SEO company should have a commanding understanding of user experience and search engine optimization and use these in combination to create a campaign that will provide the best ROI. The end goal should always be leads/sales. Bringing in piles of non-targeted traffic often leads to extremely high turn over rates and very low lead conversion.ConclusionDo your research. Find out what you want from an optimization campaign and then ask the right questions. Make sure that the sales representative you talk to knows what they are selling. If they do not, they are definitely not the person to get information from. A lot of SEO companies use hard sale tactics and the reps are less than knowledgeable about what they are selling. Ask the following questions and see what they have to say.1.) How do you assess keywords? If an SEO company simply optimizes for whatever keywords are sent to them by the client, the SEO campaign starts off on very shaky ground. Keyword analysis should be performed that takes into account the number of searches in all the major search engines and the relative competition for those terms. The site should also be compared to the keywords to see if they support each other.2.) Do you plan on building out pages specifically to house keywords? Landing pages and doorway pages are not effective long term SEO options. SEO companies like them because they do not have to touch the rest of the site and it’s very easy to simply add band aids instead of performing surgery.3.) Will my SEO campaign also help improve the user experience of the site? Proper architecture and usability goes hand in hand with SEO and helps increase ROI. You should want to bring in new traffic and convert it.4.) Does my revenue model affect my keyword selection and the optimization as a whole? Any SEO company that does not optimize based on the target audience is NOT providing the most effective campaign. An ecommerce site marketing to comparative shoppers will want to optimize heavily for product names and model numbers. An online magazine wanting to bring in recurring traffic will want to optimize for article topics and specific themes. Local companies will want to optimize for geo-targeted keywords.5.) I want to optimize my site, but do not want to change any of the existing content or layout…how would you go about this? Any SEO company that says they will simply add on landing pages or hide text is selling blackhat. This goes back to the earlier analogy. You are really saying that you have a car that you want to modify to be very fast, but do not want to modify the engine and the mechanic simply adds racking stripes and charges you full price.

There is an excessive amount of traffic coming from your Region.

#EANF#

Software Maintenance Implications on Cost and Schedule

Abstract The dictionary defines maintenance as, “The work of keeping something in proper order.” However, this definition does not necessarily fit for software. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but often gets less useful with age. Software is typically delivered with undiscovered flaws. Therefore, software maintenance is: “The process of modifying existing operational software while leaving its primary functions intact.” Maintenance typically exceeds fifty percent of the systems’ life cycle cost . While software maintenance can be treated as a level of effort activity, there are consequences on quality, functionality, reliability, cost and schedule that can be mitigated through the use of parametric estimation techniques.1. INTRODUCTION One of the greatest challenges facing software engineers is the management of change control. It has been estimated that the cost of change control can be between 40% and 70% of the life cycle costs . Software engineers have hoped that new languages and new process would greatly reduce these numbers; however this has not been the case. Fundamentally this is because software is still delivered with a significant number of defects. Capers Jones estimates that there are about 5 bugs per Function Point created during Development . Watts Humphrey found “… even experienced software engineers normally inject 100 or more defects per KSLOC . Capers Jones says, “A series of studies the defect density of software ranges from 49.5 to 94.5 errors per thousand lines of code .” The purpose of this article is to first review the fundamentals of software maintenance and to present alternative approaches to estimating software maintenance. A key element to note is that development and management decisions made during the development process can significantly affect the developmental cost and the resulting maintenance costs.2. SOFTWARE MAINTENANCE Maintenance activities include all work carried out post-delivery and should be distinguished from block modifications which represent significant design and development effort and supersede a previously released software package. These maintenance activities can be quite diverse, and it helps to identify exactly what post-delivery activities are to be included in an estimate of maintenance effort. Maintenance activities, once defined, may be evaluated in a quite different light than when called simply “maintenance”. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but software often gets less useful with age and it may be delivered with undiscovered flaws. In addition to the undiscovered flaws, it is common that some number of known defects pass from the development organization to the maintenance group. Accurate estimation of the effort required to maintain delivered software is aided by the decomposition of the overall effort into the various activities that make up the whole process.3. APPROACHING THE MAINTENANCE ISSUE Maintenance is a complicated and structured process. In his textbook, Estimating Software Intensive Systems, Richard Stuzke outlines the typical software maintenance process. It is apparent that the process is more than just writing new code.The following checklist can be used to explore the realism and accuracy of maintenance requirements.o Which pieces of software will be maintained?o How long will the system need to be maintained?o Are you estimating the entire maintenance problem, or just incremental maintenance?o What level of maintenance is required?o Is that which is being called maintenance in fact a new development project?o Who will do the maintenance? Will it be done organically by the original developer? Will there be a separate team? Will there be a separate organization?o Will maintainers be using the same tools used during development? Are any proprietary tools required for maintenance?o How much Commercial-Off-The-Shelf (COTS) is there? How tightly coupled are the interfaces?o Some follow-on development may be disguised as maintenance. This will either inflate maintenance figures, or else cause shortfalls if basic maintenance gets pushed aside. These questions will help you ask whether maintenance is being honestly represented.o Is the activity really an incremental improvement?o Are healthy chunks of the original code being rewritten or changed?o Will additional staff be brought in to perform the upgrade?o Is the maintenance effort schedule regular and fairly flat, or does it contain staffing humps that look like new development?4. SANITY CHECKS Although sanity checks should be sought on a year-by-year basis, they should not be attempted for overall development. The reason for this is that maintenance activities can be carried on indefinitely, rendering any life-cycle rules useless. As an example, consider Grady (p. 17):We spend about 2 to 3 times as much effort maintaining and enhancing software as we spend creating new software.This and similar observations apply at an organizational level and higher, but not for a specific project. Any development group with a history will be embroiled in the long tail ends of their many delivered projects, still needing indefinite attention. Here are a few quick sanity checks:o One maintainer can handle about 10,000 lines per year.o Overall life-cycle effort is typically 40% development and 60% maintenance.o Maintenance costs on average are one-sixth of yearly development costs.o Successful systems are usually maintained for 10 to 20 years.Finally, as in development, the amount of code that is new versus modified makes a difference. The effective size, that is, the equivalent effort if all the work were new code, is still the key input for both development and maintenance cost estimation.5. FIVE ALTERNATIVE APPROACHES All software estimation techniques must be able to model the theory and the likely real world result. The real world scenario is that over time, the overlay of changes upon changes makes software increasingly difficult to maintain and thus less useful. Maintenance effort estimation techniques range from the simplistic level of effort method, through more thoughtful analysis and development practice modifications, to the use of parametric models in order to use historical data to project future needs.5.1 Level of Effort As is sometimes the case in the development environment, software maintenance can be modeled as a level of effort activity. Given the repair category activities and the great variance that they show, this approach clearly has deficiencies. In this approach, a level of effort to maintain software is based on size and type.5.2 Level of Effort Plus Stuzke proposed that software maintenance starts with basic level of effort (minimum people needed to have a core competency and then that that basic core staff must be modified by assessing three additional factors; configuration management, quality assurance, and project management. His process addressed some of the additional factors affecting software maintenance.5.3 Maintenance Change Factor Software Cost Estimation with COCOMO II (Boehm 2000) proposes a deceivingly simple, but also quite useful methodology for determining annual maintenance. Maintenance is one of the menu selections in the menu bar. In COCOMO II Maintenance encompasses the process of modifying existing operational software while leaving its primary functions intact. This process excludes:o Major re-design and re-development (more than 50% new code) of a new software product performing substantially the same functions.o Design and development of a sizeable (more than 20% of the source instructions comprising the existing product) interfacing software package which requires relatively little redesigning of the existing product.o Data processing system operations, data entry, and modification of values in the database.The maintenance calculations are heavily based upon the Maintenance Change Factor (MCF) and the Maintenance Adjustment Factor (MAF). The MCF is similar to the Annual change Traffic in COCOMO81, except that maintenance periods other than a year can be used. The resulting maintenance effort estimation formula is the same as the COCOMO II Post Architecture development model.As stated previously, three cost drivers for maintenance differ from development. Those cost drivers are software reliability, modern programming practices, and schedule. COCOMO II assumes that increased investment in software reliability and use of modern programming practices during software development has a strong positive effect upon the maintenance stage.Annual Maintenance Effort = (Annual Change Traffic) * (Original Software Development Effort)The quantity Original Software Development Effort refers to the total effort (person-months or other unit of measure) expended throughout development, even if a multi-year project.The multiplier Annual Change Traffic is the proportion of the overall software to be modified during the year. This is relatively easy to obtain from engineering estimates. Developers often maintain change lists, or have a sense of proportional change to be required even before development is complete.5.4 Managing Software Maintenance Costs by Developmental Techniques and Management Decisions During DevelopmentWhen it comes to maintenance, “a penny spent is a pound saved.” Better development practices (even if more expensive) can significantly reduce maintenance effort, and reduce overall life cycle cost. The more effort put into development, the less required in maintenance. As an example, the software development cost and schedule can be significantly impacted (reduced) by letting the number of defects delivered grow. This cost and schedule reduction is more than offset by the increase in maintenance cost. The following discussion is an example of how management decision can significantly affect/reduce software maintenance costs.Lloyd Huff and George Novak of Lockheed Martin Aeronautics in their paper “Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II” propose a series of development and management decision designed to impact and reduce software maintenance costs. They propose an eight step process to estimate and control software maintenance . Their proposed steps are:1. Strive for Commonality2. Apply Industrial Engineering Practices to Software3. Engage4. Adopt a Holistic Approach to Sustainment5. Develop Highly Maintainable Systems and Software6. Manage the Off-the-Shelf Software7. Plan for the Unexpected8. Analyze and Refine the Software Sustainment Business Case (use Parametric software sustainment cost estimates)5.5 A Parametric Assessment of Software MaintenanceParametric models like SEER for Software allow maintenance to be modeled in either of two ways:Estimating maintenance as a part of the total lifecycle cost. Choosing the appropriate Maintenance category parameters will include an estimate of maintenance effort with the development estimate for the individual software program. Several reports and charts show breakdowns of development vs. maintenance effort. This method is best used to evaluate life cycle costs for each individual software program.Estimating maintenance as a separate activity. Using the appropriate maintenance parameters for the software to be maintained you can model the maintenance effort as a separate activity. This method will allow you to fine tune your maintenance estimate by adjusting parameters. Maintenance size should be the same as development size, but should be entered as all pre-existing code. This method can also be useful in breaking out total project maintenance costs from project development costs.A good parametric estimate for maintenance includes a wide range of information. Critical information for completing a software maintenance estimate is the size or amount of software that will be maintained, the quality of that software, the quality and availability of the documentation, and the type or amount of maintenance that will be done. Many organizations don’t actually estimate maintenance costs; they simply have a budget for software maintenance. In this case, a parametric model should be used to compute how much maintenance can actually be performed with the given budget.Estimating and planning for maintenance are critical activities if the software is required to function properly throughout its expected life. Even with a limited budget, a plan can be made to use the resources available in the most efficient, productive manner. Looking at the diagram above, you can see that not only are the multiple inputs that impact the maintenance, but there are several key outputs that provide the information necessary to plan a successful maintenance effort.6. Conclusion The conclusions of this article are:o Software maintenance can be modeled using a simplistic method like Level of Effort Staffing, but this technique has significant drawbacks.o Software maintenance costs can be significantly affected by management decisions during the developmental process.o Software maintenance can be accurately estimated using parametric processes.o Software maintenance is best modeled when development and management decisions are coupled with parametric cost estimation techniques.REFERENCES [1] Software Maintenance Concepts and Practices (second Edition) by Penny Grubb and Armstrong Takang, World Scientific, 2005.[2] Estimating Software Intensive Systems; Richard Stuzke, 2005, Addison-Wesley.[3] Lloyd Huff, George Novak; Lockheed Martin Aeronautics; Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II.[4] G. Edward Bryan, “CP-6: Quality and Productivity Measures in the 15-Year Life Cycle of an Operating System,” Software Quality Journal 2, 129-144, June 1993.[5] Software Sizing, Estimation, and Risk Management; Daniel D. Galorath, Michael W. Evans, 2006, Auerbach Publications.