Thursday, May 6, 2010

SAD 1 - (Assignment 4)

SYSTEMS DEVELOPMENT MODELS


We all have done on knowing how the System Analyst works in developing a certain task or project. This time, we are going to explore what are the aids or tools in developing a system. In developing a system, there are common system development process models that are used to guide the analysis, design, development, and maintenance of information systems. There are many different methods and techniques used to direct the life cycle of a software development project. Most techniques and methods have similarity in goals and share common task while each is designed for a specific purpose or reason. This topic will explore the similarities and differences among these various models and will also discuss how different approaches are chosen and combined to address practical situations.

The Waterfall Model

This model is said to be the earliest method of structured system development in a traditional approach. The simplest possible process model and therefore, the least likely to be correct. The waterfall model is widely used despite of being too inflexible and linear when it comes to meeting its customer’s needs. It models the software development process as a stately and chronological through the previously mentioned phases. As we can see in this model, Waterfall development has distinctive goals for each phase of development where each phase is completed for the next one is started and there is no turning back. Though it is orderly, simple to understand, and represents a process that is easy to manage and measure, the problem is that not even the simplest systems actually get built that way. But of course, in such methods and techniques, there’s always an advantage on it despite of the negative. And the seeming advantage of the waterfall process is that it allows for departmentalization and managerial control. It is because there is a schedule that is typically set with deadlines for each stage of development and a product can proceed through the development process. In theory, this process leads to the project being delivered on time because each phase has been planned in detail.

Each phases…

Requirements Gathering and Analysis – this is the phase where all possible system requirements to be developed are identified. System requirements are those set of functional and non-functional that the end-user expects from the system. There are tools in gathering requirements, either consultation, interviews, surveys, etc. The goal of this phase is to determine how these requirements will be accommodated in the system. There should be broad communication between the customer and the developer. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.

Software & System Design – once all the requirements have been collected and analyzed, this time is to identify on how the system will be constructed to carry out their task. It is very important to understand what we are creating and what it should look like. The system has to be properly designed before any implementation is started. This phase is focused on the data requirements, software construction and the system interfacing. This phase also will defined the hardware and software needed. The aim of this phase is to generate a System Architecture document that serves as an input for the software design phase of the development, but also as an input for hardware design or selection activities.

Implementation – the software and system design is now translated into machine readable computer codes. Once the system design documents are done, the work is said to be divided in modules/units and coding is started. Different high level programming languages like C, C++, Pascal, Java are used for coding. Each modules/units will be integrated after the coding phase will be done. There is now a unit testing to test the system functionality and verify if the modules/units meet the specifications.

Testing – In this phase the system is tested. More often than not programs are written separately by modules/units. The separate modules are brought together and tested as a complete system to check if all modules/units coordinate between each other. There is a test to ensure that interfaces between modules work, the system works on the intended platform, and that the system does what the user requires. After successfully testing the software, it is delivered to the customer.

Maintenance – this phase is said to be never ending because it is believed that problems of the system developed will arise after its practical use starts, therefore, the problems in the system will be solved after its deployment. Software will definitely undergo change once it is delivered to the customer. And since not all the time, these problems will come directly at a time; it needs to be solved whenever it will arise. And this process is so-called maintenance.

The Spiral Model

The Spiral Model is inspired by the Waterfall Model and Prototyping Models. This model is simply designed to include best features that the two models has, and of course to enhance and introduce new features that can be used to design a good system. The term spiral is used to describe the process that is followed as the development of the system takes place. Like the Prototyping Model, primary version of the system is developed, and then repeatedly customized based on input received from customer evaluations. However, unlike the Prototyping Model, the development of each version of the system is carefully designed using the steps involved in the Waterfall Model. That is why this model is said to be a combination of both Prototyping and Waterfall.

Like a spiral, the process begins at the center position in this model. It moves clockwise. And each movement of the spiral usually results in a deliverable. Though it is not clearly defined what this deliverable is, there is changes as it traverse along the development of the system. Like for example, the first traversals may result in a requirement specification. The second will result in a prototype, and the next one will result in another prototype or sample of a product, until the last traversal leads to a product which is now ready to be sold. Thus the related activities and their documentation will also establish towards the outer traversals. And since there is iteration around the spiral, increasingly more complete versions of the system are built.

