SAD 1 Assignment 5

{ Posted on 9:01 PM by Ariel Serenado }

Consider your school, how do you know that the life cycle was developed specifically for the university. How do we know it meets our needs?

Systems Development Models are also referred as process models. In recent times, process models paved the way for the process of some projects involving information system implementation. The process models are typically used in structured analysis and design methods. The term process models are processes that are classified into a model. Thus, a process model is a description of a process. The same process is being used in repeatedly for the development of many applications and thus, has many instantiations. One possible use of a process model is to prescribe how things should be done as the process along through the documentation and finally into the development of the system or the project; also it is an anticipation of how process should look like. What the process shall be will be determined during actual system development. Moreover, process models are not interchangeable since, the output of the first phase is the input of the succeeding phase. To deliver a quality system, it is critical to know the risks facing your project and to use a model that reduces those risks. The following describes standard project lifecycle models, and reviews their strengths and weaknesses. These standard models can be adapted to fit the industry issues, corporate culture, time constraints and team vulnerabilities which comprise your environment. The lifecycle model is a Process Model; however, there are many kinds of lifecycle models that use different strategies for building software. Your choice of lifecycle model should be based on how a particular model will work in your environment, or for a specific project; e.g. factors that affect choice of lifecycle model include how constrained the project schedule is, how well-known the requirements are, how sophisticated the team is, etc. Your ability to choose the most appropriate model requires that you know several models and the pros and cons of each: a particular model's effectiveness depends on the context in which it is used (McConnell 1996, p. 154).

In this assignment, it talks about the System Development Life Cycle. SDLC is essentially a project management tool used to execute, plan, and control systems development projects. It is a systematic and orderly approach to solve problems. Furthermore, The Systems Development Life Cycle (SDLC), or Software Development Life Cycle in systems engineering and software engineering, is the process of creating or altering systems, and the models and methodologies that people use to develop these systems. The concept generally refers to computer or information systems.

This System Development Life Cycle involves the following general steps:

Planning. Identify the scope and boundary of the problem, and plan the development strategy and goals.

Analysis. Study and analyze the problems, causes, and effects. Then, identify and analyze the requirements that must be fulfilled by any successful solutions.

Design. Designing the solutions, of course in accordance to the problem that has been identified.

Implementation. The stage to apply all the necessary implementation to the project that is going to implement.

Support. Analyze the implemented solution, refine the design and implement improvements to te solution.

Going back to the question, in validating if the life cycle is designed specifically for the university, one has to consider the goals, mission, and vision of the school; to merely know if the cycle relates to the specific goals specified by the university. So that, in the long run of the projects, all things will be motivated not to go beyond the needs of the school. All things will be on the right track as the development process goes along.

Considering University of Southeastern Philippines

The school has the following VMGO…

Mission

USEP shall produce world-class graduates and relevant research and extension through quality education and sustainable resource management. Particularly, USEP is committed to: Provide quality education for students to grow in knowledge, promote their well-rounded development, and make them globally competitive in the world of work; Engage in high impact research, not only for knowledge’s sake, but also for its practical benefits to society; and, Promote entrepreneurship and industry collaboration.


Vision

A PREMIER UNIVERSITY IN THE ASEAN REGION. By becoming a premier university in the ASEAN Region, the USEP shall be a center of excellence and development, responsive and adaptive to fast-changing environments. USEP shall also be known as the leading university in the country that fosters innovation and applies knowledge to create value towards social, economic, and technological developments.

Goals


Aligned with the university’s vision and mission are specific goals for Key Result Areas (KRA) on Instruction; Research, Development, and Extension; and Resource Management


KRA 1. Instruction
Produce globally competitive and morally upright graduates

KRA 2. Research, Development, and Extension (RDE)

Develop a strong R,D,&E culture with competent human resource and responsive and relevant researches that are adopted and utilized for development

KRA 3. Resource Management.

Now, how do we know if the cycle meets the needs of the university?

To merely know that every stage or phase of a certain cycle meets the cycle, in every end of the specific stage one must consider checking if certain goals were realized or if not, maybe some enhancements will be made to satisfy the needs of the university. What is visible in the environment now, is we do not monitor development in every end of a certain stage; instead we do it as the cycle ends. We must have the so-called, DEVELOPMENT MONITORING. T o keep track with the project enhancement projection must be observed. Any progress should be made recognize. Updates and improvements must also be identified and evaluated if it has been going well with what has been bad. Monitoring is an important part for the development. Proper monitoring has get different advantages like you must know the development of the performance.


Resources:

http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle

http://www.usep.edu.ph/version/pages.php?m=50&id=24&pg=static&ntitle=ABOUT%20USEP

SAD Assignment 4: Systems Developemnt Models

{ Posted on 1:57 PM by Ariel Serenado }
Identify and discuss at least 3 systems development models …discuss each phase...

Systems Development Models are also referred as process models. In recent times, process models paved the way for the process of some projects involving information system implementation. The process models are typically used in structured analysis and design methods. The term process models are processes that are classified into a model. Thus, a process model is a description of a process. The same process is being used in repeatedly for the development of many applications and thus, has many instantiations. One possible use of a process model is to prescribe how things should be done as the process along through the documentation and finally into the development of the system or the project; also it is an anticipation of how process should look like. What the process shall be will be determined during actual system development. Moreover, the process model is typically used in structured analysis and design methods. Also, called a data flow diagram (DFD), it shows the flow of information through a system. Each process transforms input to outputs. Moreover, process models are not interchangeable since, the output of the first phase is the input of the succeeding phase. To deliver a quality system, it is critical to know the risks facing your project and to use a model that reduces those risks. The following describes standard project lifecycle models, and reviews their strengths and weaknesses. These standard models can be adapted to fit the industry issues, corporate culture, time constraints and team vulnerabilities which comprise your environment. The lifecycle model is a Process Model, however, there are many kinds of lifecycle models that use different strategies for building software. Your choice of lifecycle model should be based on how a particular model will work in your environment, or for a specific project; e.g. factors that affect choice of lifecycle model include how constrained the project schedule is, how well-known the requirements are, how sophisticated the team is, etc. Your ability to choose the most appropriate model requires that you know several models and the pros and cons of each: a particular model's effectiveness depends on the context in which it is used (McConnell 1996, p. 154).

