This Course has been replaced by CSE557


    Organizational Context of Systems Work


      Before you write code you need to know what is wanted and the platform that you will be targeting. When you start out in an organization you will probably have to use a particular set of tools, methods, and processes. Only if you are working alone (on an app say) will you have a choice... and this may be limitted to the platforms allowed on the device. The first step to getting this information is to understand the way your enterprise works.

      A competent computer professional needs to understand three different things

      1. The technology.
      2. The organization.
      3. The part of the organization in which software is developed.

      This course will focus on the two most important of these three: the enterprise and its developers. The rest of computer science focuses on the technology.

      So here is the first principle of successful computer work:

      (Principle 0): It is not about the computer.

      This course is about how hardware, software, data, procedures, and people work together. The last type of component -- people -- is most important. Often you will need to think about the non-computer parts of systems.... or even systems that have no computers.

      On field trips -- ask questions about all of the above 5 component types...

      This part of the course is about the kinds of organizations you are likely to be working with.


      Computerized systems appear in all kinds of organizations. This class is about the best way to develop software solutions inside any organization. Unfortunately

      (Principle 1): One Size Does Not Fit All.

      You must learn enough skills and knowledge so you can fit them to the kind of organization and the kind of work that is needed. You must also learn to look at the organization your are working for and figure out what computers and software are best for it. You need to learn how to find out how the organization works, and how your work can best improve the way it works. Even if your initial job does not let you make these choices, promotion will depend on learning to do this Systems Analysis and Design well.

      This part of the course reviews the many kinds of organization and provides a kind of map of the possibilities.

      You will find that in many real cases there are two distinct organizations involved: the client or customer system and the development system. You need to understand both because the kind of organization that is good at producing software is not the kind of organization that is good at producing and selling lead pencils. In a large enterprise you will have to learn how the part that develops software works, how the organization invests in new hardware, and how the rest of the organization operates. Then you have a chance of making changes that make you rich and famous -- or at least -- an unsackable employee.

      If you are creating a new organization then you will need to know the different types of organizations so as to pick the best way for it to work. For example: a small enterprise is often very loose and relies on face-to-face communication. But a big enterprise will rely on paperwork and rules. So you need to find a way to move from your initial small company to a larger one.

      Stories about analyzing organizations

        The following provide evidence of the need for computer people to study the organization they are working with. The provide interesting examples. You should enjoy looking at them and can draw some useful conclusion from them. But I don't expect you to memorize them for a future exercise, quiz, or final.

        Unintended consequences of computerization

        "The researchers studied how new electronic patient-status boards were functioning in the emergency departments of two busy, university-affiliated hospitals." and the computer did not do as well as a white board... [ 8992 ]

        If they had analyzed the existing system better the electronic system might be more useful than it's manual predecessor.

        From Dr. Dobbs -- The Election Night Enigma and Other Stories

        Halloween Horror Stories -- [ 184415199 ]

        Story -- the case of the standing soldier

        At the start of the second world war(circa 1940) in England the army discovered that whenever an artillery piece (army talk for big gun) was fired, the manual instructed one soldier to stand still behind and to the side of the gun. The soldier didn't have anything to do. He just had to stand there.

        Before they could be sure that they could change the procedure and so reduce the manpower involved they had to find out why the soldier had to stand there. So they worked their way through earlier manuals. In the 1914-18 version they found out what the soldier was supposed to do: he held the officer's horse!

        Moral: Analyze the activities to find redundant ones.

        Story -- Letter from Australia

        A letter "Outsourcing Consequences", Letter IEEE Computer Magazine V39n8(Sep 2006)pp5+7 by Walter Hill [ MC.2006.317 ] argues that "legacy" systems contain large amounts of useful information that needs to be preserved -- complex business rules, tested data structures, etc. etc.

        This meta-data (data about the data) should be analyzed and organized for future use. We will return to the best ways to analyse and design data later in this course.

      . . . . . . . . . ( end of section Stories about analyzing organizations) <<Contents | End>>

      Describe the kinds of Enterprise that we might be working in

        Recent Realistic Software Projects

        Information technology (and so computers) are part of nearly all enterprises now. Here are some developer diaries [ 201804258?cid=RSSfeed_DDJ_All ] courtesy of Dr. Dobb's Journal of Computer Calisthenics and Orthodontia that should interest you.

        I keep a website for the projects done by students at CSUSB: BA, BS, and MS. They were presented in the CSCI Department Seminar [ ../seminar/ ] series. Here some of the abstracts from a few presentations --

        Web-based book exchange for CSUSB

          The project is a web based system that allows students, faculty, and alumni to post information for the purpose of buying and selling textbooks. This will be used primarily for students, but will also be available to anyone who has a CSUSB email account. The system makes use of MySQL and PHP applications to make a website for students, to give them the option of what to do with their unwanted textbooks. The website uses the same authentication as the CSUSB email system and makes the site available to only those people who have a Cal-State email address.

        Gamma Lambda Web site

          This project develops an easy-to-maintain web site for the Gamma Lambda Chapter of Phi Beta Delta International Honor Society at California State University, San Bernardino, which will manage complete and up-to-date information about the mission, members, officers and all the activities of the honor society.

          This site has many features. It has a password authenticated administrator login feature that enables easy to edit and save member profiles, easy to download word documents, awards and scholarships component, archives component, on-line member nomination capability for faculty, details of the events held by the honor society, executive committee information and access to bulletin board.

          The application is built on a MYSQL database for data storage and uses Java 2 Enterprise Edition (J2EE) technologies. Java Server Pages (JSP) (version 2.0) technology is used to implement the graphical user interface (GUI) and Servlets (version 2.4) handle the controller layer of the core functionalities. The Apache Tomcat application server (version 5.0) is used to host the website. These tools used to implement the Project are Open Source software tools which are free of cost and easy to download and install.


          Radiosurgery is a non-invasive treatment technique applying focused radiation beams. It requires high geometric accuracy as misalignment can cause damage to the surrounding healthy tissues and loss of the therapeutic effect. One promising technique to ensure sub-millimeter alignment accuracy of the radiation beam is to optically monitor the position of the beam axis relative to a frame firmly attached to the patient's skull using an optical alignment system. The optical alignment method requires an Optical Localization System (OLS) and a marker system visible to the OLS in order to derive three-dimensional coordinate transforms needed to align the proton beam axis to its stereotactic target. Once the target and the proton beam are defined in the same coordinate system, an alignment control system can be used to align the beam to the target. In this thesis work, a system for proton beam alignment was studied and optimized in many of its functional areas. The resulting system was named Positioning Alignment Control System (PACS). The PACS system is an integrated and efficient system as a result of the work done on it in the course of this thesis work.

        Large Bank

          A look into the development of an application developed to analyze statistics of employees in a fast paced environment. Customer Service Representatives at the Wells Fargo Home Mortgage call center must worry about every aspect of the call they are on with the customer, from protocol to average handle time. Overlook turns the statistics into data.

        Department of Public Works

          The Department of Public Works was established on March 14, 2000, resulting from the Board approving a restructuring of the county's organization. The newly created department includes divisions for Transportation, Solid Waste, and Surveyor in addition to the Flood Control District.

          The goal of the internship was to redesign Public Works website. This presentation discusses some of the steps taken to redesign the website including the development of a database that displays employment opportunities and the development of online forms for making requests. The website and the online forms were created using HTML, VB, CSS,java_script, Adobe Photoshop CS, and Macromedia Dreamweaver MX 2006. This presentation also discusses the development of the website using ASP technology to interface an MS Access database.

        Department of Airports

          Currently the San Bernardino Department of Airports has an antiquated website. It was created using Front Page and lacks any interaction or relevant information that a user might need when visiting any of the airports that the County operates.

          The new website will incorporate all needed information for all six airports. This will include technical and weather information for the airports, services for each airport, administration contacts, and any current events that may be occurring at the airports. The website will be more user friendly and more interactive.

        County Superintendent of Schools

          Currently San Bernardino County Superintendent of Schools Information Technology Department does not have a way to monitor network configurations and performance testing other than manual tests. The time it takes to run theses manual test can be time-consuming and the data is not collected so these test are done in a case-by-case basis.

          Building and implementing a Network Diagnostic Tool server can solve this problem. The NDT is designed to quickly and easily identify a specific set of conditions that are known to impact network performance. An NDT server can determine: duplex mismatch conditions on Ethernet/FastEthernet links, incorrectly set TCP buffers in the user's computer, or problems with the local network infrastructure. Lastly, the test results may be easily emailed to the appropriate administrator to assist in the problem resolution phase. Implementing this server will allow the department to continuously monitor the computers on the network and diagnose the problems easily.


          I will be presenting the methods, code and software used to develop the game "Dirt Jockey" for the Nintendo Wii. I will show how the game was developed on the PC and Wii simultaneously and how the Wii Remote was implemented in both to increase productivity. I will discuss the programming environment, and the Torque Scripting language, and demonstrate some of the design process behind the game.


      Classification of Enterprises

      Computers and other IT (Information Technology) appears inside all types of enterprise.
      1. Government
      2. Farming
      3. Manufacturing
        1. Computer companies
        2. Other... (Many devices now contain an embedded computer that needs programming.)

      4. Service

      Some enterprises also make a business out of developing software. Here are some types of software companies:
      1. Web Consultancy
      2. GIS (Geographic Information Systems) -- ESRI
      3. Health -- Hospitals, Insurance companies, HMOs, ...
      4. Education -- Blackboard, Peoplesoft, Houghton Mifflin Harcourt, ...
      5. Games -- Surado
      6. Mass marketed software -- OSs, Office Applications, Graphics, ...
      7. Research and/or Teaching Computer Science.
      8. Consultancy: a gun for hire
      9. Other...

      How is a typical organization structured?

      A typical business or other enterprise is divided into levels. A small enterprise can operate with upto a dozen people doing the work, but with more some one usually has to take charge. However, it is difficult to keep track of all the interactions between a group of subordinates as the team grows. With n subordinates, there are n*(n-1)/2 pairs, and n*(n-1)*(n-2)/6 triples.... Typically a manager can only manage no more than 7 subordinates. So in a larger organization a tree structure forms. At the top are the executives and at the bottom the people who do the work. There are often two intermediate levels. So we have:

      The four levels in an enterprise

      1. Top Managers and CEO -- long term planning, strategic goals, resources, ... -- sets policies
      2. Middle Managers and Knowledge workers -- implements policies in terms of procedures etc.
      3. Supervisors and team leaders
      4. Workers

      Flow Diagram of Manufacturing

      Typical businesses employ people and machines to take in raw materials and produce finished products (and waste) that is output to the environment. Meanwhile the money flows in the opposite direction -- being paid into the enterprise to buy products, and then out to pay workers, buy raw materials, and make a profit for the company. Here is an informal flow diagram of a business like this.

      [Picture of flows in Manufacturing]

      Plotting the flow of materials is an excellent way to get an idea of what a business is about. Money flows come next. Information/data flows tend to run parallel to material flow and money flows either in the same direction or the opposite direction. Information can be electronic, paper, speech, post it notes, memos, gestures, phone calls, email, .... Here is a rough diagram of how the parts are connected in a typical manufacturing company.

      The 6 business functions in the non-service sector

      In a typical (larger) non-service sector enterprise you will find the business organized not just by level but also by function. You need to know the 6 classic functions:
      1. Production
      2. Sales
      3. Accounting
      4. Human Resources
      5. Marketing
      6. Information Technology -- -- --(IT)

      You are likely to be working in IT. IT supports the needs of the other five functions. So the next step is to look inside a typical IT department.

      Structure of a typical IT Department circa 2006

      In medium to large enterprises there will be a special IT department that is in charge of data and computers. Here is a list of the parts in a typical IT department:
      1. Application Development
        1. Analysis
        2. Design
        3. Programming
        4. Testing
        5. ...

      2. Systems support and Security
      3. Systems Administration
      4. User Support
      5. Database Administration
      6. Network Administration
      7. Web support

      In a small enterprise you find that you have to fulfill all the above roles. In a large enterprise a team of people are dedicated to the above areas.

      Job Titles in IT

      You will find many specialist jobs within an IT department. Here is list of typical titles, top-down.
      1. CIO -- Chief Information Officer
      2. CSO -- Chief Security Officer
      3. CISO -- Chief Information Security Officer
      4. DBM -- Data Base Manager.
      5. Systems Analyst -- determines risks, threats, problems, opportunities, .... Proposes and selects improvements.
      6. System Architect -- What hardware? how is it networked?
      7. Software Architect -- Specializes in choosing platforms and structure.
      8. Programmer/analyst -- Does both analysis, design, and coding.
      9. Lead Programmer/ Chief Programmer -- leads a team of programmers in a project.
      10. Software Engineer -- "An engineer can do what any clod can do... but cheaper and more reliably"
      11. Programmer -- converts specifications and designs into running code. The peons of the IT field.
      12. Network Engineer -- monitor, fix, and develop the communications network.
      13. ...
      14. Network Administrator -- monitor and fix communications.
      15. Systems Administrator -- take CSCI360!
      16. Technical Support / Help Desk

      Putting together a crack project team

      This is a slightly more dramatic view of the kind of people you need to make an important project successful.

      [ the-team-it-and-how-assemble-one-701 ] (Regular)

      Read this to get a feel for IT.... It won't be on the final... but it is fun.

      People in a Team

      The traditional approach is to describe an ideal team with one person for each vital role. In practice one person may have to play many roles. For example, in the extreme, you may be the whole team. You then have to "wear all the hats". So in this course I will describe a set of disciplines that have in some measure) to be followed to make a project succeed. This approach comes form "RUP" (the Rational Unified Process). Also beware the misconcepcion that you can complete one discipline and then move on to the next. these disciplines are not phases in a process. They are things that have to be done. As the project progresses the mix of disciplines shifts.

      At the start of the project, Management and Infrastructure play a large part. Management involves motivation, leadership, planning, and negotiating for resources among other things. Infrastructure includes setting up and maintaining the hardware and software that the team uses. Shortly however other disciplines start to be needed. Analysis and Business modelling are concerned with understanding the current system with a view to proposing changes. Notice: Management does not stop.... User Liason is also important and is a part of HCI (Human Computer Interface) and Usability disciplines. A useful discipline at this time is Data Analysis aand Data Design that work with existing and desirable forms of data. These shade into, or are part of Data Base Administration. Requirements and Architecture are two inter-related and important disciplines concerned with expressing the client's and stakeholder's needs, and the components (people. hardware, software,...) that will meet the needs. By now the discipline of Security should be making itself felt and having a powerful effect on the architecture. Software Design , Coding , and Testing should start as soon as there is hardware to do the testing, to validate the assumptions made in the Requirements discipline. As the projet processeds effort has to put into Training and Support to make sure that the people in the system can put the system to good use. Finally, in any but the smallest projects, the discipline of CM or Configuration Management has to track every change in every artifact and how the various components in the system fit together, Part of this is keeping backup copies of everything -- or having a system to track changes and allow them to be undone.

      Computer Professionals in Organizations

        Systems Administrators vs Programmers

        [ vampires-programmers-versus-werewolves-sysadmins.html ]

        What does a System analyst do

        A typical systems analyst:
        1. Leads a Team of developers.
        2. Discovers the current situation: problems, opportunities, ...
        3. Clarifies goals for a project.
        4. Proposes alternate options to meet goals.
        5. Helps management evaluate options and alternatives
        6. Helps management select the best option.
        7. Manages development: strategy, planning, organizing, ...
        8. Spots and mitigates risks early (and often).

        What does a programmer do

        A programmer takes the designs provided by analysts and expresses them in computer languages. Computer science degrees focus on programming.

        Can you have people that do analysis and programming

        Yes. In a small enterprise you will find yourself doing both programming and analysis. In fact, if you are a people person who can handle the technical details and debugging then this is the best organization.

        2007-11-20 Tue Nov 20 09:11 Job News

          You might like to compare some of the things we have been doing in this class with the content in the following news cutting from the Association for Computing Machinary.

          Nine Non-Techie Skills that Hiring Managers Wish You Had

          Computerworld, November 12 2007

          While technical skills remain the bedrock of any IT position, an increasing number of employers are now expecting their new hires to have a broad range of skills in areas ranging from communication to accounting to leadership. In their continual attempt to align IT with business, executives and managers say they are increasingly looking for staffers who have solid business acumen and so-called soft skills. The article provides an overview of nine skills employers are looking for, with additional advice on how to acquire them.

          Writing and communication skills remain an important prerequisite for nearly any mid- to high-level IT position. Also important is the skill of being able to understand how to map different business processes and create visual depictions of how business processes flow across functional areas. Thirdly, IT workers must be comfortable with public speaking. For each of these skills, there are clubs, educational programs and courses that can address any shortcomings.

          Other important skills include a familiarity with accounting and the ability to work well with a team. A person who is able to gain consensus and sell an idea not only gets the job done, but makes the group stronger. Hiring managers highly value people who can seize the initiative without the need for constant oversight. They place a premium on an inquisitive mind, the ability to get a point across, and a willingness to take risks. The modern IT person needs to be more of an IT entrepreneur, since he or she is constantly looking to improve upon existing ways of doing things or identify other business and operational opportunities

        What training must employees need to work in security

        I don't have a quick list. You definitely need training in the tools of the trade. You need to know the kinds of holes that have opened up in the past and have knowledge to keep up with the upcoming problems. You also need to know the underlying theory -- in particular network protocols, cryptography, etc. etc.

        2007-10-16 Tue Oct 16 14:10 Dirty Secrets of jobs in IT

        I've got this [ ?p=546 ] from Brian Carlson. I'd like to stress that Programmers and Analysts (Computer Scientists) usually have a better life than described here. The slide show is fun as well.

      . . . . . . . . . ( end of section Computer Professionals in Organizations) <<Contents | End>>

      Types of Enterprise

        Enterprises differ in the following key factors:
        • Economic classification: Farming vs Service vs Manufacturing sectors
        • Size.
        • Profit vs non-profit.
        • Private vs publicly traded companies.
        • Finance.
        • Culture: patterns of communication and norms.

        Size of Organization

        Large organizations are really made up of small organizations.

        Classical Organizational Patterns/Cultures

        The same patterns appear in all parts -- including any specialized software development department. People are the critical components in systems and the naturally seem to organize themselves in four patterns:
        • Spider Web: Small + face-to-face + who do you know + "who do you work for". Example: look at the top of any large organization. Good for rapid novel improvisation. Entrepreneurship. Communication is typically one-to-one with some one-to-many meetings. Agile software development.
        • Cloth/Matrix: Small Teams working on projects: "what are you working on now". Example: most computer projects. Good for coming up with the best single solution to a problem. Meetings are seen as good.
        • Cloud: Small collection of independent professionals. Herding cats. "What are you?" Example: A department in a university, doctors in a practice, lawyers. Good when a lot of expertise is needed but little or no coordination. Considers meetings a waste of time.
        • Greek Temple: Large + Hierarchy. "where do you work". Just about every medium to large organization develops this pattern. Good for stable environments and regular activities. Meetings and paperwork are the life blood of this kind of organization. Tends to depend on the other patterns inside it to stabilize it.
        From "The Gods of Management", Charles Handy, Pan Books (Pbk), 1978.

        Charles Handy (Op. Cit.) also distinguishes three kinds of work that are needed in an enterprise:

        1. Regular -- Repeated.
        2. Development -- Planned Changes.
        3. Fire fighting (My term...)

        Each needs a different culture: Spider web, Cloth, cloud, or temple. Computer people can involved in all of these three types of work.

      Communication Patterns

      FlowFace to FacePaperElectronic
      one-to-oneInterviews, Informalmemo, letterPhone, EMail, IM, SMS,...
      one-to-manyLectures/talksmemo, lettermailing list, blog, Twitter...
      many-to-manyMeetings-Wikis,Google Docs, Dropbox, Facebook ...

      (Close Table)


        There are many types of meetings that you will have to take part in: Committees, Brainstorming sessions, Walkthoughs, Inspections, ...

        When you set up a meeting follow these guidelines (distilled from half-a-dozen books on management):

        1. The meeting must have a purpose. Describe what the final results of the meeting will be. Finish this phrase: "The meeting is finished when....".
        2. Invite people who fit the purpose.
        3. Make sure that the people who are invited know how to prepare and what they need to bring to the meeting.
        4. Plan the agenda, handouts, food, drink,...
        5. Check the room and arrive early.
        6. Start by stating the purpose of the meeting.
        7. Finish when purpose is achieved. Thank people!
        8. Don't forget to schedule the next meeting at the end (if any).
        9. Finish by making sure people know the "deliverables" -- what they must bring to the next meeting.

        When you attend meetings

        1. Prepare well in advance.
        2. Take the deliverables with you.
        3. Don't forget to look the role you are playing.
        4. Listen and take part.
        5. Take notes (it will keep you awake).
        6. After the meeting: Debrief and review notes. File materials.

      2009-10-15 Thu Oct 15 20:57 Ho Ho Only Serious readings on Organizations

      I was brought up on Prof. C. Northcote Parkinson( [ C._Northcote_Parkinson ] Wikipedia, books in the library) and also studied "How to succeed in Business without trying: the dastard's guide" by Shepherd Mead ( 3rd floor of the library HF5386.M48) , and "Up the Organization" by Robert Townsend ( [ 0449205053 ] ). Note -- none of these are essential reading for exams etc. in this class, but they may entertain and educate you for real life.

    . . . . . . . . . ( end of section Organization) <<Contents | End>>

    Any Questions

    Review Questions on Organizations

    1. How is a typical IT department organized?
    2. What are the four levels in a typical enterprise?
    3. What are the 6 functions in the manufacturing/non-service sector?
    4. Draw a pyramidal or conical picture of the 4 levels and 6 functions in a typical manufacturing enterprise.
    5. How important are people to the correct functioning of a system. Why?
    6. Name some steps for attending a meeting.
    7. List some things you must do to set up a meeting.

    . . . . . . . . . ( end of section Review Questions) <<Contents | End>>

. . . . . . . . . ( end of section Organizational Context of Systems Work) <<Contents | End>>


  • TBA::="To Be Announced".
  • TBD::="To Be Done".


    Notes -- Analysis [ a1.html ] [ a2.html ] [ a3.html ] [ a4.html ] [ a5.html ] -- Choices [ c1.html ] [ c2.html ] [ c3.html ] -- Data [ d1.html ] [ d2.html ] [ d3.html ] [ d4.html ] -- Rules [ r1.html ] [ r2.html ] [ r3.html ]

    Projects [ project1.html ] [ project2.html ] [ project3.html ] [ project4.html ] [ project5.html ] [ projects.html ]

    Field Trips [ F1.html ] [ F2.html ] [ F3.html ]

    [ about.html ] [ index.html ] [ schedule.html ] [ syllabus.html ] [ readings.html ] [ review.html ] [ glossary.html ] [ contact.html ] [ grading/ ]