Similar to the waterfall model, the spiral model has chronological cycles/stages, with each stage having to be completed before moving on to next. Primary, the difference between the waterfall model and the spiral model is that the project system development cycle moves towards eventual completion in both the models but in the spiral model the cycles go back several times over to earlier stages in a repetitive sequence.

The Rapid Application Development

Above models are helpful and successful, in response to rigid, cascading, one-way steps of Waterfall Models of development, Spiral Model is introduced. Through this model, there is a way of reducing risk. But in order to ensure high responsiveness, projects are designed with fixed timescales. Sometimes leads to sacrificing functionality if necessary. This allows the development team to focus on the pieces of functionality that have the highest business value, and deliver that functionality rapidly. That is where the Rapid Application Development or RAD takes part. The RAD methodology was developed to respond to the need to deliver systems very fast. This method has a task list and a work breakdown structure that is designed for speed. However the major difference in RAD is a set of management techniques that are optimized for speed.

Change is often the reason for delays in application development. In long development processes, changes in functionality requirements or project scope after a lot of time has cause many months to be lost and significant expense to be incurred for redesigning and redevelopment. RAD minimizes scope and requirements creep by limiting the project's exposure to change and shortening the development cycle and limiting the cost of change by incorporating it up-front before large investments are made in development and testing.

However, the RAD approach is not appropriate to all projects. Say large real-time projects on RAD would not instill much confidence. The success of a RAD approach is determined on its project scope, size and circumstances.

The structure of the RAD lifecycle as we noticed is designed to ensure that developers build the systems that the users really need. This lifecycle includes all of the activities and tasks required to scope and define business requirements and design, develop, and implement the application system that supports those requirements. Below are the four stages that RAD has:

Requirements Planning – this stage is also known as the Concept Definition Stage where defines the business functions and data subject areas that the system will support and determines the system’s scope. Like the other models, it has to list all the requirements needed for the system in order to design appropriate concepts. It consists of a review of the areas associated with the proposed system. This review produces a broad definition of the system requirements in terms of the functions the system will support.

User Design – this stage is also known as the Functional Design Stage where uses workshops to model the system’s data and processes and to build a working prototype of critical system components. It consists of a detailed analysis of the business activities related to the proposed system. Following the analysis, the design of the system is outlined. System procedures are designed, and preliminary layouts of screens are developed. The requirements being gather is now being used for designing user’s views and designing the system itself.

Construction – this stage is also known as the Development Stage where completes the construction of the physical application system, builds the conversion system, and develops user aids and implementation work plans. There is now a small team of developers, working directly with users, finalizes the design and builds the system. The construction process consists of a series of design-and-build steps in which the users have the opportunity to modify the requirements and review the resulting software implementation. Construction includes documentation and instructions necessary to operate the new application, and routines and procedures needed to put the system into operation.

Implementation – this is the last stage of the system development and is also known as the Deployment Stage, this stage includes final user testing and training, converting data, and the implementation of the application system. It also involves managing the change from the old system environment to the new one. This may include implementing bridges between existing and new systems. User acceptance is the end point of the implementation stage.

Images Sources:

For waterfall model: Image @ http://www.buzzle.com/showImage.asp?image=1449
For Spiral Model: Image @http://www.instructionaldesign.org/models/spiral_model.html
For RAD: Image @ http://www.casemaker.com/download/products/totem/rad_wp.pdf

SAD 1 - (Assignment 3)

We are done to explore the world of the information system analyst. We already know what their key roles, their traits, characteristics are and we know how these characteristics/traits are very important to be a good System Analyst. We also touched our personal traits/characteristics to justify if we can be good system analysts. We identify some of our strengths so that we can examine ourselves if we are qualified to be a good System Analyst. Having the idea on how we can see our strengths to call ourselves as System Analyst, we easily pin-point different characteristics/traits that can be used in the near future as we, our very own selves will have to join the world of the information system analyst. And to validate those characters/traits that we are able to identify for ourselves, we are tasked to look for a System Analyst on practice and do an interview on what would be the skills and characteristics must a system analyst develop in order to be more effective in any design modeling process. This time, what we have learned during the sharing and presentation was validated as we throw some follow-up questions that will help us to understand more on what a System Analysts really does, I mean his skills to possess and you know characteristics.

Aside from asking his skills and characteristics, we also tackle the role of a system analyst as a project manager since this time, we’ll going to identify the role of system analyst as a project manager.

