Chapter 9: The People in Information Systems PDF
Document Details

Uploaded by SpiritualVerisimilitude4846
De La Salle
Tags
Summary
This document is a chapter from a textbook about information systems, focusing on the people involved in the creation and use of information systems.
Full Transcript
Chapter 9: The People in Information Systems Opening chapters - technology behind information systems (hardware, software, data, and networking) Last chapter - business processes and the key role they can play in the success of a business System Analyst Peo...
Chapter 9: The People in Information Systems Opening chapters - technology behind information systems (hardware, software, data, and networking) Last chapter - business processes and the key role they can play in the success of a business System Analyst People Roles Last component of an The system analyst straddles the information system divide between identifying People are involved in business needs and imagining a information systems in just new or redesigned system to about every way fulfill those needs People imagine, develop, Works with a team or support and use information department seeking to identify systems business requirements and The Creators of analyze the specific details of an Information System existing system or system that needs to be built First group of people to be The analyst is required to have a considered play a role in good understanding designing, developing and ○ the business itself building information systems. ○ Purpose of business These people are generally ○ Business process involved technical and have a ○ Ability to document them background in programming, well analysis, information security or The analyst identifies the database design. different stakeholders in the Minimum of Bachelor's degree system and works to involve the in CS or IS (not necessarily appropriate individuals in the requirement) analysis process Process Prior to analyzing the problem or the system of concern, the analyst needs clearly identify the problem gain approval for the project, identify the stakeholders, how to speak in the technical develop a plan to monitor the language of systems developers. project Analysis Phase of the project Design Phase 1) Seek out and identify the details The design phase results in the 2) Specify requirements components of the new system 3) Decide which requirements are being identified, including how most important they relate to one another. 4) Create a dialog showing how The designer needs to the user interacts with the communicate clearly with existing system software developers as well 5) Ask users to critique the list of database administrators by requirements that have been using terminology that is developed consistent with both of these The analysis phase involves both specialties. the systems analyst and the The design phase of the project users can be broken down into six Users can have significant steps. insights into how well current 1) Design the hardware system functions as well as environment suggest improvements. 2) Design the software Once the requirements are 3) Design how the new system will determined, the analyst begins interface with the users the process of translating these 4) Design hardware interfaces requirements into an 5) Design database tables information systems design. 6) Design system security It is important to understand which different technological A systems analyst generally is solutions will work and provide not the one who does the actual several alternatives to the client, development of the information based on the company’s system. budgetary constraints, The design document created technology constraints, and by the systems analyst provides culture. the detail needed to create the Once the solution is selected, system and is handed off to a the analyst will create a detailed developer to actually write the document describing the new software and to the database system administrator to build the This new document will require database and tables that will be that the analyst understand in the database Sometimes the system may be intricacies of one or more assembled from off-the-shelf programming languages. components by a person called a systems integrator. Computer Engineer ○ This is a specific type of systems analyst that Computer engineers design the understands how to get computing devices that are different software used every day packages to work with There are many types of each other. computer engineers who work To become a systems analyst, on a variety of different types of you should have a background devices and systems. both in the business analysis Hardware Engineers and in systems design Hardware engineer designs Many analysts first work as hardware and test components developers and have business such as microprocessors, experience before becoming memory devices, routers, and system analysts. networks. It is vital for analysts to clearly the cutting edge of computing understand the purpose of the technology, creating something business of interest, realizing brand new that all businesses are unique to re-engineer an existing component to work faster or use Programmer/Developer less power. Writing computer code in a to write code to create a programming language program that will be Systems development - implemented directly on a programmers generally attempt computer chip. to fulfill the design Software Engineer specifications given to them by focus on a specific area of a systems analyst/designer. software such as operating Many different styles of software systems, networks, applications, development exist - a or databases programmer may work alone for three primary skill areas: long stretches of time or work as computer science, engineering, part of a team with other and mathematics developers. Systems Engineer A programmer needs to be able to understand complex takes the components designed processes and also the by other engineers and makes them all work together, focusing on the integration of hardware Computer Operator and software. Example: to build a computer the person who oversees the the motherboard,processor, mainframe computers and data memory, and hard disk all have centers in organizations to work together. Some of their duties include A systems engineer has keeping the operating systems experience with many different up to date, ensuring available types of hardware and software memory and disk storage, and knows how to integrate providing for redundancy (think them to create new electricity, connectivity to the functionality. Internet, and database backups), and overseeing the Network Engineer physical environment of the understands the networking computer requirements of an organization servers, storage management and then designs a systems, and other platforms, communications system to computer operators’ jobs have meet those needs, using the grown broader and include networking hardware and working with these specialized software, sometimes referred to systems. as a network operating system. Database Administrator design both local area networks as well as wide area networks. the person who designs and manages the databases for an organization. Information Systems creates and maintains Operations and databases that are used as part Administration of applications or the data warehouse involved in the day-to-day consults with systems analysts operations and administration and programmers on projects of IT that require access to or the must keep the systems running creation of databases and up-to-date so that the rest of the organization can make the most effective use of these Help Desk/Support Analyst resources. mid-size to large organizations have their own information technology help desk. the first line of support for computer users in the company. Computer users who are having trainer may be employed full problems or need information time for an organization to can contact the help desk for handle all of their computer assistance. instruction needs. a help desk worker is a junior trainer you need to be able to level employee who is able to communicate technical answer basic issues that users concepts clearly and need assistance with. demonstrate patience with Help desk analysts work with learners. senior level support analysts or have a computer Managing Information knowledgebase at their disposal to help them investigate the Systems problem at hand The management of great place to break into information-systems functions is working in IT because it exposes critical to the success of you to all of the different information systems within the technologies within the organization company CIO successful help desk analyst should have good The Chief Information Officer communications skills and a (CIO) is the head of the sincere interest in helping users information-systems function This person aligns the plans and operations of the information Trainer systems with the strategic goals A computer trainer conducts of the organization classes to teach people specific Tasks include budgeting, computer skills strategic planning, and Example: a new ERP system is personnel decisions for the being installed in an information systems function. organization, one part of the the face of the IT department implementation process is to within the organization teach all of the users how to use working with senior leaders in the new system all parts of the organization to trainer may work for a software ensure good communication, company and be contracted to planning, and budgeting come in to conduct classes CIO position does not when needed; necessarily require a lot of trainer may work for a company technical expertise that offers regular training While helpful, it is more sessions important for this person to have good management skills Project Managers and understand the business. Sometimes, the head of the information systems function is called the Vice President of Information Systems or Director of Information Systems. Functional Manager As an information systems organization becomes larger, Information systems projects many of the different functions are notorious for going over are grouped together and led by budget and being delivered late. a manager. In many cases a failed IT project functional managers’ report to can spell doom for a company. the CIO and manage the project manager is responsible employees specific to their for keeping projects on time function. and on budget Example: in a large organization project manager does not have there are a group of systems authority over the project team analysts who report to a project manager coordinates manager of the systems analysis schedules and resources in function. order to maximize the project outcomes This leader must be a good ERP Management communicator and an Organizations using an ERP extremely organized person require one or more individuals A project manager should also to manage these systems. have good people skills. ERP managers make sure that the ERP system is completely up Information Security Officer to date, work to implement any changes to the ERP that are In charge of setting information needed, and consult with security policies for an various user departments on organization and then needed reports or data extracts overseeing the implementation of those policies may have one or more people reporting to them as part of the information security team. information has become a Career Paths in critical asset, this position has become highly valued Information Systems must ensure that the organization’s information remains secure from both internal and external threats Emerging Roles As technology evolves many new roles are becoming more common as other roles diminish Example: we enter the age of “big data,” we are seeing the need for more data analysts and business intelligence specialists Many companies are now hiring social media experts and mobile technology specialists. The increased use of cloud computing and Virtual Machine (VM) technologies also is increasing demand for expertise These job descriptions do not in those areas. represent all possible jobs within an information systems organization Larger organizations will have more specialized roles, while smaller organizations may combine some of these roles Working with information systems can be a rewarding career choice. Whether you want to be involved in very technical jobs (programmer, database administrator), or you want to be involved in working with people (systems analyst, trainer, project manager), A person can continue doing technical By the 1980s and 1990s, when work, where sometimes their companies began networking advancement options are limited, or internally and then connecting become a manager of other to the Internet, the information employees and put themselves on a systems function was combined management career track. with the telecommunications functions and designated as the Are Certifications Worth Information Technology (IT) department Pursuing? As the role of information Certifications are designations technology continued to given by a certifying body that increase, its place in the someone has a specific level of organization became more knowledge in a specific important. In many technology. organizations today, the head of Some examples of the IT (the CIO) reports directly to certifications in highest demand the CEO. include Microsoft (software certifications), Cisco Where in the Organization (networking), and SANS Should IS Be? (security) Before the advent of the personal computer, the Organizing the Information information systems function was centralized within Systems Function organizations in order to In the early years of computing, maximize control over the information-systems computing resources function (generally called “data When the PC began processing”) was placed in the proliferating, many departments finance or accounting within organizations saw it as a department of the organization. chance to gain some computing As computing became more resources for themselves important, a separate Some departments created an information-systems function internal information systems was formed, but it still was group, complete with systems generally placed under the Chief analysts, programmers, and Financial Officer and considered even database administrators. to be an administrative function These departmental IS groups of the company were dedicated to the information needs of their own departments, providing quicker turnaround and higher levels of decisions throughout the service than a centralized IT company. department However, having several IS Outsourcing groups within an organization led to a lot of inefficiencies. Frequently an organization There were now several people needs a specific skill for a limited performing the same jobs in period of time. different departments. This Outsourcing can be used in decentralization also led to many different situations within company data being stored in the information systems several places all over the function, such as the design and company. creation of a new website or the In some organizations a matrix upgrade of an ERP system reporting structure developed in which IT personnel were New Models of placed within a department and Organizations reported to both the department management and The integration of information the functional management technology has influenced the within IS. structure of organizations The advantages of dedicated IS The increased ability to personnel for each department communicate and share must be weighed against the information has led to a need for more control over the “flattening” of the strategic information resources organizational structure due to of the company. the removal of one or more For many companies, these layers of management. questions are resolved by the The network-based implementation of the ERP organizational structure is system; Because an ERP system another changed enabled by consolidates most corporate information systems data back into a single database, In a network-based the implementation of an ERP organizational structure, groups system requires organizations to of employees can work find “silos” of data so that they somewhat independently to can integrate them back into accomplish a project the corporate system. The ERP People with the right skills are allows organizations to regain brought together for a project control of their information and and then released to work on influences organizational other projects when that project is over contact with scientific Information Systems Users sources and interaction with other innovators - Types of Users Risk tolerance is high so Besides the people who work to there is a willingness to create, administer, and manage adopt technologies that information systems, there is may ultimately fail one more extremely important Financial resources help group of people, namely, the absorb these failures users of information systems. 2) Early adopters. This group represents a very The early adopters are large percentage of an those who adopt organization’s employees. If the innovation soon after a user is not able to successfully technology has been learn and use an information introduced and proven. system, the system is doomed These individuals have to failure. the highest degree of Technology adoption user opinion leadership among the other adopter types categories, which means One tool that can be used to that these adopters can understand how users will adopt a new influence the opinions of technology comes from a 1962 study the largest majority. by Everett Rogers. In his book, Characteristics include Diffusion of Innovation, Rogers being younger in age, studied how farmers adopted new having a higher social technologies and noticed that the status, possessing more adoption rate started slowly and then financial liquidity, having dramatically increased once adoption advanced education, and hit a certain point. being more socially aware 5 types of technology than later adopters. These adopters are more adopters discrete in adoption 1) Innovators choices than innovators, the first individuals to and realize judicious adopt a new technology choice of adoption will willing to take risks, are help them maintain a the youngest in age, have central communication the highest social class, position have great financial 3) Early majority. liquidity, are very social, Individuals in this and have the closest category adopt an innovation after a varying change agents and tend degree of time to be advanced in age. This time of adoption is Laggards typically tend to significantly longer than be focused on “traditions,” the innovators and early are likely to have the adopters. lowest social status and This group tends to be the lowest financial slower in the adoption liquidity, be oldest of all process, has above other adopters, and be in average social status, has contact with only family contact with early and close friends adopters, and seldom holds positions of opinion leadership in a system 4) Late majority. The late majority will adopt an innovation after the average member of the society These individuals approach an innovation with a high degree of These five types of users can be skepticism, have below translated into information average social status, very technology adopters as well, and little financial liquidity provide additional insight into are in contact with others how to implement new information in the late majority and systems within the the early majority, and organization. show very little opinion Example leadership. when rolling out a new system, IT 5) Laggards. may want to identify the innovators Individuals in this and early adopters within the category are the last to organization and work with them first, adopt an innovation. then leverage their Unlike those in the adoption to drive the rest of the previous categories, implementation to the other individuals in this Users. category show no opinion leadership These individuals typically Summary have an aversion to In this chapter we have reviewed the many different categories of individuals who make up the people component of information that new roles are being created all the time and roles that existed for decades are being phased out. This chapter should have given you a good idea and appreciation for the importance of the people component of information systems. Chapter 10: Information different groups of people in an organization. Systems Development In order to do this effectively, the groups agree to follow a specific When someone has an idea for a new software development function to be performed by a methodology. computer, how does that idea become The following sections review reality? several different methodologies If a company wants to implement a for software development, as new business process and needs new summarized in the table below hardware or software to support it, and more fully described in the how do they go about making it following sections. happen? This chapter covers the different methods of taking those ideas and bringing them to reality, a process known as information systems development. Systems Development Life Cycle Programming The Systems Development Life the process of creating a set of Cycle (SDLC) was first developed logical instructions for a digital in the 1960s to manage the large device to follow using a software projects associated programming language with corporate systems running The process of programming is on mainframes. sometimes called “coding” This approach to software because the developer takes the development is very structured design and encodes it into a and risk averse, designed to programming language which manage large projects that then runs on the computer. include multiple programmers The process of developing good and systems that have a large software is usually not as simple impact on the organization. as sitting down and writing It requires a clear, upfront some code. understanding of what the Sometimes a programmer can software is supposed to do and quickly write a short program to is not amenable to design solve a need, but in most changes. instances the creation of This approach is roughly similar software is a resource-intensive to an assembly line process, process that involves several where it is clear to all stakeholders what the end product should do and that Requirements Analyst or major changes are difficult and Business Analyst costly to implement. II. System Analysis. Various definitions of the SDLC In this phase one or more methodology exist, but most system analysts work with contain the following phases. different stakeholder groups to determine the Phases specific requirements for the new system. I. Preliminary Analysis. No programming is done A request for a in this step. replacement or new Instead, procedures are system is first reviewed. documented, key The review includes players/users are questions such as: interviewed, and data ○ What is the requirements are problem-to-be-solv developed in order to get ed? an overall impression of ○ Is creating a exactly what the system is solution possible? supposed to do. ○ What alternatives The result of this phase is exist? a system requirements ○ What is currently document and may be being done about done by someone with a it? title of Systems Analyst. ○ Is this project a III. System Design. good fit for our In this phase, a designer organization? takes the system After addressing these requirements document questions, a feasibility created in the previous study is launched. phase and develops the The feasibility study specific technical details includes an analysis of the required for the system. technical feasibility, the It is in this phase that the economic feasibility or business requirements affordability, and the legal are translated into feasibility. specific technical This step is important in requirements. determining if the project The design for the user should be initiated and interface, database, data may be done by someone inputs and outputs, and with a title of reporting are developed The first is a unit test, here. which evaluates The result of this phase is individual parts of the a system design code for errors or bugs. document. This is followed by a This document will have system test in which the everything a programmer different components of needs to actually create the system are tested to the system and may be ensure that they work done by someone with a together properly. title of Systems Analyst, Finally, the user Developer, or Systems acceptance test allows Architect, based on the those that will be using scale of the project. the software to test the IV. Programming. system to ensure that it The code finally gets meets their standards. written in the Any bugs, errors, or programming phase. problems found during Using the system design testing are resolved and document as a guide, then the software is programmers develop tested again. These tasks the software. are done by persons with The result of this phase is titles such as Tester, an initial working Testing Analyst, or Quality program that meets the Assurance. requirements specified in VI. Implementation. the system analysis phase Once the new system is and the design developed developed and tested, it in the system design has to be implemented in phase. the organization. These tasks are done by This phase includes persons with titles such training the users, as Developer, Software providing Engineer, Programmer, or documentation, and data Coder. conversion from the V. Testing. previous system to the In the testing phase the new system. software program Implementation can take developed in the many forms, depending programming phase is on the type of system, the put through a series of number and type of structured tests. users, and how urgent it is that the system The SDLC methodology is become operational. sometimes referred to as the These different forms of waterfall methodology to implementation are represent how each step is a covered later in the separate part of the process. chapter. Only when one step is VII. Maintenance. completed can another step This final phase takes begin. place once the After each step an organization implementation phase is must decide when to move to complete. the next step. In the maintenance This methodology has been phase the system has a criticized for being quite rigid, structured support allowing movement in only one process in place. direction, namely, forward in the Reported bugs are fixed cycle. and requests for new Example: changes to the features are evaluated requirements are not allowed and implemented. once the process has begun. No Also, system updates and software is available until after backups of the software the programming phase. are made for each new Again, SDLC was developed for version of the program. large, structured projects. Since maintenance is Projects using SDLC can normally an Operating sometimes take months or years Expense (OPEX) while to complete. much of development is a Because of its inflexibility and Capital Expense (CAPEX), the availability of new funds normally come out programing techniques and of different budgets or tools many other software cost centers. development methodologies have been developed. Many of these retain some of the underlying concepts of SDLC, but are not as rigid. Rapid Application interactively create the design of the system. Development Sometimes a Joint Application Development (JAD) session is used to facilitate working with all of these various stakeholders. A JAD session brings all of the stakeholders for a structured discussion III. Construction. In the construction phase Rapid Application Development (RAD) the application focuses on quickly building a working developers, working with model of the software, getting the users, build the next feedback from users, and then using version of the system that feedback to update the working through an interactive model. After several iterations of process. development, a final version is Changes can be made as developed and implemented. developers work on the program. Four Phases This step is executed in I. Requirements Planning. parallel with the User This phase is similar to Design step in an iterative the preliminary analysis, fashion, making system analysis, and modifications until an design phases of the acceptable version of the SDLC. product is developed. In this phase the overall IV. Cutover. requirements for the Cutover involves system are defined, a switching from the old team is identified, and system to the new feasibility is determined. software. II. User Design Timing of the cutover In the user design phase phase is crucial and is representatives of the usually done when there users work with the is low activity. system analysts, Example: IT systems in designers, and higher education programmers to undergo many changes and upgrades during the summer or between fall much better suited for smaller projects semester and spring than SDLC and has the added semester. advantage of giving users the ability to Approaches to the provide feedback throughout the migration from the old to process. the new system vary SDLC requires more documentation between organizations. and attention to detail and is well Some prefer to simply suited to large, resource-intensive start the new software projects. and terminate use of the RAD makes more sense for smaller old software. projects that are less resource Others choose to use an intensive and need to be developed incremental cutover, quickly. bringing one part online at a time. Agile Methodologies A cutover to a new accounting system may Agile methodologies are a group of be done one module at a methodologies that utilize incremental time such as general changes with a focus on quality and ledger first, then payroll, attention to detail. followed by accounts Each increment is released in a receivable, etc. until all specified period of time (called a time modules have been box), creating a regular release implemented. schedule with very specific objectives. A third approach is to run While considered a separate both the old and new methodology from RAD, the two systems in parallel, methodologies share some of the comparing results daily to same principles such as iterative confirm the new system development, user interaction, and is accurate and flexibility to change. dependable. The agile methodologies are based on A more thorough the “Agile Manifesto,” first released in discussion of 2001. implementation strategies appears near the end of this chapter. As you can see, the RAD methodology is much more compressed than SDLC. Many of the SDLC steps are combined and the focus is on user participation and iteration. This methodology is Agile Iterative Development Lean Methodology The diagram above emphasizes iterations in the center of agile development. You should notice how the building blocks of the developing system move from left to right, a block at a time, not the entire project. Blocks that are not acceptable are returned through feedback and the developers make the needed modifications. One last methodology to discuss is a relatively new concept taken from the Characteristics business bestseller The Lean Startup Small cross-functional teams by Eric Reis. Lean focuses on taking an that include development team initial idea and developing a Minimum members and users; Viable Product (MVP). The MVP is a Daily status meetings to discuss working software application with just the current state of the project; enough functionality to demonstrate Short time-frame increments the idea behind the project. (from days to one or two weeks) for each change to be Once the MVP is developed, the completed; and development team gives it to Working project at the end of potential users for review. each iteration which Feedback on the MVP is demonstrates progress to the generated in two forms. stakeholders. First, direct observation and Goal: to provide the flexibility of an discussion with the users and iterative approach while ensuring a second, usage statistics quality product. gathered from the software itself. Using these two forms of feedback, the team determines whether they should continue in the same direction or rethink the core idea behind the project, change the functions, and create a new MVP. This change in strategy is called management, users, and a pivot. investors. Several iterations of the MVP are This tension relates to developed, with new functions ○ how quickly the software added each time based on the can be developed (time), feedback, until a final product is ○ how much money will be completed. spent (cost), The biggest difference between ○ and how well it will be the iterative and non-iterative built (quality). methodologies is that the full The quality triangle is a simple set of requirements for the concept. system are not known when the It states that for any product or project is launched. service being developed, you As each iteration of the project is can only address two of the released, the statistics and following: time, cost, and quality. feedback gathered are used to So why can only two of the determine the requirements. three factors in the triangle be The lean methodology works considered? best in an entrepreneurial ○ Because each of these environment where a company three components are in is interested in determining if competition with each their idea for a program is worth other! developing. ○ If you are willing and able to spend a lot of money, Sidebar: The Quality then a project can be completed quickly with Triangle high quality results because you can provide more resources towards its development. ○ If a project’s completion date is not a priority, then it can be completed at a lower cost with higher quality results using a smaller team with fewer resources. When developing software or Of course, these are just any sort of product or service, generalizations, and different there exists a tension between projects may not fit this model the developers and the different perfectly. stakeholder groups such as But overall, this model is programming language is an artificial designed to help you language that provides a way for a understand the trade-offs that developer to create programming must be made when you are code to communicate logic in a format developing new products and that can be executed by the computer services. hardware. Over the past few decades, many different types of programming There are other, fundamental reasons languages have evolved to meet a why low-cost, high-quality projects variety of needs. One way to done quickly are so difficult to achieve. characterize programming languages 1) The human mind is analog and is by their “generation.” the machines the software run on are digital. These are Generations of completely different natures that depend upon context and Programming Languages nuance versus being a 1 or a 0. Early languages were specific to the Things that seem obvious to the type of hardware that had to be human mind are not so obvious programmed. Each type of computer when forced into a 1 or 0 binary hardware had a different low-level choice. programming language. In those early 2) Human beings leave their languages very specific instructions imprints on the applications or had to be entered line by line – a systems they design. This is best tedious process. summed up by Conway’s Law (1968) – “Organizations that I. First generation design information systems are languages were called constrained to do so in a way machine code because that mirrors their internal programming was done communication processes.” in the format the Organizations with poor machine/computer could communication processes will read. find it very difficult to So programming was communicate requirements and done by directly setting priorities, especially for projects actual ones and zeroes at the enterprise level (i.e., that (the bits) in the program affect the whole organization. using binary code. Here is an example Programming Languages program that adds 1234 and 4321 using machine As noted earlier, developers create language: programs using one of several programming languages. A Most third-generation languages must be compiled. The developer writes the program in a form known generically as source code, then the compiler converts the source code into machine code, producing an executable file. Well known third-generation languages include BASIC, II. Assembly language is the C, Python, and Java. Here second-generation is an example using language and uses BASIC: English-like phrases rather than IV. Fourth-generation machine-code languages are a class of instructions, making it programming tools that easier to program. enable fast application An assembly language development using program must be run intuitive interfaces and through an assembler, environments. which converts it into Many times, a machine code. fourth-generation Here is a sample program language has a very that adds 1234 and 4321 specific purpose, such as using assembly language. database interaction or report-writing. These tools can be used by those with very little formal training in III. Third-generation programming and allow languages are not specific for the quick to the type of hardware development of on which they run and applications and/or are similar to spoken functionality. languages. Examples of fourth-generation languages include: classify it through the Clipper, FOCUS, SQL, and distinction of whether it is SPSS. compiled or interpreted. A computer language is written Why would anyone want to program in a human-readable form. in a lower level language when they In a compiled language the require so much more work? program code is translated into The answer is similar to why a machine-readable form called some prefer to drive manual an executable that can be run transmission vehicles instead of on the hardware. automatic transmission, namely, ○ Some well-known control and efficiency. compiled languages Lower level languages, such as include C, C++, and assembly language, are much COBOL. more efficient and execute Interpreted languages require much more quickly. a runtime program to be The developer has finer control installed in order to execute. over the hardware as well. Each time the user wants to run Sometimes a combination of the software the runtime higher and lower level program must interpret the languages is mixed together to program code line by line, then get the best of both worlds. run it. Interpreted languages are The programmer can create the overall generally easier to work with but structure and interface using a also are slower and require more higher-level language but use lower system resources. Examples of level languages for the parts of the popular interpreted languages program that are used many times, include: require more precision, or need greater ○ BASIC, PHP, PERL, and speed. Python. The web languages of HTML and JavaScript are also considered interpreted because they require a browser in order to run. ○ The Java programming language is an interesting Compiled vs. Interpreted exception to this classification, as it is Besides identifying a actually a hybrid of the programming language based two. on its generation, we can also ○ A program written in Java performed while an is partially compiled to object-oriented program create a program that can focuses on the different items be understood by the being manipulated. Java Virtual Machine (JVM). ○ Each type of operating system has its own JVM which must be installed before any program can be executed. ○ The JVM approach allows a single Java program to Consider a human resources run on many different system where an “EMPLOYEE” types of operating object would be needed. systems. If the program needed to retrieve or set data regarding an Procedural vs. employee, it would first create an employee object in the Object-Oriented program and then set or retrieve A procedural programming the values needed. language is designed to allow a Every object has properties, programmer to define a specific which are descriptive fields starting point for the program associated with the object. and then execute sequentially. Also known as a Schema, it is All early programming the logical view of the object languages worked this way. (i.e., each row of properties As user interfaces became more represents a column in the interactive and graphical, it actual table, which is known as made sense for programming the physical view). languages to evolve to allow the The employee object has the user to have greater control over properties “EMPLOYEEID”, the flow of the program. “FIRSTNAME”, “LASTNAME”, An object-oriented “BIRTHDATE” and “HIREDATE”. programming language is An object also has methods designed so that the which can take actions related programmer defines “objects” to the object. that can take certain actions There are two methods in the based on input from the user. example. In other words, a procedural ○ The first is program focuses on the “ADDEMPLOYEE()”, which sequence of activities to be will create another Editor. employee record. ○ An editor is used for ○ The second is writing the program. “EDITEMPLOYEE()” which ○ Commands are will modify an employee’s automatically color coded data. by the IDE to identify Programming Tools command types. ○ Example: a programming To write a program, you need comment might appear little more than a text editor and in green and a a good idea. programming statement However, to be productive you might appear in black. must be able to check the Help system. syntax of the code, and, in some ○ A help system gives cases, compile the code. detailed documentation To be more efficient at regarding the programming, additional tools, programming language. such as an Integrated Compiler/Interpreter. Development Environment ○ The compiler/interpreter (IDE) or computer-aided converts the software-engineering (CASE) programmer’s source tools can be used. code into machine language so it can be Integrated Development executed/run on the computer. Environment Debugging tool. ○ Debugging assists the developer in locating errors and finding solutions. Check-in/check-out mechanism. ○ This tool allows teams of programmers to work simultaneously on a For most programming languages an program without Integrated Development Environment overwriting another (IDE) can be used to develop the programmer’s code. program. An IDE provides a variety of Examples of IDEs tools for the programmer, and usually includes: Microsoft’s Visual Studio and Oracle’s Eclipse. Visual Studio is the IDE for all of These definitions are handled Microsoft’s programming through the use of HTML tags languages, including Visual with text between the tags or Basic, Visual C++, and Visual C#. brackets. Eclipse can be used for Java, C, For example, an HTML tag can C++, Perl, Python, R, and many tell the browser to show a word other languages. in italics, to link to another web page, or to insert an image. CASE Tools The HTML code below selects two different types of headings While an IDE provides several (h1 and h2) with text below each tools to assist the programmer heading. in writing the program, the code Some of the text has been still must be written. italicized. The output as it would Computer-Aided Software appear in a browser is shown Engineering (CASE) tools allow a after the HTML code. designer to develop software with little or no programming. Instead, the CASE tool writes the code for the designer. CASE tools come in many varieties. Their goal is to generate quality code based on input created by the designer. Sidebar: Building a Website In the early days of the World While HTML is used to define Wide Web, the creation of a the components of a web page, website required knowing how Cascading Style Sheets (CSS) are to use Hypertext Markup used to define the styles of the Language (HTML). components on a page. Today most websites are built The use of CSS allows the style with a variety of tools, but the of a website to be set and stay final product that is transmitted consistent throughout. to a browser is still HTML. For example, a designer who At its simplest HTML is a text wanted all first-level headings language that allows you to (h1) to be blue and centered define the different components could set the “h1″ style to match. of a web page. The following example shows generate the HTML and how this might look. CSS for them. Tools such as Adobe Dreamweaver allow the designer to create a web page that includes images and interactive elements without writing a single line of code. However, professional web designers still need to learn HTML and CSS in order to have full control over the web pages they are developing Sidebar: Building a Mobile App In many ways building an application for a mobile device is exactly the same The combination of HTML as building an application for a and CSS can be used to traditional computer. Understanding create a wide variety of the requirements for the application, formats and designs and designing the interface, and working has been widely adopted with users are all steps that still need by the web design to be carried out. community. The standards for HTML So, what’s different about building an are set by a governing application for a mobile device? body called the World Wide Web Consortium. Five primary differences The current version of 1) Breakthroughs in component HTML 5 includes new technologies. standards for video, audio, Mobile devices require and drawing. multiple components When developers create a that are not only smaller website, they do not write but more energy-efficient it out manually in a text than those in full-size editor. Instead, they use computers (laptops or web design tools that desktops). For example, low-power virtually anywhere (e.g., CPUs combined with banking, travel, driving longer-life batteries, directions, and investing). touchscreens, and Wi-Fi Having access to the enable very efficient cloud is needed to keep computing on a phone, mobile device size and which needs to do much power use down. less actual processing 5) App stores have simplified than their full-size acquisition. counterparts. Developing, acquiring, 2) Sensors have unlocked the and managing apps has notion of context. been revolutionized by The combination of app stores such as Apple’s sensors like GPS, App Store and Google gyroscopes, and cameras Play. enables devices to be Standardized aware of things like time, development processes location, velocity, and app requirements direction, altitude, allow developers outside attitude, and Apple and Google to temperature. create new apps with a Location in particular built-in distribution provides a host of channel. benefits. Average low app prices 3) Simple, purpose-built, (including many of which task-oriented apps are easy to that are free) has fueled use. demand. Mobile apps are much In sum, the differences between narrower in scope than building a mobile app and other types enterprise software and of software development look like this: therefore easier to use. Likewise, they need to be intuitive and not require any training. 4) Immediate access to data extends the value proposition. In addition to the app providing a simpler Building a mobile app for both iOS and interface on the front end, Android operating systems is known as cloud-based data services cross platform development. provide access to data in There are a number of third-party near real-time, from toolkits available for creating your app. Many will convert existing code such as tested and many of the HTML5, JavaScript, Ruby, C++, etc. bugs have already been However, if your app requires worked out. It is the role sophisticated programming, a cross of a systems integrator to platform developer kit may not meet make various purchased your needs. systems and the existing Responsive Web Design (RWD) systems at the focuses on making web pages render organization work well on every device: desktop, laptop, together. tablet, smartphone. Through the There are also disadvantages to concept of fluid layout RWD purchasing software. automatically adjusts the content to ○ First, the same software the device on which it is being viewed. you are using can be used by your competitors. If a Build vs Buy company is trying to differentiate itself based When an organization decides on a business process that a new program needs to be incorporated into developed, they must purchased software, it will determine if it makes more have a hard time doing so sense to build it themselves or if its competitors use the to purchase it from an outside same software. company. This is the “build vs. ○ Another disadvantage to buy” decision. purchasing software is There are many advantages to the process of purchasing software from an customization. If you outside company. purchase software from a ○ First, it is generally less vendor and then expensive to purchase customize it, you will have software than to build it. to manage those ○ Second, when software is customizations every purchased, it is available time the vendor provides much more quickly than an upgrade. This can if the package is built become an in-house. Software can administrative headache, take months or years to to say the least. build. A purchased Even if an organization package can be up and determines to buy software, it running within a few still makes sense to go through days. the same analysis as if it was ○ Third, a purchased going to be developed. This is an package has already been important decision that could have a longterm strategic End-User Computing (EUC) impact on the organization. In many organizations, application development is not Web Services limited to the programmers and Chapter 3 discussed how the analysts in the information move to cloud computing has technology department. allowed software to be viewed Especially in larger as a service. organizations, other One option, known as web departments develop their own services, allows companies to department-specific license functions provided by applications. other companies instead of The people who build these writing the code themselves. applications are not necessarily Web services can greatly trained in programming or simplify the addition of application development, but functionality to a website. they tend to be adept with Suppose a company wishes to computers. provide a map showing the A person who is skilled in a location of someone who has particular program, such as a called their support line. spreadsheet or database By utilizing Google Maps API package, may be called upon to web services, the company can build smaller applications for build a Google Map directly into use by their own department. their application. This phenomenon is referred to Or a shoe company could make as end-user development, or it easier for its retailers to sell end-user computing. shoes online by providing a shoe End-user computing can have sizing web service that the many advantages for an retailers could embed right into organization. their website. ○ First, it brings the Web services can blur the lines development of between “build vs. buy.” applications closer to Companies can choose to build those who will use them. an application themselves but Because IT departments then purchase functionality are sometimes from vendors to supplement backlogged, it also their system. provides a means to have software created more quickly. Many organizations encourage end-user computing to reduce the strain on the Sidebar: Risks of EUC’s as IT department. End-user computing does have “Shadow IT” its disadvantages as well. The Federal Home Loan ○ If departments within an Mortgage Company, better organization are known as Freddie Mac, was developing their own fined over $100 million in 2003 in applications, the part for understating its organization may end up earnings. with several applications This triggered a large-scale that perform similar project to restate its financials, functions, which is which involved automating inefficient, since it is a financial reporting to comply duplication of effort. with the Sarbanes-Oxley Act of ○ Sometimes these 2002. different versions of the Part of the restatement project same application end up found that EUCs (such as providing different spreadsheets and databases on results, bringing individual laptops) were feeding confusion when into the General Ledger. departments interact. While EUCs were not the cause ○ End-user applications are of Freddie Mac’s problems (they often developed by were a symptom of insufficient someone with little or no oversight) to have such poor IT formal training in governance in such a large programming. In these company was a serious issue. cases, the software It turns these EUCs were done developed can have in part to streamline the time it problems that then have took to make changes to their to be resolved by the IT business processes (a common department. complaint of IT departments in End-user computing can be large corporations is that it takes beneficial to an organization too long to get things done). provided it is managed. The IT As such, these EUCs served as a department should set form of “shadow IT” that had not guidelines and provide tools for been through a normal rigorous the departments who want to testing process. create their own solutions. Communication between departments can go a long way towards successful use of end-user computing Implementation If the new system has an operational problem or if Methodologies the users are not properly Once a new system is developed prepared, it could prove or purchased, the organization disastrous for the must determine the best organization method for implementation. 2) Pilot implementation. Convincing a group of people to In this methodology a learn and use a new system can subset of the organization be a very difficult process. known as a pilot group Asking employees to use new starts using the new software as well as follow a new system before the rest of business process can have far the organization. reaching effects within the This has a smaller impact organization. on the company and There are several different allows the support team methodologies an organization to focus on a smaller can adopt to implement a new group of individuals. system. Also, problems with the Four Most Popular new software can be contained within the Methodologies group and then resolved. 1) Direct cutover. 3) Parallel operation. In the direct cutover Parallel operations allow implementation both the old and new methodology, the systems to be used organization selects a simultaneously for a particular date to limited period of time. terminate the use of the This method is the least old system. risky because the old On that date users begin system is still being used using the new system while the new system is and the old system is essentially being tested. unavailable. However, this is by far the Direct cutover has the most expensive advantage of being very methodology since work fast and the least is duplicated and support expensive is needed for both implementation method. systems in full. However, this method has 4) Phased implementation. the most risk. Phased implementation provides for different functions of the new Sidebar: Mismanaging application to be gradually implemented Change with the corresponding Target Corporation, which functions being turned operates more than 1,500 off in the old system. discount stores throughout the This approach is more United States, opened 133 conservative as it allows similar stores in Canada an organization to slowly between 2013 and 2015. move from one system to The company decided to another. implement a new Enterprise Resources Planning (ERP) Your choice of an implementation system that would integrate methodology depends on the data from vendors, customers, complexity of both the old and new and do currency calculations systems. It also depends on the degree (US Dollars and Canadian of risk you are willing to take. Dollars). This implementation coincided Change Management with Target Canada’s aggressive expansion plan and stiff As new systems are brought competition from Wal-Mart. online and old systems are A two-year timeline – aggressive phased out, it becomes by any standard for an important to manage the way implementation of this size – did change is implemented in the not account for data errors from organization. multiple sources that resulted in Change should never be erroneous inventory counts and introduced in a vacuum. financial calculations. The organization should be sure Their supply chain became to communicate proposed chaotic and stores were plagued changes before they happen by not having sufficient stock of and plan to minimize the common items, which impact of the change that will prevented the key advantage of occur after implementation. “one-stop shopping” for Change management is a customers. critical component of IT In early 2015, Target Canada oversight. announced it was closing all 133 stores. In sum, “This implementation broke nearly all of the cardinal sins of ERP projects. Target set unrealistic goals, higher-level languages that didn’t leave time for testing, and allow a programmer to write neglected to train employees software for a wide variety of properly machines. Most programmers work with Maintenance software development tools that provide them with integrated After a new system has been components to make the introduced, it enters the software development process maintenance phase. more efficient. The system is in production and For some organizations, is being used by the building their own software organization. does not make the most sense. While the system is no longer Instead, they choose to actively being developed, purchase software built by a changes need to be made when third party to save development bugs are found or new features costs and speed are requested. implementation. During the maintenance phase, In end-user computing, IT management must ensure software development happens that the system continues to outside the information stay aligned with business technology department. priorities and continues to run When implementing new well. software applications, there are several different types of Summary implementation methodologies that must be considered. Software development is about so much more than programming. It is fundamentally about solving business problems. Developing new software applications requires several steps, from the formal SDLC process to more informal processes such as agile programming or lean methodologies. Programming languages have evolved from very low-level machine-specific languages to