Tuesday, 28 February 2012

INDIVIDUAL ASSIGNMENT


MGT 300
Information Technology in Management
Individual Assignment
Chapter 17
Building Software to Support an Agile Organization


SYSTEM DEVELOPMENT
Systems development is the process of defining, designing, testing, and implementing a new software application or program. It could include the internal development of customized systems, the creation of database systems, or the acquisition of third party developed software. Written standards and procedures must guide all information systems processing functions. The organization’s management must define and implement standards and adopt an appropriate system development life cycle methodology governing the process of developing, acquiring, implementing, and maintaining computerized information systems and related technology (System Development, 2007).
There are a few of characteristics of system development:
v  A system development project encompasses all the activities undertaken from the time at which a potential requirement is identified until the resulting system is fully implemented and accepted by the end user.
v  The process can involve many stages over a long period.
v  System development is typically a high level management document.
v  It serves to identify corporate information needs, the information systems required to satisfy those needs, the skills and resources required to develop and implement them, and the development timetable.

DEVELOPING SOFTWARE – THE SYSTEMS DEVELOPMENT LIFE CYCLE (SLDC)
The systems development life cycle (SDLC), or software development life cycle in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process (System development life-cycle, 2012).

There are a few stages in system development life cycle (SLDC). There are four main stages include systems analysis in stage 1, systems design in stage 2, systems implementation in stage 3 and the last stage is systems evaluation.

Each of the stages of the life cycle can be broken down into component activities, which are illustrated in detail in table 1.
Stage 1  Systems analysis
Activities:
Feasibility study                          Collect and collate information
                                                    Assess project cost
                                                    Consider constraints
                                                    Assess alternatives

Requirements specification        Describe the business requirements
                                                   Describe the systems requirements
                                                   Integrate and detail the systems requirements


Stage 2  Systems design
Activities:
Logical design                             Create and document logical design specifications
                                                    Model the logical design specifications

Physical design                           Create and document technical design specifications
                                                    Model the technological design specifications
                                                    Model the ergonomic design specifications


Stage 3  Systems implementation
Activities:
Programming                               Construct and write program code (applications-based
                                                     Systems development)
                                                     Integrate hardware and software applications

Installation                                    Implement business system
                                                     Implement technical system          

Conversion                                   Convert old system to new system

Documentation                             Prepare systems-user documentation

Training                                         Initiate human training and development

                               


Stage 4  Systems evaluation
Activities:
Testing                                          Evaluate technical systems
                                                      Evaluate business systems
                                                      Evaluate systems and cost audit

Organization                                  Evaluate systems integration
                                                        Evaluate human-technical integration

Maintenance                                  Undertake systems maintenance



 STAGE 1: SYSTEM ANALYSIS

This stage involves the following proces:
1) STUDY THE SYSTEM PROBLEM- Should determine whether the proposed system is viable                               and workable on the grounds of legality, organizational structure, technical constraints and cost-constraints.
2) INVESTIGATE THE SYSTEM- Involves fact-finding and look up at the system requirements                                     and business requirements.
                                                        -Also involves collecting and collating data and information from a range sources.
3) GATHERING THE FACT- By using the tools of interviews, questionnaires, task observation and the analysis of existing systems documentation. 
4) OBTAINED THE RESULT-Normally be delivery of a list of systems requirements and priorities
                                                 -Will be laid out in what is commonly termed a feasibility report




STAGE 2: SYSTEM DESIGN



This stage involves designing an information system to overcome particular information-based problem and meet the user’s needs. In this stage we can see that the logical design and physical design are relating each other. This is because the physical design model follows from the logical design and describes the physical and technological characteristics that the information system should possess.
The physical aspects of the logical design involve the following elements:
v  Hardware technology - the input, processing and output devices and their respective performance characteristics.
v  Software technology - software applications and their integration, specifications and performance within the system.
v  Storage media - the type, structure and function of storage media, such as computer files, database, CD-ROMs and other data and information storage technology.
v  Telecommunications technology – the specifications, use and characteristics of the technology both internally and externally to the organization.
v  People and organization – the description and remit of human interaction, plus the procedures and control aspects of the organization that impact on the system.


