Developmental Methodologies
Instructions
Differentiate between systems analysis and systems design phases and tasks. What is the responsibility of a business analyst with respect to information technology projects?
Module 1 Case
Introduction
System analysis and system design are important aspects of the contemporary business activity. Systems design is the delineation of architectural, modular, interface and data processes with the aim of achieving a specific goal. In this context, system analysis is the process of studying, testing and troubleshooting systems to ascertain whether they perform their functions well. In order to carry out system design and analysis successfully, there must be a Human Computer Interaction. Human Computer Interaction (HCI) is the communication between people and computers. It is also called Human-Machine Interaction (HMI) or Computer-Human Interaction (CHI). The purpose of this paper is to understand the differences between various phases and tasks in systems analysis and systems design (Kendall, & Kendall, 2011). In studying this topic, the paper explains the responsibilities of a business analyst with respect to information technology projects, system development methodologies and analysis processes. The topic is relevant to my studies because it gives deeper insights into practical information technology systems. System design and system analysis are necessary for project implementation.
Systems Development Life Cycle (SDLC)
Velagapudi (2017) describes Systems Development Life Cycle as a framework which outlines the tasks performed in each step when developing software. It defines the processes which developers go through in software development. The processes include project planning, developing, documenting, testing, deploying and maintaining of software. Traditional DSLC frameworks cannot be technically used in cloud projects because other cheaper, more flexible, scalable and robust agile technologies are available. Newer technologies achieve higher productivity than traditional SDLC. Instead, SDLC provides a pathway to the destination by providing the tools and modes of travel. SLDC for cloud computing needs higher adaptability to current technological trends (Pierson Requirements Group, 2017a). Generally, software developers are more inclined to agile methodologies since they provide iterative project management interfaces.
Joint Application Development (JAD)
The Joint Application Development is an iterative software development process. It is used in efficient and fast development of business applications (Velagapudi, 2017). The main feature of the Joint Application Development is the ability to combine information technology and business community structures. It enhances extraction of consensus and quicker development of systems. The participants arrive at high quality solutions in Joint Application Development by coordination from professional facilitators and structures programs and agendas. Systems developed from this methodology are high quality and effective. Research reveals that the JAD process increases operational efficiency while reducing development time, expenses and errors.
Rapid Application Development (RAD)
The Rapid Application Development was developed to address the weaknesses in project implementation methodologies (Media Wiley, 2005). RAD ensures faster development of software which is then placed in the hands of users. The users test the system and suggest revisions which help to solve their problems. The revisions help the software developers meet move closer to the user’s expectations faster. The methodology employs various tools, resources and techniques to speed up delivery.
The methodology is used in development of various versions of the same software at the same time. For example, software developers worked on Windows 7, Windows 8 and Windows 8.1 at the same time. While users were busy evaluating windows 7 and 8, a new version was rolled out to meet their expectations better. However, the main problem with RAD methodology is the ever-changing consumer needs. The needs of the customer may drastically change while new versions of the same software are under development. The RAD methodology breaks down the system into a series of versions that are developed simultaneously and rolled out at different times.
Waterfall Methodology
In the Waterfall Methodology, processes follow a linear and sequential order Haughey, D. (2017). In this methodology, each phase of the project must be completed before the next phase begins. This implies that all software functionality can only be delivered once as a single completed unit. The method is Effective in delivering complex systems since each phase must fit into the other phases for full functionality (Pierson Requirements Group, 2017c). The waterfall methodology produces reliable projects which can grow into large systems. It provides easier management with visible progress to the developers. Since each phase has distinct deliverables, the review process is easy and milestones can be easily set. However, the waterfall methodology takes long time to implement or adjust in case of need to make adjustments. It is not easy to stop in the middle of a project to make corrections. Furthermore, it does not give customers progress visibility. Many developers and project managers complement the methodology with other iterative methods to offer flexible solutions.
Agile Development Methodologies
Agile Development methodology enhances project completion rates by delivering segmented parts of the system to users instead of delivering everything at once (VersionOne, 2017). Agile methodology reduces time between requests and project delivery. Pierson’s Agile Training teaches Agile requirements in delivering projects by focusing on scrum processes Pierson Requirements Group. (2017b). Agile methodologies are divided into Lean and Kanban, Scrum, Extreme Programming (XP), Feature-Driven Development (FDD), Dynamic Systems Development Method (DSDM) and Crystal (Krishna, 2010).
In Agile system development, there are many stages of project implementation (Media Wiley, 2005). The project initiation phase involves gathering of information about the system’s features, goals and objectives. The next stage is the planning and first sprint phase in which the developers meet the business team to determine the items that should be developed and their dependencies. They divide the project into phases. The next stage is the daily scrum in which Agile project teams meat daily for briefings on the status of the project. The project then sprints forward, gets reviews, and then the final project is released when everything is ready for deployment (VersionOne, 2017).
Agile SDLC is advantageous because of the following reasons:
It speeds up SDLC phases while bypassing meaningless processes
It promotes collaboration amongst team members through a less formal culture
It facilitates smooth and seamless sharing of knowledge
It ensures continuous engagement of developers with stakeholders
It encompasses flexible, rapid and frequent changes which adds more functionality
It saves time, cost and work input through incremental and iterative work processes
It ensures even distribution of leadership at all levels of project implementation
It enhances cohesion amongst team members
It delivers higher quality software end-product.
Conclusion
Depending on the type of system development methodology used, system analysts and system designers perform various responsibilities in information technology projects. While system analysts are involved in the initial brainstorming of the facts and system dependencies, system designers move through each step of the software development process. This paper has shown that systems can be developed using various methodologies. The choice depends on the flexibility, cost, and users’ needs among many factors which vary from system to system.
References
Haughey, D. (2017). Waterfall v Agile: How Should I Approach My Software Development Project? Projectsmart.com. Retrieved 27 October 2017, from http://www.projectsmart.com/articles/waterfall-v-agile-how-should-i-approach-my-software-development-project.php
Kendall, K. E., & Kendall, J. E. (2011). Chapter 1 The need for systems analysis and design: The role of the systems analyst. Retrieved from https://docs.google.com/presentation/d/1NQUJInGdUOcYyLNNuSwi-eyyYFWCOvpWx6TdIflWwFg/htmlpresent
Krishna, B. (2010). Agile and other development methods. Retrieved from http://www.codeproject.com/Articles/25278/Agile-and-Other-Development-Methods
Media Wiley. (2005). Chapter 1 introduction to systems analysis and design. Retrieved from http://media.wiley.com/product_data/excerpt/87/04700747/0470074787.pdf
Pierson Requirements Group. (2017a). Agile. Piersonrequirementsgroup.com. Retrieved 27 October 2017, from https://www.piersonrequirementsgroup.com/agile/
Pierson Requirements Group. (2017b). Pierson Expert Training and Consulting Services. Piersonrequirementsgroup.com. Retrieved 27 October 2017, from https://www.piersonrequirementsgroup.com/#1502264414942-35e0bbe3-876f
Pierson Requirements Group. (2017c). Waterfall Methodology. Piersonrequirementsgroup.com. Retrieved 27 October 2017, from https://www.piersonrequirementsgroup.com/waterfall-methodology/
Velagapudi, M. (2017). SDLC for Cloud Computing – How Is It Different From The Traditional SDLC? BootStrapToday’s Official Blog. Retrieved 27 October 2017, from https://bootstraptoday.wordpress.com/2012/02/06/sdlc-for-cloud-computing-how-is-it-different-from-the-traditional-sdlc/
VersionOne. (2017). Agile Methodologies for Software Development. VersionOne. Retrieved 27 October 2017, from https://www.versionone.com/agile-101/agile-methodologies/