The interviewee stressed out that the role of a System Analyst is really different from a Project Manager. But there’s an exemption, because sometimes or most of the time a System Analyst is at the same time the Project Manager in doing a project.
While we are done to identify the roles/traits/characteristics/skills of a System Analyst, below are the roles of the Project Manager based on our conducted interview.
The Project Manager is the one who do the talking. According to the interviewee, the Project Manager is the one who will talk to the client at the start of doing the project. He is the one to explain it to the client on what are the team agreements in doing the project. In short, at the start of getting a project, Project Manager will be the representative of the team in doing oral or written agreements.

The Project Manager is the one who get the overall specifications/scope of the project. According to the interviewee, Project Manager is responsible for gathering information on the scope and specks of the project. As a Project Manager he is responsible to gather information and specifications from the client and of course from the users.

The Project Manager is the one to identify the people who will be involved in the project. It means that as a Project Manager, he/she is the one to create his own team for the development of the entire project. He/she will be the one to choose the people that he wanted to get involved in doing the project.

The Project Manager is the one to “always give the updates”. According to the interviewee, it is the Project Manager’s responsibility to always give updates on what are the progresses of the projects and it’s not the client who will get updates and follow-ups on what is happening on the current project development. The interviewee also states his opinion on the difference of Pinoy clients and US clients. He said that Pinoy clients doesn’t bring too much pressure it is because our nature is not too on getting updates with regards to the progress of the project and usually any delays are welcome for some extension dates. Say we are given a deadline on April 30, 2010, most Pinoy clients will meet the team on the deadline, and we can never hear those getting updates prior to the deadline while US clients are very strict on the time and deadlines. The interviewee shared his experiences on his US clients where he has to give updates on the project thrice a day. And it should be what you accomplished yesterday, what you are doing today and what you will be doing tomorrow.

The point here is that the Project Manager is the one to impose that a deadline is a deadline and tell the client before the deadline if the project will be extended so that the other party will not expect anything on the date of supposed completion.

The Project Manager is the one to delegate task to the team members. He is the one to set timeline to clients and to his team.

How do you describe yourself as a project manager in your information system department or organization (in general)? The interviewee answered that “once we set a certain goal, there should be completion “.

Can you site related experiences of being a project manager of a team in a certain project? How do you go along with it? The interviewee cites his experience during every general assembly of SAMULCO where he is responsible for the registration process. He did his job on it successfully in three years now. He is the in-charge of the secretariat (hardware, people, etc.). He is the one who oversee the entire event. And he said that in every project “you can learn, And I’m happy this year”.

What do you think are your strengths and weaknesses as a project manager? Strength: “I know what I want and I get what I want”. Weakness: “I do most of a time to think as a programmer”.

Evidence (photo):

SAD 1 - (Assignment 2)

Chapter 1 explores the world of the information System Analysts. And as we go deeper on the discussions, we are able to know what are the roles that a System Analyst does, what are their expected skills, characteristics, traits and qualifications. And thus, we are able to identify important traits and characteristics that we will be having considering ourselves as a System Analyst. Assignment 1 is all about what we have learned based on the discussions that we had on Chapter 1 and identifying some characteristics that we might have to possess as a good System Analyst.

Now in this Assignment 2, we are tasked to interview a System Analyst. It only means that we are going to venture on the outside experiences. After assessing our own selves as a System Analyst, we are going to get outside and look for another System Analyst. Luckily, we find Mr. James of SAMULCO.

Below is based on the two-hour interview with the SAMULCO’s MIS Department Head.

Question: What are the skills and characteristics must a System Analyst develop in order to be more effective in any design modeling process?

The interviewee answers the following skills:

1. Observant/keen to details. The interviewee believes that it is very important for an Analyst that he/she is a keen observer to avoid risk such a waste of time, resources and money. He site an example where there are system requirements that was left unnoticed at the start of the development and later found out that the missed requirements are needed in the system. There is now a need for repetition and therefore a waste of time, resources and of course money. So see how important to be a keen observer specially in identifying details on the system requirements needed.

2. Develop basic programming skills. The interviewee believes that a System Analysts must have basic programming skills. Well a System Analyst is not really expected to be an expert in programming but at least knowledgeable. It is because he/she is working with the developer and of course they should understand each other. Basically, System Analyst should get along with the developer that is why he/she needs to understand what do the developer means if they were talking about programming terms. There is also a technical knowledge so that it would be easy for both of the client and the analyst to assemble information requirements and to communicate when it comes to what the programmers is needed.