To begin this assignment, there is a hundred of system development life cycle or what is also referred as process models. Some models do really have the same phases it differs only in the number of iterations, flexibility, and the approach to the system being developed. The following are the traditional and recently used systems development models or process models with strengths and weaknesses.

• Pure Waterfall
• Modified Waterfall
• Spiral
• Agile Software Development
• Extreme Programming

• Joint Application Development
• Design-to-Tools
• Rapid Application Development
• Scrum

Of all the process models, waterfall lifecycle is the most traditional of them all. This model has a top-down, or linear ordering to it. Normally, no phase is repeated, however, there may be overlapping between the different phases if necessary. Generally, the output of each stage is the input for the next. Waterfall has two types – pure waterfall and the modified waterfall.

Pure Waterfall

This is the classical system development model. It consists of discontinuous phases – Concept, Requirements, Architectural design, detailed design, Coding and Development, Testing and the Implementation. This kind of model works effectively to those projects with well defined and understood system requirements or in well understood technical tools. In general, its weakness is that pure waterfall is not advisable if rapid application is needle.

Strength: Structure lessens wasted effort, so it is convenient to those who are technically weak
Weakness: Not Flexible, the process should not be done up front.

Modified Waterfall

The modified waterfall use the same phases as the pure waterfall, but it is not done for a discontinuous basis. This enables the phases to overlap when added. This kind of model can split into subprojects at an appropriate phase. Flexible – risk reduction spirals can be added to the top of the waterfall to reduce risk prior to the waterfall phases. The model can be further modified using options as prototyping, JAD sessions or methods of requirements gathering done in overlapping places. Unforeseen interdependencies can create problems.

Spiral

This kind of model differs from waterfall cycle in terms of the linear approach. Some phases in the spiral are done repeatedly – phases such as planning, development, construction, and evaluation iterated until the development is done.

Strengths: The iterations enable the highest risks to be addresses at the lowest total cost. It is assumed that as the cost increases, risk decreases.
Weaknesses: It is complicated thus, requires attentive and knowledgeable management.

Agile Software Development

Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation. It also refers to a group of software development methodologies based on the iterative development, where requirements and solutions evolve through collaboration between self organizing cross-functional teams.

Strengths: Minimizes feature creep by developing in short intervals resulting in miniature software projects mini-increments.
Weaknesses: Short iteration may not add enough functionality, leading to significant delays in final in final iterations. Agile method produces very little written documentation.

Extreme Programming

Extreme programming lowers the cost of changes through quick spirals of new requirements. However, programmers engaged in extreme programming are required to work in pairs which may be difficult for some developers which may result in more redesign effort in the long run.

Scrum

Is an iterative incremental framework for managing complex work, this is commonly used with agile software development. Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as s general project/program management approach.

Strength: The model allows you to prioritize work, completing items in a series of short iterations or sprints, daily measured progress and communication
Weaknesses: Its reliance o project teams and rejection of the traditional centralized process control may paralyze the team.

Evolutionary Prototyping

This model involves heavy user involvement while developers generate functional requirements and physical design specifications simultaneously. This model uses a lot of iterations; after each iteration, the result is analyzed by the customer. The response creates the next level of requirements an defines the next iteration.

Strength: The customer can see progress and can have the development monitoring. Useful when requirements are changing rapidly, when the customer is reluctant to a set of requirements.
Weaknesses: There is no way to know how much iteration to make. It is possible to know how long the project will take.

Rapid Application Development

This model focuses on building applications in a very short amount of time with comprise in usability, features, and/or execution speed. The emphasis on speed helps ensure that the client’ system requirements will not change as the process of development will start.

Strengths: Promotes strong collaboration and dynamic gathering of requirements. Clients are actively participating in prototyping, writing test cases and performing unit testing. RAD have the potential for providing a good framework for faster product development with enhanced code quality, but successful implementation and benefits often hinge on project type, schedule, software release and corporate culture.
Weaknesses: Dependency on cohesive teams and individual commitment to the project. Decision
making relies on the feature functionality.

Code and fix

If you don’t use methodology, it is likely you are doing code and fix. Code and fix rarely produces useful results. It is very dangerous as there is no way to assess progress, quality or risk.

Strengths: No time spent on overhead planning, documentation, quality assurance, standards enforcement or other non-coding activities.
Weaknesses: Fundamental flaws in approach do not show up quickly, often requiring work to be thrown out

Now, let’s discuss phases of some models.

waterfall model


The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design (validation), Construction, Testing and maintenance.

Feasibility

The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.

Requirement Analysis and Design

Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

Implementation

In this phase the designs are translated into code. Computer programs are written using a conventional programming language or an application generator. Programming tools like Compilers, Interpreters, Debuggers are used to generate the code. Different high level programming languages like C, C , Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.

Testing

In this phase the system is tested. Normally programs are written as a series of individual modules, these subject to separate and detailed test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. The system is tested to ensure that interfaces between modules work (integration testing), the system works on the intended platform and with the expected volume of data (volume testing) and that the system does what the user requires (acceptance/beta testing).

Maintenance

Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. There are many reasons for the change. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period. You need to keep up with the project. In part this does mean that you should watch for bugs and other errors that are reported to you, and fix them. Yes, even your extensive testing regime may well have missed the odd issue here and there!

Just as importantly, though, is to keep developing the project. New ideas, new improvements, and simply bringing things up to date with the changing world (new currency for example!) are just as important to maintaining a project. Software and websites rarely need to die, as long as they are maintained. Look at everything from Windows to the Yahoo! website - the key to their longevity is that they are constantly renewed and updated. Keep the project fresh, relevant and useful, and it will survive.

Scrum Methodology


