What are new approaches for system building in the digital firm era?

Technologies and business conditions are changing so rapidly that companies are adopting shorter, more informal systems development processes, including those for mobile applications. In addition to using software packages and online software services, businesses are relying more heavily on fast-cycle techniques such as rapid application development, joint application design, agile develop­ment, and reusable standardized software components that can be assembled into a complete software system.

1. Rapid Application Development (RAD), Agile Development, and DevOps

The term rapid application development (RAD) refers to the process of creating workable systems in a very short period of time with some flexibility to adapt as a project evolves. RAD includes the use of visual programming and other tools for building graphical user interfaces, iterative prototyping of key system elements, automation of program code generation, and close teamwork among end users and information systems specialists. Simple systems often can be assembled from prebuilt components. The process does not have to be sequential, and key parts of development can occur simultaneously.

Sometimes a technique called joint application design (JAD) is used to accelerate the generation of information requirements and to develop the ini­tial systems design. JAD brings end users and information systems specialists together in an interactive session to discuss the system’s design. Properly pre­pared and facilitated, JAD sessions can significantly speed up the design phase and involve users at an intense level.

Agile development focuses on rapid delivery of working software by break­ing a large project into a series of small subprojects that are completed in short periods of time using iteration, continuous feedback, and continual user in­volvement. Each mini-project is worked on by a team as if it were a complete project and regularly released to the client. Improvement or addition of new functionality takes place within the next iteration as developers clarify re­quirements. Testing occurs early and often throughout the entire development process. Agile methods emphasize face-to-face communication, encouraging people to collaborate and make decisions quickly and effectively.

DevOps builds on agile development principles as an organizational strat­egy to create a culture and environment that further promote rapid and agile development practices. DevOps stands for “development and operations” and emphasizes close collaboration between the software developers who create ap­plications and the IT operational staff who run and maintain the applications. Traditionally, in a large enterprise, an application development team would be in charge of gathering business requirements for an application, designing the application, and writing and testing the software. The operations team would run and maintain the software once it was put into production. Problems arise when the development team is unaware of operational issues that prevent the software from working as expected, requiring additional time and rework to fix the software.

DevOps tries to change this relationship by promoting better and more fre­quent communication and collaboration between systems development and operations groups and a fast and stable workflow throughout the entire applica­tion development life cycle. With this type of organizational change along with agile techniques, standardized processes, and more powerful automated soft­ware creation and testing tools, it is possible to build, test, and release applica­tions more rapidly and more frequently. For example, DevOps helps developers at Netflix make hundreds of software changes each day.

2. Component-Based Development and Web Services

We have already described some of the benefits of object-oriented develop­ment for building systems that can respond to rapidly changing business en­vironments, including web applications. To further expedite software creation, groups of objects have been assembled to provide software components for common functions such as a graphical user interface or online ordering ca­pability that can be combined to create large-scale business applications. This approach to software development is called component-based development, and it enables a system to be built by assembling and integrating existing soft­ware components. Increasingly, these software components are coming from cloud services. Businesses are using component-based development to create their e-commerce applications by combining commercially available compo­nents for shopping carts, user authentication, search engines, and catalogs with pieces of software for their own unique business requirements.

 Web Services and Service-Oriented Computing

Chapter 5 introduced web services as loosely coupled, reusable software com­ponents using Extensible Markup Language (XML) and other open protocols and standards that enable one application to communicate with another with no custom programming required to share data and services. In addition to sup­porting internal and external integration of systems, web services can be used as tools for building new information system applications or enhancing existing systems. Because these software services use a universal set of standards, they promise to be less expensive and less difficult to weave together than propri­etary components.

Web services can perform certain functions on their own, and they can also engage other web services to complete more complex transactions, such as checking credit, procurement, or ordering products. By creating software components that can communicate and share data regardless of the operating system, programming language, or client device, web services can provide sig­nificant cost savings in systems building while opening up new opportunities for collaboration with other companies.

3. Mobile Application Development: Designing for a Multiscreen World

Today, employees and customers expect, and even demand, to be able to use a mobile device of their choice to obtain information or perform a transaction anywhere and at any time. To meet these needs, companies will need to de­velop mobile websites, mobile apps, and native apps as well as traditional infor­mation systems.

Once an organization decides to develop mobile apps, it has to make some important choices, including the technology it will use to implement these apps (whether to write a native app or mobile web app) and what to do about a mobile website. A mobile website is a version of a regular website that is scaled down in content and navigation for easy access and search on a small mobile screen. (Access Amazon’s website from your computer and then from your smartphone to see the difference from a regular website.)

A mobile web app is an Internet-enabled app with specific functionality for mobile devices. Users access mobile web apps through their mobile device’s web browser. The web app resides primarily on a server, is accessed via the Internet, and doesn’t need to be installed on the device. The same application can be used by most devices that can surf the web, regardless of their brand.

A native app is a standalone application designed to run on a specific plat­form and device. The native app is installed directly on a mobile device. Native apps can connect to the Internet to download and upload data, and they can also operate on these data even when not connected to the Internet. For exam­ple, an e-book reading app such as Kindle software can download a book from the Internet, disconnect from the Internet, and present the book for reading. Native mobile apps provide fast performance and a high degree of reliability. They are also able to take advantage of a mobile device’s particular capabilities, such as its camera or touch features. However, native apps are expensive to develop because multiple versions of an app must be programmed for different mobile operating systems and hardware.

Developing applications for mobile platforms is quite different from develop­ment for PCs and their much larger screens. The reduced size of mobile devices makes using fingers and multitouch gestures much easier than typing and using keyboards. Mobile apps need to be optimized for the specific tasks they are to perform, they should not try to carry out too many tasks, and they should be de­signed for usability. The user experience for mobile interaction is fundamentally different from using a desktop or laptop PC. Saving resources—bandwidth, screen space, memory, processing, data entry, and user gestures—is a top priority.

When a full website created for the desktop shrinks to the size of a smart­phone screen, it is difficult for the user to navigate through the site. The user must continually zoom in and out and scroll to find relevant material. Therefore, companies need to design websites specifically for mobile inter­faces and create multiple mobile sites to meet the needs of smartphones, tab­lets, and desktop browsers. This equates to at least three sites with separate content, maintenance, and costs. Currently, websites know what device you are using because your browser will send this information to the server when you log on. Based on this information, the server will deliver the appropriate screen.

One solution to the problem of having multiple websites is to use responsive web design. Responsive web design enables websites to change layouts auto­matically according to the visitor’s screen resolution, whether on a desktop, laptop, tablet, or smartphone. Responsive design uses tools such as flexible grid-based layouts, flexible images, and media queries to optimize the design for different viewing contexts. This eliminates the need for separate design and development work for each new device. HTML5, which we introduced in Chapter 5, is also used for mobile application development because it can sup­port cross-platform mobile applications.

The Interactive Session on Technology describes how some companies have addressed the challenges of mobile development we have just identified.

Source: Laudon Kenneth C., Laudon Jane Price (2020), Management Information Systems: Managing the Digital Firm, Pearson; 16th edition.

3 thoughts on “What are new approaches for system building in the digital firm era?

  1. zoritoler imol says:

    What’s Happening i am new to this, I stumbled upon this I have discovered It absolutely useful and it has aided me out loads. I hope to contribute & aid other users like its aided me. Great job.

Leave a Reply

Your email address will not be published. Required fields are marked *