The interviewee also stressed out that the System Analyst must see the problem instead of solutions. Because in most cases, analysts see the solution first and forget what is really the problem. It is not good in a way that the analyst will sometimes imagine more being a programmer rather than being an analyst. He/she sees how the project will be look like and how it will going to functions and overlook on what do really the system needs to do. He said that a good analyst must see the problem alone to come up into a good solution.

3. System Analyst must be a global thinker. According to the interviewee, a good analyst is a global thinker. It is because he/she looks at the over-all system of the project. He’s making an example of the two men working on the empty lot, digging soil…while another man happens to stop by and asked what they were doing. The first man answered that they were digging the soil and the second man answered that they were going to build a house. See? The first man is the developer; he only sees the current situation, on what he’s currently working, very literal. While the second man is the system analyst, he sees the entire system and not only what is currently going on. The developer is very systematic while the analyst is a global thinker.

4. Communicate well both with the Project Manager and developer. Communication is very critical for a System Analyst because it is the only way to get along with the Project Manager, developer as well as the clients and users. It is important in dealing with your clients while you are going to review the necessary information that the desired system needs. The analyst must be a good communicator in both oral and written and one thing not to forget must be a good listener. He/she can listen and may able to react what might people have to say, in a careful and nice way. The interviewee believes that communication among the Project Manager and developer is very important because it is the only way to discuss what will be the project and how will it being develop. He said that good communication is very useful since in doing a project where the analyst will going to identify the requirements, it is the responsibility of the System Analyst to discuss the requirements needed for the project instead that the client will be the one to discuss what is needed. At first, I find it confusing since what I have understand is that it is the client who knows what they want the system would do but the interviewee adds that it is because the analyst is the one who knows more on what will be the project is going to be like and how it functions. Some add-ons might be given by the client after examining the list of functionalities that the analyst identified.

Question: Which specific skill/character do you need to develop most? The interviewee said that he has to develop more on being a global thinker.

Question: When and how can you apply these skills/traits/characters in relation to your job specification (in the organization/company)? Everyday, No not really everyday but when the opportunity calls he said. He also said that he will be talking to the HR, they will identify problems that need to be addressed and that’s the time that he will be talking to his buddy.

Evidence (photo):



Monday, April 26, 2010

SAD 1 - (Assignment 1)

Based on your learnings of chapter 1, identify and discuss some charateristics you have as a good Systems Analyst.

Chapter 1 is all about “The World of the Information System Analysts”. This topic tries to explore the possibilities of a System Analyst. As an IT student, there are many possible jobs in the near future that wait. One of them is being a System Analyst, a business professional who uses analysis and design techniques to solve business problems using information technology. He/she is the person who views the analysis of problems as a challenge and who enjoys devising workable solutions.

As what I have understood on the discussions, a System Analysts can be of different role like as problem solvers that usually solve business problems using information technology, as consultants, as agent for change and as supporting expert. He/she plays many roles and sometimes balancing several at the same time. Therefore, an analyst must possess various skills to effectively carry out this job. System Analysts must have broad knowledge and variety of skills, including technical, business, and people skills. It is because a Systems analyst works on strategic plans and then system development projects so it should be an obligation that analysts must know what are those in the technical, business and the people. Technical knowledge is important in project planning, system analysis, system design, database design and even network design, implementation and systems support. The people knowledge will help the analysts to understand the people that he/she will get along with. He/she needs to understand how the people will think, learn, react to change and communicate to make the tandem easier and avoid conflicts. Interpersonal skills deal with relationships and the interface of the analyst with people in business that is why it can be very crucial because it evoke commitment from the client.

From the sharing and discussions, I was able to identify important traits and character that a System Analysts must posses to be able to meet respective goals and objectives. Below are some of most important traits, qualities and characters that I have to develop to be a good system analyst.

I must be a good communicator and have a strong personality to convey people. A System Analysts must be able to communicate both in oral and written. It is important in dealing with your clients while you are going to review the necessary information that the desired system needs. Also I have learned that an analyst must not only a good communicator but also a good listener and must be able to react what might people have to say. I must be capable of relating meaningfully to other people over extended periods of time. There should be a mutual understanding between the analyst and his/her client. It is very important in building trust and cooperation during the entire development and implementation process. The analyst must easily get along with people that he/she had to work in for.

