The challenges and predictions that preoccupied our industry during the run-up to the millennium, especially the Y2K problem, the dot-com bubble and the events that followed the downturn, had significant impact on the Software Product Engineering (SPE) community. Many startups vanished because of a lack of additional funding. While the confidence and hope of independent software developers and outsourced product development organizations thrived after the telecom bust, several other noteworthy socioeconomic and political factors challenged the industry. In spite of all these challenges, in my opinion, here are the 10 best influences that transformed SPE during the last decade.
Growth of e-commerce and online applications. Within a few years after 2001, technology became a core corporate strategy for businesses to remain competitive in the Internet economy. Investments happened in two key areas: renewal or upgrade of IT infrastructure, and incubation of startups that pioneered in Web 2.0.
Meanwhile, e-commerce and Web technologies witnessed consolidations and mergers of key players. Security standards such as the PCI DSS (Payment Card Industry Data Security Standard) emerged, and conformance to such standards was valued by CEOs to ensure regulatory compliance and customer satisfaction and retention. Indeed, the global Web-related buzz, aspirations and predictions that engulfed the industry during mid-1990s turned into viable business opportunities during the past decade and greatly influenced SPE.
Service orientation and new business models. Paradigms such as 3-tier architecture culminated in n-tier, component-based, service-oriented architectures. By 2005, a wide variety of software hosted by application service providers became popular for simultaneous use by many corporations. This multi-tenant paradigm enabled a virtual marketplace, creating B2B opportunities for vendors, suppliers, organizers and end users. This led to new business models in industries such as hospitality, travel and transportation, real estate, and finance.
Collaboration tools. While e-mail continued to be the main tool for communication on the Internet, collaboration tools that enabled user forums, online surveys and social networking came into play. With the dawn of Web 2.0, collaboration on the Internet took several new forms, such as video-sharing and business networking. Silicon Valley, the hotbed of technology that went through the pains of the dot-com bust, flourished with companies that invented products for sharing of multimedia content and collaboration.
Agile software development. By 2000, the success of agile methodologies such as XP and Scrum influenced the industry. During February 2001, 17 methodology experts convened at “The Lodge” at Snowbird Ski Resort in the Wasatch mountains of Utah and wrote “The Agile Manifesto.” Gradually, the popularity of agile grew across the globe. Agile gurus and practitioners organized conferences, workshops and events to evangelize and propagate agile methodologies. Lean software development and Kanban spiced up this evolution and got adopted as best practices in agile methodologies.
Modern software engineering. Software engineering best practices and tool chains, configuration management, automated build, continuous integration, and application of IDEs and tools (such as static analyzers) came into play and spruced up traditional software engineering. Iterative and incremental development transformed the definition of analysis, design, coding and testing. All of these became iteration activities rather than project phases.
This trend continued and an impact on Web development as well as other forms of engineering activities. Unified processes, object orientation, model-driven development, aspect-oriented programming and several other software development paradigms became popular. All these put together gave birth to modern software engineering that transformed the mindset that treated software development simply as a coding venture. Software development became an iterative or incremental process made up of several stages with methodologies, tools, modeling languages and techniques.
Test automation. Agile wasn’t the only thing that promoted automation. For example, unit testing, an area that went unexplored until the late 1990s, was strengthened with the advent of frameworks such as JUnit and NUnit. Automated unit tests enabled test-driven development. The level of automation grew in all aspects of testing, from test-data management to database testing and data-migration testing.
Business intelligence. Support for data warehousing and business intelligence increased with the availability of faster and sophisticated infrastructure to process large volumes of data. CIOs included business intelligence tools in their shopping list. This trend motivated ISVs to include business intelligence modules or features in business software. The popularity of data analytics and knowledge services became important to business strategies in the Internet economy.
Global software development. GSD involves software engineering projects executed with virtual teams from different time zones and diverse cultures. Over the past decade, GSD has become the norm, influenced by several factors such as optimal costs, availability of a skilled pool of workers, and globalization trends such as mergers and acquisitions. During the past decade, GSD became a subject of interest among practitioners around the world. GSD influenced ISVs in a significant way in leveraging distributed teams across time zones as well as in setting up globally distributed development centers to service local customers.
Open source movement. By the late 1990s, the open-source movement had gained considerable momentum. However, it was restricted to operating systems and a few other software packages used predominantly by academia and small businesses. The Open Source Initiative, founded in 1998, formalized the open-source movement. During the last decade, the open-source movement gained a lot of momentum due to the above-mentioned influences.
Open-source software, including servers and tools, became a viable choice in defining enterprise architectures. Small startups, academia and independent research groups leveraged this opportunity in building innovative cost-effective solutions or pilot versions of products before finding angel investors to fund their business.
Delivery platforms. The paradigm shift in application delivery platforms was a significant influence that impacted SPE. Virtualization laid the foundation for future computing systems and platform design. It enabled CIOs to reduce the total cost of ownership by optimizing the utilization of IT infrastructure, including platforms, applications and storage. Eventually, virtualization coupled with service orientation led to several initiatives related to cloud computing.
Meanwhile, the evolution in mobile phones and other handheld devices stimulated growth in SPE, and the past decade became very memorable with the introduction of smartphones as well as e-readers and tablets that carry a lot of potential for growth for SPE as we move forward.
Global economic and environmental crises prodded corporate leaders to focus on energy efficiency and optimization of IT infrastructure. Meanwhile, the SPE community had an eventful decade. These influences promise to yield immense benefits not only to SPE but also to all computer users , as long as the SPE community and regulators anticipate and manage its associated security risks.
Raja Bavani is technical director of MindTree’s software product engineering group in Pune, India.