STAGE 3: SYSTEM IMPLEMENTATION
This stage is concerned with building the components of an information system. It is involves all the running up programming in the computer and the software.
The implementation stage normally includes the following considerations:
Ø  Hardware acquisition
Ø  Software acquisition
Ø  User familiarization and training
Ø  Environment preparation
Ø  Information and data preparation

STAGE 4: SYSTEM EVALUATION
This stage involves testing and appraisal to determine whether the system is achieving its requirements. If the system not meeting it requirements, then the SLDC process may begin again.
The following are some commonly used evaluation techniques:
*      User evaluation – involves formal and informal feedback from the end users of the system to determine whether the system is efficient and effective.
*      Cost-benefit analysis (CBA) – attempts to match the aggregate of the costs against the aggregate of the benefits of the system. Hopefully, the benefits will outweigh the costs.
*      Benchmark testing – involves comparing the actual performance of the system to the ideal standard for the system. The performance of the system is judge by whether it is below or above the standard set. 


SOFTWARE DEVELOPMENT METHODOLOGIES
A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information technology (Software development methodology, 2012).
There are various kinds of software life cycle models. These have evolved with time and human experience with various situations and various technologies involved in developing software.
One of the models used in real life is:
1)    WATERFALL MODEL
*      This model is the oldest for a software life cycle. This assumes that the development of software moves from step to step in sequential manner and through appears to be like a waterfall.
*      The advantage of this model is its simplicity.


      2)    PROTOTYPE MODEL
*      The prototype is a mock-up of the final product.
*      In software, a prototype could be in the form of the screens that need to be presented to the user linked in a way so as to stimulate the real software.
*      The benefits of a prototype are:
ü  Helps the developer as well as the user to visualize how the software would look like in terms of its interface with the user.
ü  Facilitates communication between the user and developer-once the user sees a prototype he is able to visualize his requirements better.
ü   Reducing risk in many complex projects.

                       3)    V-SHAPED MODEL
*      The V-shaped model is extension of the waterfall model.
*      It involves matching of an appropriate test phase for each of the stages in the waterfall model
*      The elements of V-shapes model:
ü  Requirements matched with system/functional testing
ü  High-level design matched with integration testing
ü  Detailed design matched with unit testing

4) SPIRAL MODEL
*      The spiral model combines the benefits of the waterfall, the prototyping methods and is evolutionary in nature.
*      The software is visualized in the initial prototype after carrying out a proper risk analysis.
*      Once this level of prototype is accepted, the spiral of functionality expands into another cycle with its own risk analysis phase, requirement analysis and design phases.
*      Thus, the software seems to evolve with each spiral

       5)  INCREMENTAL MODEL
*      Incremental model to software development involves the breaking up of the overall software to delivery into smaller modules.
*      There are many advantages of this model:
ü  Helps the user and developer priorities those features which are more urgent from the business standpoint.
ü  Helps the user and developer limit the scope to a smaller increment which is easier to visualize thereby reducing the risk associated with requirements analysis.
ü  Helps the user and developer to manage within lesser resources (people or cost) as compared to the big bang approach.

6)  RATIONAL UNIFIED PROCESS (RUP) METHOD
*      This method is come up with the Rational Unified Process along with a set of tools to facilitate software life cycle management.
*      RUP divides a project into four broad phases:
ü  Inception Phase - represents the planning phase in the life cycle.
                - take about 10% of the effort of the life cycle.
ü  Elaboration Phase   - more about the specification of cases.
- based on the understanding of the   requirements.
- take about 20% of the effort.
ü  Construction Phase - primary work involves developing and testing.
           - take about 70% of the effort.