It is a practice-based methodology for modeling and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for modeling software that can be applied on a software development project in a more flexible manner than traditional modeling methods. The system development process is complicated and complex. Therefore maximum flexibility and appropriate control is required. Evolution favors those that operate with maximum exposure to environmental change and have optimized for flexible adaptation to change. Evolution deselects those who have insulated themselves from environmental change and have minimized chaos and complexity in their environment. An approach is needed that enables development teams to operate adaptively within a complex environment using imprecise processes. Complex system development occurs under rapidly changing circumstances. Producing orderly systems under chaotic circumstances requires maximum flexibility. The closer the development team operates to the edge of chaos, while still maintaining order, the more competitive and useful the resulting system will be. Langton has modeled this effect in computer simulations13 and his work has provided this as a fundamental theorem in complexity theory.

Characteristics of SCRUM methodology are:

• The first and last phases (Planning and Closure) consist of defined processes, where all processes, inputs and outputs are well defined. The knowledge of how to do these processes is explicit. The flow is linear, with some iteration in the planning phase.
• The Sprint phase is an empirical process. Many of the processes in the sprint phase are unidentified or uncontrolled. It is treated as a black box that requires external controls. Accordingly, controls, including risk management, are put on each iteration of the Sprint phase to avoid chaos while maximizing flexibility.
• Sprints are nonlinear and flexible. Where available, explicit process knowledge is used; otherwise tacit knowledge and trial and error is used to build process knowledge. Sprints are used to evolve the final product.
• The project is open to the environment until the Closure phase. The deliverable can be changed at any time during the Planning and Sprint phases of the project. The project remains open to environmental complexity, including competitive, time, quality, and financial pressures, throughout these phases.

SCRUM has the following groups of phases:

Pregame
• Planning : Definition of a new release based on currently known backlog, along with
an estimate of its schedule and cost. If a new system is being developed, this phase
consists of both conceptualization and analysis. If an existing system is being
enhanced, this phase consists of limited analysis.
• Architecture : Design how the backlog items will be implemented. This phase
includes system architecture modification and high level design.
Game
• Development Sprints : Development of new release functionality, with constant
respect to the variables of time, requirements, quality, cost, and competition.
Interaction with these variables defines the end of this phase. There are multiple,
iterative development sprints, or cycles, that are used to evolve the system.

Postgame
Closure : Preparation for release, including final documentation, pre-release staged
testing, and release.

Phase Steps

Each of the phases has the following steps:
Planning
• Development of a comprehensive backlog list.
• Definition of the delivery date and functionality of one or more releases.
• Selection of the release most appropriate for immediate development.
• Mapping of product packets (objects) for backlog items in the selected release.
• Definition of project team(s) for the building of the new release.
• Assessment of risk and appropriate risk controls.
• Review and possible adjustment of backlog items and packets.
• Validation or reselection of development tools and infrastructure.
• Estimation of release cost, including development, collateral material, marketing,
training, and rollout.
• Verification of management approval and funding.
Architecture/High Level Design
• Review assigned backlog items.
• Identify changes necessary to implement backlog items.
• Perform domain analysis to the extent required to build, enhance, or update the
domain models to reflect the new system context and requirements.
• Refine the system architecture to support the new context and requirements.
• Identify any problems or issues in developing or implementing the changes
• Design review meeting, each team presenting approach and changes to implement
each backlog item. Reassign changes as required.
Closure
When the management team feels that the variables of time, competition, requirements, cost, and quality concur for a new release to occur, they declare the release “closed” and enter this phase. This phase prepares the developed product for general release. Integration, system test, user documentation, training material preparation, and marketing material preparation are among closure tasks.

Rapid Application Development (RAD)


Rapid Application Development (RAD) refers to a type of software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements
Below is a brief overview of the RAD process, which consists of four lifecycle stages: Requirements Planning, User Design, Construction, and Implementation. Also described are typical pre and post project activities.

The Gantthead project management portal is an excellent resource that contains more far more details on the process and additionally contains sample project plans and details on techniques such as time boxing, project estimation, recommended tools, and work breakdown structures. Do not begin your project without at least looking at this vital resource. Additional information is also available on the slightly dated but otherwise excellent website put together by Walter Maner of Bowling Green State University.

Pre-Project Activities

As with any project it is vital to identify the details of the project up front in some form of document such as a Project Management Plan (PMP). All parties should agree up front on details such as potential risks and mitigation strategies, a development schedule including resources, milestones and deliverables such as a completed data model or types of documentation to deliver, an approach including standards, tools, and technologies to be used, a desired end result, terms and constraints and financial considerations including budget and cost of tools.

Requirements Planning

The Requirements Planning stage (also known as the Concept Definition Stage) consists of meetings between a requirements planning team and key client users. Meetings focus on both developing a high level list of initial requirements as well as setting the project scope. The requirements planning team identifies primary business functions (such as "sell widgets to the Acme corporation") and initially breaks them down into business entities (such as Product, Sale, Company, Sales Person). The Requirements Planning stage should result in a list of entities as well as action diagrams that define the interactions between processes and data elements and should take between one and four weeks. Ideally requirements should be captured in a structured tool such as IBM's Rational Rose or Rational RequisitePro or Microsoft's Visio (the enterprise edition, since it can generate databases from a data model) rather than an unstructured document (see the tools section below for more details). At the end of the Requirements Planning stage project estimation should be considered. The International Function Point Users Group as well as the International Software Benchmarking Standards Group offer project estimation methods based on "function points" along with a vast database of actual projects with the effort involved to complete them.

User Design

