MIS – Lecture-14
N P Singh
Learning Objectives
How does building new systems produce
organizational change?
What are the core activities in the systems
development process?
What are the principal methodologies for
modeling and designing systems?
What are alternative methods for building
information systems?
What are new approaches for system building in
the digital firm era?
How will M I S help my career?
Next
Alternative Methods of building
information systems
Traditional Systems Life
Cycle
Oldest method for building information
systems
Phased approach
Development divided into formal stages
“Waterfall” approach: One stage finishes
before next stage begins
Formal division of labor between end users
and information systems specialists
Emphasizes formal specifications and
paperwork
Still used for building large complex
The Traditional Systems
Development Life Cycle
Prototyping (1 of 2)
Building experimental system rapidly and
inexpensively for end users to evaluate
Prototype: Working but preliminary version
of information system
Approved prototype serves as template
for final system
Steps in prototyping
Identify user requirements
Develop initial prototype
Use prototype
The Prototyping Process
Prototyping (2 of 2)
Advantages of prototyping
Useful if some uncertainty in
requirements or design solutions
Often used for end-user interface design
More likely to fulfil end-user
requirements
Disadvantages
May gloss over essential steps
May not accommodate large quantities
of data or large number of users
▪ May not undergo full testing or
Application Software Packages,
Software Services, and
Outsourcing (1 of 3)
Application software packages and software
services
Save time and money
Many packages offer customization features
Evaluation criteria for systems analysis include:
Functions provided, flexibility, user friendliness,
required resources, database requirements,
installation and maintenance efforts,
documentation, vendor quality, and cost
Request for Proposal (R F P)
Detailed list of questions submitted to software
vendors
Used to evaluate alternative software packages
Continued…
Another alternative in systems building, the use of
application software packages and cloud software services.
It is important to note that many functions are common to
all business organizations—payroll, accounts receivable, or
inventory control.
Software packages or cloud software services may fulfill
the need for many organizations for these types of
functions.
However, it is still important to perform systems analysis in
order to determine your organization’s requirements for a
system.
For example, you would want to outline the functions you
need from the software and determine whether the
software or service provides that.
Application Software Packages,
Software Services, and
Outsourcing (2 of 3)
Outsourcing: Hiring external third-party
organizations or individuals to handle certain aspects
of the software development process
Several types
Cloud and S a a S providers: subscribing companies
use software and hardware provided by vendors
External vendors
▪ Hired to design, create software
▪ Domestic outsourcing
▪ Driven by firm’s need for additional skills,
resources, assets
▪ Onshore Outsourcing: Involves hiring external resources
within the same country or geographical region.
Application Software Packages,
Software Services, and
Outsourcing (3 of 3)
Outsourcing
Advantages/Disadvantages
Advantages: Allows organization
flexibility in I T needs
Disadvantages
▪ Hidden costs, for example:
▪ Identifying and selecting vendor
▪ Transitioning to vendor
▪ Opening up proprietary business
processes to third party
Total Cost of Offshore Outsourcing
Next
New approaches for system
development in the digital
firm era
Rapid Application Development (R
A D), Agile Development,
Automated Software Testing, and
DevOps (1 of 3)
Rapid application development (R
A D)
An approach that prioritizes speed and
efficiency in delivering a product to users.
The goal is to reduce the time it takes to
go from the initial concept to a functional
and deployable software application.
Rapid development methodologies focus
on iterative and incremental progress,
allowing for quick adjustments based on
user feedback and changing requirements.
Key Aspects
Agile Methodologies:
Agile methodologies, such as Scrum and Kanban, are often associated with rapid
development. These frameworks emphasize iterative development, continuous
delivery, and collaboration.
Iterative Prototyping:
Rapid development involves creating prototypes quickly to gather feedback from
stakeholders and end-users.
Iterative prototyping allows for the refinement of features and functionalities based
on real-world usage.
Frequent Releases:
The emphasis is on delivering smaller, frequent releases of the software, rather than
waiting for a complete, final product.
This approach allows for quicker user feedback and the ability to address issues
promptly.
Cross-Functional Teams:
Rapid development often involves cross-functional teams with members who have
diverse skills, including development, testing, design, and business analysis.
Collaboration among team members accelerates decision-making and problem-
solving.
Minimal Viable Product (MVP):
The development team focuses on delivering a Minimal Viable Product (MVP) quickly,
containing essential features to meet the basic needs of users.
Continued…
User-Centric Approach:
Rapid development places a strong emphasis on understanding and addressing user
needs.
Continuous user involvement and feedback help shape the product throughout the
development process.
Adaptability to Change:
Rapid development methodologies are designed to be flexible and adaptive to changing
requirements.
Changes can be incorporated quickly without disrupting the overall development process.
Automated Testing:
Automated testing is often integrated into the development process to ensure the stability
and reliability of frequent releases.
Continuous integration and continuous delivery (CI/CD) pipelines are common in rapid
development environments.
Time-Boxed Sprints:
In Scrum and similar methodologies, development work is organized into time-boxed
iterations known as sprints.
Sprints typically last two to four weeks, providing a structured and predictable
development cadence.
Collaborative Tools:
The use of collaborative tools for communication, project management, and version
control is essential in rapid development environments.
These tools facilitate efficient collaboration among team members, even in distributed or
Continued..
Joint application design (J A D)
It is a collaborative and interactive approach
used in the software development process to
gather requirements and design solutions.
It involves bringing together key stakeholders,
end-users, and development teams in
facilitated workshops or sessions to discuss,
define, and refine the requirements for a
system or application.
The primary goal of JAD is to promote effective
communication, collaboration, and shared
understanding among all participants.
Rapid Application Development (R A
D), Agile Development, Automated
Software Testing, and DevOps (2 of 3)
Agile development
Focuses on rapid delivery of working
software by breaking large project
into subprojects that can be
completed in short periods of time.
Automated software testing
Tools to perform examinations of
software, report outcomes, compare
results with earlier test runs
Common Agile
Methodologies:
Scrum:
Focuses on short, time-boxed iterations called sprints (1–4
weeks).
Roles: Product Owner, Scrum Master, and Development Team.
Artifacts: Product Backlog, Sprint Backlog, and Increment.
Kanban:
Visualizes workflow using boards and limits work in progress to
improve efficiency.
Focuses on continuous delivery without specific iterations.
Extreme Programming (XP):
Emphasizes technical excellence and frequent releases.
Practices include pair programming, test-driven development,
and continuous integration.
Lean Development:
Inspired by Lean Manufacturing, it focuses on eliminating waste,
DevOps
DevOps is a transformative culture and
practice that unites software development
(Dev) and IT operations (Ops) teams.
By fostering collaboration and leveraging
automation technologies, DevOps enables faster,
more reliable code deployment to production in an
efficient and repeatable manner.
DevOps is a software development approach that
emphasizes collaboration and communication
between development (Dev) and operations (Ops)
teams. It aims to shorten the software development
lifecycle and improve the quality and reliability of
software releases.
Continuous Integration and
Continuous Delivery (CI/CD)
CI/CD automate testing and
deployment, ensuring reliable
updates.
Infrastructure automation tools and
continuous monitoring keep systems
responsive and maintain performance.
These practices enable faster, more
reliable updates, driving innovation
and customer satisfaction.
Rapid Application Development (R A
D), Agile Development, Automated
Software Testing, and DevOps (3 of 3)
Low-code development
Enables faster development of applications,
with minimal hand-coding, using visual
modelling in a graphical interface
No-code development
Includes built-in tools that enable user to create
apps without any coding
Some disadvantages
▪ Have limited functionality
▪ Users can create applications without proper
management oversight
Mobile Application
Development
Application designed to run on mobile devices
such as smartphones and tablets.
Called mobile apps. Developed to leverage the
unique features and capabilities of mobile
devices, including touch screens, cameras, GPS,
and various sensors.
Development for range of platforms, including
iOS (for Apple devices) and Android (two
dominant mobile operating systems).
Mobile websites
Mobile web apps
Native apps:designed and developed for a
Continued…
Designed for
Special requirements for mobile
platform
Smaller screens, keyboards, multitouch
gestures, saving resources (memory,
processing)
Responsive web design
Websites programmed so that layouts
change automatically according to
user’s computing device
Building Mobile Apps (1)
Mobile App Development Steps (Example: Fitness
Tracking App).
Step 1: App Concept and Purpose
Example: Create a fitness tracking app, "FitTrack
Pro," designed for individuals looking to monitor
their daily workouts, steps, calorie intake, and heart
rate in one platform.
Purpose: Simplify fitness tracking with
personalized goals and AI-driven recommendations.
Target Audience: Fitness enthusiasts, gym-goers,
and health-conscious individuals aged 18-40.
Building Mobile Apps (2)
Step 2: Market Research
Competitor Analysis: Study apps like
MyFitnessPal, Fitbit, and Google Fit to identify
missing features, like social group challenges or
diet integration.
User Reviews Insight: Users often complain
about complex interfaces and limited free
features. FitTrack Pro will focus on simplicity and
include more free functionalities.
Research Outcome: Incorporate social
challenges, integrate with wearables like
smartwatches, and offer meal planning tools.
Building Mobile Apps
(3)
Step 3: Features and Functionalities
Core Features:
Daily step counter using phone sensors.
Workout logging (e.g., strength, cardio, yoga).
Calorie tracker integrated with barcode scanning for
food.
Advanced Features
Integration with wearables (Fitbit, Apple Watch).
AI-driven fitness tips based on user activity patterns.
Gamification (weekly challenges with friends).
Future Scalability:
Add VR fitness classes and voice-assistant features for
hands-free use.
Building Mobile Apps
(4)
Step 4: UI/UX Design
Wireframes:
Create simple screens for tracking workouts, setting
goals, and viewing progress.
Example Design Approach:
Login Page: Easy sign-up via Google or Apple ID.
Dashboard: Display today’s activity summary at a
glance.
Design Standards
Follow Material Design for Android to keep navigation
intuitive.
Use Human Interface Guidelines for iOS to ensure
Apple-like aesthetics.
Real-life Feedback: Conduct user testing with 10 beta
Building Mobile Apps
(5)
Step 5: Technology Stack
Frontend:
Use Flutter for cross-platform development (iOS &
Android).
Backend:
Implement Node.js with MongoDB for real-time
syncing of fitness data.
APIs:
Integrate Google Fit API and Apple HealthKit for
step and heart rate data.
Database:
Store user data securely in the cloud using
Firebase Realtime Database.
Building Mobile Apps (6)
Development Process
Agile Sprint Example
Sprint 1: Build user authentication (2 weeks).
Sprint 2: Develop the core tracking functionalities
(4 weeks).
Sprint 3: Integrate third-party APIs (Google Fit,
Apple HealthKit).
Version Control:
Use GitHub for managing codebase and team
collaboration.
CI/CD Pipeline:
▪ Use GitHub Actions for automated testing and
deployment.
Building Mobile Apps (7)
Step 7: Testing and QA
Test step tracking accuracy by
comparing app data to a Fitbit device.
Use Firebase Test Lab to test the
app on 20+ virtual Android and iOS
devices.
Conduct User Acceptance Testing
(UAT): Involve 50 fitness enthusiasts
to evaluate app usability and
reliability.
Building Mobile Apps (8)
Step 8: Deployment
Google Play:
Upload the app to the Google Play Console,
ensuring it passes all checks for location
permissions and API compliance.
Apple App Store:
Ensure the app follows Apple’s data privacy
guidelines and submit it through the Apple
Developer Program
Example Timeline:
The app is soft-launched in beta via
TestFlight before the full release.
Building Mobile Apps (9)
Step 9: Post-Launch Maintenance
Example Maintenance Tasks
Roll out a feature allowing users to export
workout data to PDF.
Monitor user behavior with Firebase
Analytics to see if users engage with social
challenges.
Respond to feedback and fix bugs reported
within the first 3 weeks.
Update Example: Add a feature for live
coaching sessions based on demand
Cost of Mobile App (10)
Simple Apps:
Basic functionality and a straightforward user interface.
Estimated cost: $5,000 to $20,000.
Moderate Complexity Apps:
Additional features, more advanced UI/UX design, and integration
with external services or APIs.
Estimated cost: $20,000 to $50,000.
Complex Apps:
Advanced features, custom design, backend development, and
integration with complex systems or databases.
Estimated cost: $50,000 to $150,000 or more.
High-End Apps:
Highly sophisticated apps with intricate features, intricate design,
complex backend, and possibly integration of emerging
technologies (AI, AR, VR).
Estimated cost: $150,000 and above.
Factors affecting cost of
mobile app
• Development Team Rates: Rates vary globally.
Developers in North America and Europe typically
charge more than those in Asia or Eastern Europe.
• Features and Complexity: The more features and
complexity an app has, the higher the development
cost.
• Design Requirements: Custom and intricate designs
may increase costs.
• Backend Development: If your app requires server-
side development for user accounts, data storage, etc.,
this adds to the overall cost.
• Testing and Quality Assurance: Comprehensive
testing and quality assurance processes can increase
costs but are crucial for a successful app.
• Post-Launch Costs: Budget for ongoing maintenance,