I must be knowledgeable of the technology trends. The analyst is not necessarily have to posses’ extreme programming skills and not expected to know the intricacies of programming, but a decent general knowledge of concepts and terms is essential especially in dealing with the systems design. There should be also a technical knowledge so that it is easy for the analysts to deal with technicalities to glean information requirements from users and to communicate what is needed for programmers.

I must be knowledgeable of business functions. Though it is not expected that the analysts is an expert in business but a decent understanding of the client's world is required especially that the analyst will going to review business related issues. He/she is expected to review the business function performed by the organization during the information gathering.

I should be familiar with the concepts for the appropriate design of the particular development environment. It is not just doing the project because it is what the client wants. The analyst must know the appropriate design concepts. He/she must have the ability to conceptualize and think creatively. Also, the analysts should have the skills to use the tools to facilitate his/her work like using design software tools.

I must be flexible to adapt changes and twists during the development of the project and must be able to alter unexpected situations. It is very important for an analyst to have a strong heart to face whatever problems that the project will encounter during development. The systems analyst must be a self-disciplined, self motivated individual who is able to manage and coordinate innumerable project resources, including other people. There should be an effective time management and personal organization skills. A good analyst must be able to identify and suggest requirements that are more useful than what are the clients has been able to identify. Most importantly, analysts must have high standard of ethics and integrity in all dealings. It is very important especially that analysts will be given the chance to get involve in private information.

Finally, to be a good system analyst is to live with integrity. It is very much important to gain trust from expected clients and to build cooperation and camaraderie. For me it is better to enjoy the whole development process and make it easier for both parties. Though some organizations would like to build gap among outsiders, a good analyst must know how to break the gap. That is why it is also important to share and exchange ideas to better things. The aforementioned are just some of the important characteristic that a good system analyst must have. Otherwise, there is no good dealing between clients.

Thursday, February 4, 2010

MIS 2(Assignment 8)

In building a Corporate Strategy, there should be processes that need to be done to come up in much more strategic planning. There should be a gathering of information from the industry, checking the capabilities of the company and also the consideration of reaching the desired objectives in a much broader way. It is also important to analyze the gap between the current state and the future desired state of the company and of course the systems. While I tried to look for the most critical parameters to be considered in developing a strategic IS planning, I find the best areas to get more focused during analyzing. These are plan, people, operation and implementation and technology.

Here are the questions I tried to develop out of those areas in making a Strategic Planning:

1. What are the issues outside your organization? And how it affects your organization?

Explanation: Before getting on what is inside, let’s try to look on what is outside the organization. Having an environmental scan can help us analyze on the issues that we are going to address.

2. Is your organization ready for Strategic Planning?

Explanation: This question will assess the level of readiness of the organization to conduct a strategic planning while there are number of issues that must be addressed. This will determine whether the top management down to the lowest level is willing to participate and committed to do the effort until the results will be known. In order to have an organized process, readiness should be determined by answering these issues below:

a. Specific issues must be identified/ choices that the planning process should address
b. Organizational profile should be developed
c. There should be a creation of Planning committee
d. Individual roles should be clarified (like who does what during the process)
e. Information that must be collected to help make sound decisions must be identified

3. What business is in your company?

Explanation: In developing a strategic planning, it is very much important to define the business clearly. There should be a clear definition of the business in terms of their responsibility in their customers, on what they really do in their customers or in their company. Try to see the things that the company needs to reduce, stop or avoid based on the current state of the organization.

4. What are the basic Plans of the company?

Explanation: It is important to realize that a basic plan is basically required in line with the budget and the organization’s strategic objectives. The said plan should summarize the details of a coordinated approach within the organization to reaching the envisioned state. It is like setting a goal and objectives for the organization and asking the question “What do you want to achieve?” and “What are your specific, measurable targets?”

5. What are the Strength, Weaknesses, Opportunities and Threats inside your organization?

Explanation: After wide look on external issues, let’s take a hard look on the internal issues. Having the S.W.O.T analysis will help you find and create much more strategic plans.

6. Assuming that things will be the same they are today, what business will be in?

Explanation: It is important to look at the possibility of changes. Will you like to continue the line of business that you have now or you would like to change it? Based on the performance that your organization had during the past years, is it an intelligent decision to pursue on the same strategy or it is better to change the way it used to be.

7. What are the capabilities of the IT department?