During the User Design stage (also known as the Functional Design Stage) the analysis team meets with end users in Joint Application Development (JAD) Workshops. During the workshops the analysis team flushes out the requirements in more detail, develops the entities developed in the Requirements Planning into a data model (Entity Relationship Diagram), formalizes business rules, develops test plans, and creates screen flows and layouts for essential parts of the system. During the later half of the User Design stage the development team (also known as the SWAT or Skilled Workers with Advanced Tools team) aids the analysis team in activities such as creating a working data model that can be converted to a functional database, and in identifying reusable components (such as Microsoft's Application Blocks, which, incidentally, are an excellent time saver on Microsoft .Net projects). Again, as mentioned in the Requirements Planning stage, all requirements should be captured in a tool.

Before moving to the Construction Stage the analysis team should focus on next steps by flushing out the project plan and focusing on effort estimates. Focusing on next steps is an important element of the User Design phase, because the initial iteration of the Construction Phase should focus on a feature light prototype. In order to keep development iterations as short as possible, and to gain the maximum benefit of RAD's agile nature, core requirements should be identified and targeted for the initial prototype, and secondary requirements should be identified and targeted for future development iterations. Beyond a vertical limiting of scope, such as removing entities or use cases from the initial scope, a horizontal type limiting of scope should be considered as well, such as not developing field validation, not developing file upload/download capabilities, or focusing on just the strengths of the particular CASE tool being used without manually adding much developer customization.

The User Design stage should last between three and five weeks.

Construction


During the Construction Phase the Design Team develops the application in iterative cycles of development, testing, requirements refining, and development again, until the application is complete. Development iterations should last between one day and three weeks. The development team should convert the Data Model that was developed during the User Design Stage into a functional database (all data modeling tools have this ability). The CASE tool used (which may be the same as the data modeler or a separate tool) should now generate large sections of the application, at a minimum data access code, but preferably business functions and user interface as well.

At Automated Architecture, our Blue Ink product will read information from database that has been generated, pre-generate answers to meta-data about the project (in other words make a best guess as to the details of your application that you may then customize in more detail later), and generate an entire application that can serve as a working prototype without a line of development code. A prototype developed in this way may reduce the first iteration of development to days instead of weeks.

It is vital to keep each development iteration on track, and functionality may need to be dropped to keep development within the time box. Management plays a vital part in ensuring everything is progressing according to schedule, keeping the customer in the loop regarding changes in the functionality, and keeping the team motivated.
Once the prototype has been developed (within its time box), the construction team tests the initial prototype using test scripts developed during the User Design stage, the design team reviews the application, the customer reviews the application and finally the construction team, design team, and customer meet in Focus Group meetings in order to determine the requirements for the next iteration. Focus group meetings consist of facilitated sessions that last about two hours. The facilitator should know ahead of time the areas that require discussion and should ensure that each issue receives enough attention, keeping a list of issues that require additional attention in a separate meeting as appropriate.

After the meeting (additional meetings may be necessary), the development team and design team should update the requirements, data model, test scripts, and project plan as during the User Design stage. Again the teams should identify core and secondary requirements, plan out the next development iteration, keep the user in the loop regarding what will be done, and then start the next iteration of development over again. As the system approaches a sufficient state the development team should focus on the system as a finished application rather than a prototype.
During the final iterations of development the design team should update user documentation, perform User Acceptance Testing and define the steps necessary for deployment/implementation.

Implementation

The Implementation Stage (also known as the Deployment Stage) consists of integrating the new system into the business. The Development Team prepares data (such as lookup values like States and Countries) and implements interfaces to other systems. The Design Team trains the system users while the users perform acceptance testing. and are trained by the Design Team. The Design Team helps the users transfer from their old procedures to new ones that involve the new system, trouble shoots after the deployment, and identifies and tracks potential enhancements (read wish list). The amount of time required to complete the Implementation Stage varies with the project.

Post-Project Activities

As with any project final deliverables should be handed over to the client and such activities should be performed that will benefit future projects. Specifically it is a best practice for a Project Manager to review and document project metrics, organize and store project assets such as reusable code components, Project Plan, Project Management Plan (PMP), and Test Plan. It is also a good practice to prepare a short lessons learned document.

References:

http://www.blueink.biz/RapidApplicationDevelopment.aspx
http://acmesoffware.com/acme/default.asp
http://www.startvbdotnet.com/sdlc/sdlc.aspx
http://jeffsutherland.com/oopsla/schwapub.pdf

SAD Assignment 3: Roles of a system analyst as s project manager

{ Posted on 1:55 PM by Ariel Serenado }
Discuss the role of a systems analyst as a project manager. You need to interview an analyst/project manager …

Actually, SYSTEM ANALYST AS A PROJECT MANAGER is our topic for the reporting in System Analysis and Design 1. Luckily, just one day before the schedule we did an interview with the system analyst of AMS Group of Companies. Unfortunately, the time did not permit us to share some information that our group gathered from the said interview since, the group was not able to finish their reports with sharing in the specified time. Our group is expected to have the reporting the first meeting next year.

System Analyst is responsible for researching, planning, coordinating and recommending software and system choices to meet an organization's business requirements. The systems analyst plays a vital role in the systems development process. A successful systems analyst must acquire four skills: analytical, technical, managerial, and interpersonal. Analytical skills enable systems analysts to understand the organization and its functions, which helps him/her to identify opportunities and to analyze and solve problems. Technical skills help systems analysts understand the potential and the limitations of information technology. The systems analyst must be able to work with various programming languages, operating systems, and computer hardware platforms. Management skills help systems analysts manage projects, resources, risk, and change. Interpersonal skills help systems analysts work with end users as well as with analysts, programmers, and other systems professionals.

Most systems analysts work with specific types of computer systems—for example, business, accounting, and financial systems or scientific and engineering systems—that vary with the kind of organization. Analysts who specialize in helping an organization select the proper system hardware and software are often called system architects or system designers. Analysts who specialize in developing and fine-tuning systems often have the more general title of systems analysts. A systems analyst designs new IT solutions to improve business efficiency and productivity. The work might be for an external client or an internal client (such as a department within the same organization). Working closely with the client, analysts examine existing business models and flows of data, discuss their findings with the client, and design an appropriate improved IT solution. They produce outline designs and costing of new IT systems, specifying the operations the system will perform, and the way data will be viewed by the user, present their design to the client and, once it is approved, work closely with the client team to implement the solution.

According to Mr. Gemrald, a system analyst who is more focused on system design and the technical aspects of the solution. The systems analyst’s role is mostly system solution centric and does not participate in the requirements gathering process and is involved in the creation of functional and technical specifications. In the system development life cycle, System Analyst is generally involved only in the first phase of the cycle, which includes system requirements gathering and specifications but of course, the system analyst has some task to get involved in some phases but as he mentioned that system analysts are generally involved only in the first and second phase of developing a cycle. Moreover, this is the professional who, once requirements are clearly defined, creates the functional solution and, by working with the technical team (architect and developers), creates technical specifications and designs. However, Mr. Gemrald is not just a system analyst he is also the project manager whenever they developed some systems that the company wants them to create, that is why in the long run of the cycle he is always involved up to the maintenance. One thing that Mr. Gemrald had told us is, “I’m not a one-man-team”. Furthermore, the team where he is in is not practicing project close-out whenever a phase has been finished; for they are working in-house for them it’s not that vital to practice so. That is only applicable to those analyst whore are engaged in outsourcing, he added.

Most common roles of System Analyst are the following:

1) System analysis
It includes system's study in order to get facts about business activity. It is about getting information and determining requirements. Here the responsibility includes only requirement determination, not the design of the system.
2) System analysis and design:
Here apart from the analysis work, Analyst is also responsible for the designing of the new system/application.
3) Systems analysis, design, and programming:
Here Analyst is also required to perform as a programmer, where he actually writes the code to implement the design of the proposed application. For Mr. Gemrald, he admit that the team really lacks programmers that is why there are really instances where he is into programming, hence it is one also of the nature of an analyst having the logical and analytical skills specifically programming skills.