ü  Transition Phase - equivalent of implementation in other method.
                 -take about 10% of the effort

                                7)  RAPID APPLICATION DEVELOPMENT (RAD) METHOD
*      This method is using minimal planning in favor of rapid prototyping. 
*      In rapid application development, structured techniques and prototyping are especially used to define users' requirements and to design the final system.

8) AGILE METHOD
*      Agile method is therefore a step in direction of simplifying the process while at the same time improving communication between the user and the developer
*      This method also delivering quick results and improving the effectiveness of the developing process.
*      This method is to create developer-user pairs who work as a cohesive team.
*      The advantage of this approach is that it cuts away all the bureaucracy and documentation.

DEVELOPING SUCCESSFUL SOFTWARE
In developing successful software, here we can identify many benefits and strengths of the system development life cycle. In this case, we also can get the tips how to developing successful software management.
First, let us know the benefits of the system development life cycle:
v  The SDLC is a tried and tested approach that is very suitable for the development of large-scale information systems.
v  The SLDC also relies on the production of systems documentation and standards of development that can be used to guide the development of an information system and can be used as reference and training material for users.
v  The sequential and phased nature of the SLDC allows a complex systems development problem to be broken down into manageable and understandable tasks.
v  The structured nature of the SLDC allows the incorporation of formal project management techniques and tools to guide the systems development process.
So how to develop successful software management? These are the tips:
Ø  Understand needs, write the specs before coding and keep them up to date.
·         Once you understand the functionality to be built, you’ll need to do a detail level design, preferably in terms of use cases.  Work out the design details before the start of coding.
Ø  Break projects into modules of 1 week or shorter.
·         To get good visibility and predictability
Ø  Implement risky modules early.
·         Try to understand what you don’t know as early as possible.
·         If you minimize the risks and the unknowns up front, when new things come up, you’ll be able to incorporate them into the project more easily simply because you left the easy stuff to the end.
Ø  Get developer buy-in for features, timelines and milestones.
·         After the design specifications are done, whenever possible, have the developers establish the coding timelines, rather than dictate the timelines to the developers.
Ø  Resist feature creep during implementation and testing.
Ø  Use automated functional testing tools and do stress testing.
·         Create a test plan while the code is being developed.  It’s important to know what to test and how to test it, before starting the testing phase.

PROJECT MANAGING THE SYSTEMS DEVELOPMENT EFFORT 
Project management is the discipline of planning; organizing, securing, and managing resources to achieve specific goals (Project management, 2012).
In project management, there is a triple constraint.
The time constraint refers to the amount of time available to complete a project. The cost constraint refers to the budgeted amount available for the project. The scope constraint refers to what must be done to produce the project's end result.
These three constraints are often competing constraints: increased scope typically means increased time and increased cost, a tight time constraint could mean increased costs and reduced scope, and a tight budget could mean increased time and reduced scope.
The discipline of project management is about providing the tools and techniques that enable the project team (not just the project manager) to organize their work to meet these constraints.
Below is the diagram project management interdependent variable which is related to the project management:


                                     
                                                                                                                   REFERENCES
System development life-cycle. In (2012). Wikipedia Retrieved January 20, 2012 from http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle
Elliott, G. (2004). An integrated system approach. In Global Business Information Technology England: Pearson Education.
Pendsee, P. H. (2008). Business analysis. New Delhi: Eastern Economy Edition.
(2007). System development. Essential Practices for Information Technology Examination Manual IT Section, Retrieved January 21, 2012 from http://www.fca.gov/Download/ITManual/itsystemsdevelopment.pdf
Software development methodology. In (2012). Wikipedia Retrieved January 22, 2012 from http://en.wikipedia.org/wiki/Software_development_methodology
Bicer, J. (2007). Top 10 tips for successful software development management. Retrieved January 23, 2012 from http://www.septium.com/10tips.pdf
Project management. In (2012). Wikipedia Retrieved  January 23, 2012 from http://en.wikipedia.org/wiki/Project_management