Explanation: This is the people issues where it represents the readiness of the organization to absorb and use technology and the awareness factors. Knowing the organizations capability in this area will help to develop a much more strategic planning and effective results.

8. What is the status of your customers or the industry itself?

Explanation: The success of the operation and implementation will define the capability of the organization to handle projects in information technology. This will evaluate the readiness of the organization on implementing complex IT projects and then how will they managed it afterwards. Therefore, status can help in adjusting strategic planning.

9. What are their technologies?

Explanation: This will help in the study of their existing technology platforms, the infrastructure, the state and format of the data and information present. Along with this is the governance of their technology. Many technologies present in the company will sometimes result to difficulties management. There should be clear and specific choice in the standards, responsibility and approval structure in selecting and implementing technology to avoid difficulty of integration.

References:

http://www.allianceonline.org/content/index.php?pid=172
http://managementhelp.org/fp_progs/sp_mod/str_plan.htm

Tuesday, January 26, 2010

MIS 2(Assignement 7)


In tradition people have needs, wants, and fun of nice-to-haves. In our needs we will pay its marketable value. Our wants, we will pay modestly for, especially if were bundled with needs. Nice-to-haves we will not pay for it at all, but we’ll take them. The market economy is focused on needs, since they are the corporation's bread and butter, the only source of reliable revenue and growth, and hence profit.

Now there’s Google. In the progress and fast growth of technology, Google, in the other way around, fulfill people’s needs, wants, and nice-to-haves, and that’s all for free. At this point, we were divided into the leading side of they so called ‘digital divide’ who gratefully take all those three and never mind to differentiate them unless some of the nice-to-haves unduly complicate the application, in which case we don't want them and those on the other side of the ‘digital divide’ who get none of those three. The market understands none of this behavior, since it doesn't conform to any accepted business model. Google doesn't really seem to care either. They're too busy doing what they do so well - delighting customers with valuable, perceptive, boldly innovative and expansive new products, on a scale that is the envy of every entrepreneur.

GOOGLE, Inc.

Google Inc. is an American public corporation, earning revenue from advertising related to its Internet search, e-mail, online mapping, office productivity, social networking, and video sharing services as well as selling advertising-free versions of the same technologies. The Google headquarters, the Googleplex, is located in Mountain View, California. As of March 31, 2009, the company has 20,164 full-time employees. Google was co-founded by Larry Page and Sergey Brin while they were students at Stanford University and the company was first incorporated as a privately held company on September 4, 1998. The initial public offering took place on August 19, 2004, raising US$1.67 billion, implying a value for the entire corporation of US$23 billion. Google has continued its growth through a series of new product developments, acquisitions, and partnerships. Environmentalism, philanthropy and positive employee relations have been important tenets during the growth of Google. The company has been identified multiple times as Fortune Magazine's #1 Best Place to Work, and as the most powerful brand in the world (according to the Millward Brown Group). Google's mission is "to organize the world's information and make it universally accessible and useful." The unofficial company slogan, coined by former employee and Gmail's first engineer Paul Buchheit, is "Don't be evil". Criticism of Google includes concerns regarding the privacy of personal information, copyright, and censorship.

GOOGLE's REVOLUTIONARY BUSINESS MODEL

Google's Infrastructure:

The business concept of Google is similar to the concept and strategy where Dell has started, only adapting it for the Web & broadband. Instead of trucks and assembly plants, however, Google’s supply chain is made up of fiber networks, data centers, switches, servers and storage devices. Google has to deliver search as fast as possible at as low a cost as possible.

To simply understand its business model, here is the breakdown of its data inputs: Relevancy of results. Speed of search. Cost of executing a search query.

The company has to make sure that the speed of its search is really, really fast. Any random search on Google these days takes between 0.12 to 0.06 seconds or faster. It also makes perfect sense for Google to build their own servers, storage systems, Internet switches and perhaps, sometime in the future, even optical transport systems. Let’ s try to imagine connecting thousands of hosts (storage and server systems) at speeds of, say, 10 gigabits per second, in a manner that allows any-to-any connections. The sheer cost to keep such a beast going would suck up a major component of the infrastructure. A better option is to have gear that is customized for your processes, ones in which you have a major operational expenditure advantage. In the telecom bubble, large service providers were brought to their knees by operational expenditures. With the exception of optical systems, Google has built or is building the gear. It has been rumored to be a big buyer of dark fiber to connect its data centers. Building customized gear is an expensive strategy, but when you are the scale of Google, it starts to become less of an issue. Its because process-optimized infrastructure ensures that Google’s cost of executing a query keep going down.