Due to the various responsibilities that a system analyst requires to handle, he has to be multifaceted person with varied skills required at various stages of the life cycle. In addition to the technical know-how of the information system development a system analyst should also have the following knowledge.

Business knowledge: As the analyst might have to develop any kind of a business system, he should be familiar with the general functioning of all kind of businesses. Mr. Gemrald noted that once you are a system analyst it is assumed that you know some aspects in business fields, especially to him that most of the system that his team is developing are enterprise systems, meaning it involves business-related transactions.
Interpersonal skills: Such skills are required at various stages of development process for interacting with the users and extracting the requirements out of them. Of course, as s system analyst you need to be in connected with the client, you have to build common channel of communication between the developer and the user, to attain the specific requirement s that the uses need most.
Problem solving skills: A system analyst should have enough problem solving skills for defining the alternate solutions to the system and also for the problems occurring at the various fields. It is vital to a system analyst to be flexible in terms of providing solutions in systems with various structures of data and information. For in programming, all things are subjective, you cannot just stick to a single programming language to provide solutions, there programming languages which cater built-in functionalities an more convenient to use.

References:
http://www.freetutes.com/systemanalysis/role-of-system-analyst.html
http://en.wikipedia.org/wiki/Systems_analyst

SAD 1 Assignment 2: Characteristics of a good system ananlyst to be more effective in any modeling process

{ Posted on 1:52 PM by Ariel Serenado }
“Interview a System Analyst and ask what skills and characteristics must a system analyst develop in order to be more effective in any design modeling process”

Last week’s meeting in System Analysis and Design our group should have reported the chapter 3 which is on “System Analyst as a Project Manager”. Unfortunately, the report by the 2nd group exceed in the required time to finish that’s why we were not able to deliver our report. To gather much information on our report we did interview the MIS Head/System Analyst of the Andres M. Soriano (AMS) Group of Companies, Mr. Gemrald Glibara.

In the interview, we talk mostly on becoming a system analyst, what are those frustrations towards the user and how they develop information systems. At some point in our interview, we asked him about the characteristics of being a system analyst; he made mentioned the following:
• To be able to cope with technological changes
• To cope with the frustrations on implementing information system
• To be able to communicate well
• Solution provider to the current demand
• Wide capacity of thinking

At some point also, we talked on the process model(s) that their department is utilizing in developing projects. Later will be discussed on the process that AMS is using.

Nowadays, technological advances come so rapidly in the computer field that continuous study is necessary to remain competitive. Employers, hardware and software vendors, colleges and universities, and private training institutions offer continuing education to help workers attain the latest skills. In this fast-paced technological environment, it is a must that an analyst has good knowledge of the concepts and details of the Systems Development Life Cycle, project methodologies, and the development of standards and procedures for the systems development and integration process.

What is a System Development Cycle (SDLC)?

The Systems Development Life Cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system
development project from an initial feasibility study through maintenance of the completed application.

Various SDLC methodologies have been developed to guide the processes involved including the waterfall model (the original SDLC method), rapid application development (RAD), joint application development (JAD), the fountain model and the spiral model. Mostly, several models are combined into some sort of hybrid methodology. Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually done in parallel with the development process. Some methods work better for specific types of projects, but in the final analysis, the most important factor for the success of a project may be how closely particular plan was followed.

What is the importance of SDLC?

The importance of using software development lifecycle is that it helps systems analyst to develop an information system in an organized way for, it has phases -- including requirements, validation, training, and user ownership through investigation, analysis, design, implementation, and maintenance. In developing project using SDLC you cannot jump into the next phase if the current phase you are working is not yet done for, in most cases the output of the first phase happened to be the input of the succeeding phase. That’s why for the documenter to feel at ease in documenting the project he/she must set timelines and work breakdown structures to manage each phases of the cycle effectively.

In order for an analyst to become effective in any design modeling process, he\she should acquire the following skills:

Interpersonal skills
These includes the following:

1: Communication:

It is an interpersonal quality; the system analyst must have command on English language. Communication is necessary to establish a proper relationship between system analyst and the user.
Communication is need to gather correct information.

2: Understanding:

This is also an interpersonal quality of the system analyst, understanding includes :
a. Understanding of the objectives of the organization.
b. Understanding the problems of the system.
c. Understanding the information given by the user or employee of the organization.

3: Selling:

The ideas of the system analyst are his products which he sells to the manager of a particular organization. The system analyst must have not only the ability of creating ideas but also to sell his ideas.

4: Teaching:

It is also an interpersonal quality. A system analyst must have teaching skills. He must have the ability to teach team members and the users. He has to teach about the new system and also about the proper use of the new system.

5: New technology:

An analyst is an agent of change, he or she must have the ability to show all the benefits of the candidate system with the new technological advancement, he must knew about.

Yes. Analyst is an agent of change, but how will an analyst cope up with the frustrations on implementing projects. In this scenario communication skills will really TEST the analyst on how will he manage the people who are considered “resistant to changes”. In any organization, you cannot expect that everyone is adaptive to the changes, some people think that the usual thing is the best but as you see the real scenario; technology changes from time to time, so the company should evolve by way of technological enhancement of advancement. This scenario is really happening to the AMS, some employees appear to be resistant to changes for some reasons.

Another list of skills that analyst must posses to be more effective in any design modeling process:

Analysis and Solution Definition Skills:

•To coordinate with Solution and Demand Management (SDM) team and different business users to manage business requirements and develop clear and workable high level assessments and Solution Design documents fulfilling business needs and in line with Technology and IT ability to deliver.
•To always drive and personally perform research and investigation in all relevant technology and business areas to ensure the Intranet presences is coping with industry standards.
•Translate requirements defined by business analyst into logical, economical and practical system designs.
•Analyzes and Designs system flow and procedures to ensure optimum control and security of data and efficient use of resources
•Develops functional specifications and system design specifications for client engagements.
•Work with vendors and service providers to analyze, design and implement robust, extensible and creative web solutions weighing costs versus benefits.
•Write high and detailed level business requirement documents
•Liaise with business users for requirements gathering, analysis and delivery
•Ensure proper development and implementation of projects by smartly decide on how to implement solutions by assessing all options of in-house development, out-sourcing and/or productized solutions

Technical Skills for Recommendation and Testing:

•Leads testing efforts.
•Ensures issues are identified, tracked, reported on and resolved in a timely manner.
•Works with client personnel to identify required changes.
•Communicates needed changes to development team.
Project Execution:
•Ensure that company’s policies and regulations are thoroughly followed in all projects. This includes but not limited to policies for procurement, vendor relations, legal, financial, human resources, customer service and technology.
•To ensure that the implemented solutions shall operate as planned by ensuring proper and comprehensive coordination with all IT and technology operation teams. This includes but not limited to planning and executions of SLAs, Training, Escalations Matrix & Procedures, Maintenance Windows, etc.
•Assists in enforcement of project deadlines and schedules.
•Takes input from supervisor and appropriately and accurately applies comments/feedback.
•Manages resources in accordance with project schedule.
•Consistently delivers high-quality services to our clients.
•Apply best-practices in Project Management to ensure robust project planning and monitor project execution, shorten the development cycles, and ensure on-time and on-budget delivery based on PMI Methodology
•Manage project change requests by liaising with CR department, business users and vendors to come up with the best solution that would accommodate the CR performance needs (scope, time, quality, cost and customer satisfaction)
•Ensure tight and close management to development and implementation teams including staff, contractors and vendors on-site and off-shore and to proactively avoid delay in the execution by proper follow-up, communication and escalation
•Manage teams including staff, contractors and vendors on-site and off-shore and to proactively avoid delay in the execution by proper follow-up, communication and escalation
•Monitor project performance and adherence deadlines to ensure delivery on time and within cost
•Collaborate and manage project stakeholders, manage expectations and report progress

Communication Skills:

•Assists in the facilitation of team and client meetings.
•Delivers informative, well-organized presentations.
•Understands how to communicate difficult/sensitive information tactfully.
•Communication and interpersonal skills, Ability to foster a co-operative work environment

Technical Understanding Skills:

•Possesses understanding in the areas of application programming, database and system design.
•Understands Internet, Intranet, Extranet and client/server architectures.
•Understands how legacy and web-based systems interface with each other.
•Architect technical web solutions in support of corporate IT/business objectives.
•Review technical designs & specifications and identify website or system deficiencies, and thereby recommending appropriate solutions.
•Support and maintain the existing corporate website and functionalities, including documentation of functional and systems specifications.
•To undertake research and investigation for all development related technologies, techniques, best-practices and forums.

Problem Solving Skills:

•Follow up the defects of the systems and prepare needed development/testing environments (SIT and UAT)
•Exhibits confidence and an extensive knowledge of emerging industry practices when solving business problems.
•Pushes creative thinking beyond the boundaries of existing industry practices and client mindsets.
•Ensure business requirements are met, and user satisfaction
•Process, validate and approve vendors’ invoices and purchase orders
•Monitor project performance and adherence to project plan execution, overall change control

Leadership and Teamwork Skills:

•Ensure that the implemented solutions shall operate as planned by ensuring proper and comprehensive coordination with all IT and technology operation teams as planned in SLAs
•Take proactive and corrective action as necessary and within established guidelines
•Proven leadership capability in managing teams, setting common ground rules and conflict resolution
•Able to support multiple projects concurrently and efficiently
•Acumen and awareness of the latest business and technologies thru research and development

Knowledge, Skills, Experience and Competencies:

•Software development skills
•Analysis & Design skills
•Communication skills
•Conflict Resolution skills
•Presentation skills
•Team Work & cooperation
•Can-Do Attitude
•Team Building & Coaching
•Customer-Centric Thinking
•Result Oriented
•Flexibility

As I remembered from the interviewee, his views on becoming a Systems analysts is that he/she must be able to think logically and have good communication skills, they often work in teams on large projects. They must be able to communicate effectively with computer personnel, such as programmers and managers, as well as with users or other staff who may have no technical computer background. In the part of our interviewee aside from he is working as the MIS Dep’t Head, he is also the System Analyst. However, they lack programmers in their department but he said he can do programming but it is very hard to be a “one-man-team”. Of course, analysts should be familiar with programming languages and have a broad knowledge of and experience with computer systems and technologies, strong problem-solving and analysis skills, and good interpersonal skills. AMS is a business-oriented company, that’s why it is a requirement for them to have background on business-related transactions and operations, especially that most of the systems that they are developing are enterprise systems.