In summary, Google’s gigantic infrastructure is the big barrier to entry for its rivals, and will remain so, as long as the company keeps spending billions on it. That said, there’s another thing Google could learn from Dell: Maintain the quality of your search results — customers will only put up with shoddiness for so long(Om Malik | Dec. 4, 2007).


Google's Direct Competitors :

1. Yahoo! Inc.
2. Pvt1 (MSN) – Privately held
3. AOL, Inc.
4. Industry (Internet Information Provider)
5. Disney Online
6. Move, Inc.
7. Match.com,LLC
8. Sina Corp.
9. Daum Communications Corp.
10. Joost (Joost is the new online distributor of Viacom’s property)
11. Etc.

Google's Unique Advantage:

The fact can't be denied. Google have achieved a massive success and almost every developer wants to work for. Google is best known for search and for ads associated with search, that was obvious. This is in essence Google’s one true product. It is the one feature Google developed for the outside world. When Google developed search it was no different from a small company. It is what Google has done since then that makes Google different. Google doesn’t answer to any external power. They don’t have anyone they have to deliver a product to. There is no contract with a deadline. Due to not having any external dependencies, Google can continuously iterate over a product until it reaches a state of near perfection. It can stay in internal testing as long as Google wants and no one is going to care. See Gmail, Google Maps, etc. This then allows Google to use the perfect form of the agile process. Continuous iterations and testing and development, continues improvement. Then as Google sees fit, release the products. As they get better and better, more people use them and more money from ads come in. And that's undeniably beautiful! Another thing is that Google hit on the formula for ads before anyone else. They now have such a commanding lead in that arena that to compete with them you need deep pockets of money of your own. That makes it difficult to launch a company and follow Google’s lead of avoiding external dependencies and having the near perfect product development process. Google does have external contracts, especially for serving up ads on other sites. But notice that Google’s contracts are different from most companies’ contracts. Google isn’t developing a product for these companies. All they are doing is giving them an existing product that Google has already completed and released. Development on that product might still be happening, but it happens within Google, not within the realms of the contract. Google is still free to develop how ever they want (Mark Mzyk | March 17, 2008). And i agree to this point that Google has its unique advantage.

Google's New Services:

1. New Storage Service

Google Inc has announced its very own cloud-based online storage service which will allow Google Docs users to upload any type of file of up to 250 MB while they will have access to a total storage capacity of 1GB.
(14 January, 2010, by Desire Athow)

2. Google Nexus One

Yesterday Google wasn’t in the business of selling mobile phones. Today, they are. The Nexus One smartphone has arrived and on sale at Google.com/phone.
(January 5th 2010 by Michael Arrington)

3. Google Click-to-Call (Billing) in Ads on Mobile Devices

Google sent out notification to its AdWords advertisers that this month “your location-specific business phone number will display alongside your destination url in ads that appear on high-end mobile devices. Users will be able to click-to-call your business just as easily as they click to visit your website. You’ll be charged for clicks to call, same as you are for clicks to visit your website.”
(Jan 5, 2010 at 7:59am ET by Greg Sterling)

4. Google Goggles

A new service that promises to make searching the internet as easy as taking a photo. The application, which will premier on Android devices, will let a user snap a photo of anything and then Google will deliver search results based on that image.
(December 7th, 2009 by Stefan Constantinescu)

5. Free DNS Service

Google just released their newest service which is public DNS. DNS is one of the most important services when it comes to using the internet. The main reason to use the service is reliability, speed and increased security. Google has put in other measures to help with overall security.
(December 5th 2009 by serverguy)

Sources/References:

http://searchengineland.com/google-to-introduce-click-to-call-billing-in-ads-on-mobile-devices-32831
http://www.programmersparadox.com/2008/03/17/googles-unique-advantage/
http://www.techcrunch.com/2010/01/05/google-nexus-one-the-techcrunch-review/
http://www.serverninjas.com/free-dns-service-offered-by-google
http://finance.yahoo.com/q/co?s=GOOG
http://blogs.salon.com/0002007/2005/10/16.html
http://www.itproportal.com/portal/news/article/2010/1/14/microsoft-teases-google-over-new-storage-service/