One of the skills that an analyst must posses is the skill to choose the right process model depending on the mode of the project. In the part of AMS, RAPID APPLICATION DEVELOPMENT. This kind of process model requires less formality and minimal planning in favor of rapid prototyping. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. Mr. Gemrald and company discouraged to use WATERFALL METHOD, for they understand that what they are developing are enterprise systems, and the most common thing that happened developing enterprise system is that it overruns. They are comfortable to use the RAD process model. In my notion, for an analyst to chose the effective process model, he/she must have the "Analysis and Solution Definition
Skills", for this skills involves coordination with Solution and Demand Management (SDM) team and different
business users to manage business requirements and develop clear and workable
high level assessments and Solution Design documents fulfilling business needs
and in line with Technology and IT ability to deliver; which is very related to system development life cycle's phases.



References:

Justify Fullhttp://www.blurtit.com/q170760.html
http://www.gulftalent.com/home/Systems-Analyst-Microsoft-Net-Solutions-jobs-in-UAE-34448.html

SAD 1 Assignment 1: Characteristics as s good systems analyst

{ Posted on 1:48 PM by Ariel Serenado }
Based on your learnings of chapter 1, identify and discuss some characteristics you have as a good Systems Analyst.

Last week’s meeting on System Analysis and Design was all about assuming the roles and succeeding functions of a System Analyst. Many things were brought to the classes which were very essential in our part as a student for, we never someday soon I’ll be one of those system analysts. One issue that was brought to the class was on “who has the edge between of being a system analyst, an accountant or an IT professional”; either of these two individual regardless of the field they are in, they can be a potential system analyst. An accountant has the edge on business-related operations while, IT professional has the edge on computer-related operations. If we are going to look on the nature of work o these two individuals, the field they are involved requires analytical skills which is one skill that must posses by a system analyst. Therefore, anyone can be a system analyst for as long as they acquire enough education and trainings they can be one. As Sir Gamboa said, “you can study Information Technology even if you don’t take it for four years”. In my own notion, it makes a lot of difference to study for a degree course.

I understand that one of the reasons why this issue is being brought to the class maybe because we are not aware of the nature of work of a system analyst. We are not ware of the related works, characteristics and skills that analyst must posses.

Like people, occupations have traits or characteristics. These characteristics give important clues about the nature of the work and work environment, and give you an opportunity to match your own personal interests to a specific occupation. When you choose a job in an occupation that matches your own interests you have taken an important step in planning a successful and rewarding career.

The Computer Systems Analysts occupation has Investigative, Conventional and Realistic characteristics as described below:

Investigative — Investigative occupations frequently involve working with ideas, and require an extensive amount of thinking. These occupations can involve searching for facts and figuring out problems mentally.
Conventional — Conventional occupations frequently involve following set procedures and routines. These occupations can include working with data and details more than with ideas. Usually there is a clear line of authority to follow.
Realistic — Realistic occupations frequently involve work activities that include practical, hands-on problems and solutions. They often deal with plants, animals, and real-world materials like wood, tools, and machinery. Many of the occupations require working outside, and do not involve a lot of paperwork or working closely with others.

All organizations rely on computer and information technology to conduct business and operate efficiently. Computer systems analysts help organizations to use technology effectively and to incorporate rapidly changing technologies into their existing systems. The work of computer systems analysts evolves rapidly, reflecting new areas of specialization and changes in technology.
Computer systems analysts solve computer problems and use computer technology to meet the needs of an organization. They may design and develop new computer systems by choosing and configuring hardware and software. They may also devise ways to apply existing systems’ resources to additional tasks. Most systems analysts work with specific types of computer systems—for example, business, accounting, or financial systems or scientific and engineering systems—that vary with the kind of organization. Analysts who specialize in helping an organization select the proper system software and infrastructure are often called system architects. Analysts who specialize in developing and fine-tuning systems often are known as systems designers. Or in other words if one wanted to become an analyst he/she should not let himself be deprived of the learning form other fields in his/her environment. For, being an analyst you are well-rounded individual who can respond to the trends of the different fields.

Going back to the characteristics, systems analysts consult managers and users to define the goals of the system. Analysts then design a system to meet those goals. They specify the inputs that the system will access, decide how the inputs will be processed, and format the output to meet users’ needs. Analysts use techniques such as structured analysis, data modeling, information engineering, mathematical model building, sampling, and cost accounting to make sure their plans are efficient and complete. They also may prepare cost-benefit and return-on-investment analyses to help management decide whether implementing the proposed technology would be financially feasible. Making a feasibility study will help the developers know if there work will have a better or probably the best result in the long run of time, especially that in current situation technology changes form time to time.

When a system is approved, systems analysts determine what computer hardware and software will be needed to set it up. They coordinate tests and observe the initial use of the system to ensure that it performs as planned. They prepare specifications, flow charts, and process diagrams for computer programmers to follow; then they work with programmers to “debug,” or eliminate errors, from the system. Systems analysts who do more in-depth testing may be called software quality assurance analysts. In addition to running tests, these workers diagnose problems, recommend solutions, and determine whether program requirements have been met.

Computer system analysts, however, are concerned more with the computer system itself - and you'd need experience/training in whatever computer system that particular company is using. This does not mean you could not become a computer systems analyst - as most companies would feel that your managerial experience is more welcome than your computer knowledge. What the company would want is someone who understands the basic workings of their system to be able to fix, create, evolve as the company evolves. In order for one to become a system analyst, he/she must posses the general characteristics of a system analyst, which includes the following:
1. The system analyst must be able to communicate in writing and orally.
2. The analyst must easily get along with people.
3. The analyst must be a good listener and be able to react to what people say.
4. The analyst must be knowledgeable of technology. The analyst is not expected to know the intricacies of programming, but a decent general knowledge of concepts and terms is essential.
5. The analyst must be knowledgeable of business. The analyst is not expected to be an expert in business but a decent understanding of the client's world is required.

However, in the real world not only characteristics are being considered but also the skills that these analysts will be utilizing as they get involved into the field.

It must be take into account that the technical and functional skills listed below are based on general occupational qualifications for Computer Systems Analysts commonly recognized by most employers. The following are the things that comprises the first characteristic as mentioned above:
1. Understanding written sentences and paragraphs in work related documents.
2. Writing computer programs for various purposes.
3. Determining causes of operating errors and deciding what to do about it.
4. Analyzing needs and product requirements to create a design.
5. Communicating effectively in writing as appropriate for the needs of the audience.
6. Conducting tests and inspections of products, services, or processes to evaluate quality or performance.
7. Giving full attention to what other people are saying, taking time to understand the points being made, asking questions as appropriate, and not interrupting at inappropriate times.
8. Using logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions or approaches to problems.
9. Talking to others to convey information effectively.
10. Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions.

Also, an analyst must have the ability to do the following:

The Ability to:

1. Read and understand information and ideas presented in writing.
2. Communicate information and ideas in writing so others will understand.
3. Choose the right mathematical methods or formulas to solve a problem.
4. Listen to and understand information and ideas presented through spoken words and sentences.
5. Apply general rules to specific problems to produce answers that make sense.
6. See details at close range (within a few feet of the observer).
7. Communicate information and ideas in speaking so others will understand.
8. Come up with a number of ideas about a topic (the number of ideas is important, not their quality, correctness, or creativity).
9. Tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing there is a problem.
10. Combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events).

It is also vital to know the tasks that analyst is involved with, the following is a list of sample tasks typically performed by Computer Systems Analysts. Employees in this occupation will not necessarily perform all of the tasks listed.

Tasks

1. Analyze information processing or computation needs and plan and design computer systems, using techniques such as structured analysis, data modeling and information engineering.
2. Assess the usefulness of pre-developed application packages and adapt them to a user environment.
3. Confer with clients regarding the nature of the information processing or computation needs a computer program is to address.
4. Define the goals of the system and devise flow charts and diagrams describing logical operational steps of programs.
5. Determine computer software or hardware needed to set up or alter system.
6. Develop, document and revise system design procedures, test procedures, and quality standards.
7. Expand or modify system to serve new purposes or improve work flow.
8. Interview or survey workers, observe job performance and/or perform the job in order to determine what information is processed and how it is processed.
9. Provide staff and users with assistance solving computer related problems, such as malfunctions and program problems.
10. Recommend new equipment or software packages.

It is therefore, important that an analyst is not only inclined to computer-related applications an transactions but he/she must take written and verbal communications into account, for in the real world most clients are not that exposed to technical aspects compared to the analyst. Consider this situation – an analyst was tasked to present the process of the system that a client has specified. He is planning to present it in object-oriented approach, let us take Unified Modeling Language as an example; UML is used to present the flow of the system now, do you think UML presentation will be understood by the client, considering that the client is not exposed to this kind of approach in presenting data flows?? For me, it is the essence of an analyst to be able to communicate well so that all things are agreed-upon by both parties.

Moreover, he\she must open common channel of communication in order to meet the specific requirements that the clients need most. With communication you can enhance the ability to get along with people. Getting along with people is also considered as a skill. Why's that important skill to have? If you cannot get a long with people if you can't keep your job very long, you can not make clients to keep your business alive. Learn how to get long with people will excel you to a different level of income. When you know how to get along with people at work, you will be more likely to be promoted! When you know how to get along with people, your business clients will want to use your service over and over again. Furthermore, listening to your client’s side will help you reach the new level of performance, for in this case you are actually getting the needs that your client needs most. You need to become an active listener.

To sum it up, FULL PERFORMANCE KNOWLEDGES, SKILLS, ABILITIES, AND/OR PERSONAL CHARACTERISTICS: Good knowledge of the concepts and details of the Systems Development Life Cycle, project methodologies, and the development of standards and procedures for the systems development and integration process; good knowledge of programming, analysis, design and integration techniques; good knowledge of IT operations and customer support processes; good knowledge of the functions and capabilities of computing, networking and communications equipment and peripherals; good knowledge of standard off-the-shelf applications, e-mail and the Internet; good knowledge of computer and network operating systems; good knowledge of the jurisdiction’s IT functions and administrative procedures; working knowledge of the analysis and redesign of business processes and the translation of processes into functional requirements and data structures for systems development and integration; working knowledge of hardware operations scheduling and work control language; working knowledge of web authoring and publishing tools; ability to communicate effectively, both orally and in writing; ability to lead and work well in teams; ability to work effectively with vendors, users and the public; ability to resolve complex, ambiguous technical and user problems; ability to plan and manage larger projects; ability to develop longer-range directions in specific IT areas; ability to develop efficient and user friendly systems and business processes; good initiative, self-motivation and organizational skills.

Based on the general characteristics of a good analyst, here are my characteristics that might be of parallel to the characteristics of a good system analyst:
• I have the “interpersonal skills” that I can manage to interact with others and listen them to what they need most.
• I can do satisfactory performance both in written and oral communication
• I can easily get along with people despite differences in any aspects.
I may not posses some of the characteristics of analyst as of now, however I can say that in the long run of my studies I can cope with those characteristics and hoping that I may posses it as I get into the real world of work.

References:

http://answers.yahoo.com/question/index?qid=20080725042042AA2MqMh
http://research.schev.edu/degreeinventory/inventory_
http://jobs.virginia.gov/careerguides/computersystemsanalyst.htm
http://www.interlabs.bradley.edu/NSF_CCLI/Demo/class6/module6/Skills_Pretest_Posttest_Answers.pdf
http://changing-careers.suite101.com/article.cfm/do_you_have_what_it_takes_to_be_a_system_analyst
http://www.co.genesee.ny.us/dpt/personnel/jobspecs/systemanalystispec.html