Several factors have dramatically changed how software is developed, packaged and released for general consumption. These core influences are outlined in this article.
Iterative Methodologies
Description: Software planning, tracking and effort is done with a focus on smaller software components and features performed in small time frames (weeks versus months).
The release of software has changed dramatically over the past 6-10 years. Waterfall methodology was a common approach to developing software using a well-defined, sequential process that often would take 6, 12 or 18 months to deliver software to the customer with hundreds of capabilities/features.
A significant challenge in this process is keeping the software in sync with customer’s requirements and delivering what has been promised. Waterfall often deviated from the needs of the customer due to the long delivery cycle and changing concerns of the customer.
In a recent survey of over 2,300 API testing and development professionals it was clear that a majority of API teams are now embracing an agile approach to software development.
Waterfall is still being used by a portion of teams but is outpaced by other delivery methods, including continuous integration (37.8%), continuous delivery (27%), and DevOps (25.4%).
Iterative methodologies provide an alternative philosophy and approach towards API development. A smaller amount of features or capabilities are tackled in two, four or six week increments, often called sprints.
Iteratively releasing a small amount of features allows teams to stay more aligned to customer’s requirements. Additionally, customers provide immediate feedback and often are direct participants in the process.
This shift in philosophy allows for far more rapid change and consumer input in the way that APIs are developed. One shortcoming of traditional waterfall approaches is that it’s difficult – if not impossible – to predict customer needs months in advance. This approach allows organizations to be much more sensitive and reactive to the marketplace in a shorter timeframe.
In spite of the benefits of Iterative Methodologies, it’s important to recognize the challenges that these introduce in API delivery. It’s a complete change in process and mindset, requiring a different approach to specifications and documentation, new tooling, and an organizational emphasis on flexibility to change.
Moving to the Cloud
Description: Infrastructure, Platforms and Software-as-aService provide on-demand resources that compete with on-premise or managed service provider resources.
Cloud computing has introduced a major shift in how organizations design, develop and provision software. The speed of provisioning software and infrastructure occurs within minutes versus the weeks, months or years for traditional hardware and software. In addition cloud infrastructure provides the flexibility of being able to scale on demand to meet the demands of an organization’s customer usage.
The challenges introduced by this new model of computing are numerous. The first may relate to whether the flexibility the cloud provides can fit within regulatory, data privacy and service level agreements of an organization.
For example, customers that have certain in-country data requirements for personally identifiable information (PII) may not find a vendor who can provide such services. Additionally, cloud computing requires a different set of organizational skills.
Examples of this would be getting staffed trained in the platform being leveraged (Salesforce.com, Amazon Web Services, Workday, Microsoft Azure). Finally, the cost considerations and how you operate within these constraints is a concern.
Platforms such as Amazon Web Services cost are driven by the type of resource (e.g. larger servers vs. small servers) and cost model being leveraged. Different cost models are provided to allow for immediate access to a resource (On Demand), long term reservations (Reserved) and an auction marketplace (Spot). Generally, it’s important to consider that the shift towards cloud computing changes the roles and tools used in API delivery, introducing migration challenges.
Business Agility
Description: Infrastructure, Platforms and Software-as-aService provide on-demand resources that compete with on-premise or managed service provider resources.
Today’s businesses are challenged with delivering functionality to their customers at much faster rate. Examples range from the automotive industry, which shrunk new car development from 5 years to 3 years – changing the standards by which all competitors needed to deliver new automobiles.
Additionally, the consumer electronics industry has seen a similar emphasis on rapid delivery, with organizations such as Apple setting the consumer expectation that they release new products on an annual basis. The music industry delivers their product almost exclusively through an on-demand model. Put simply – as organizations make advances in business agility, consumer expectations mold to these new timeframes making business agility the standard rather than the exception to the rule.
A differentiator for many organizations is their software and its ability to refresh hardware to support more and more capabilities. Tesla automotive for instance was able to introduce Autopilot (self-driving vehicle capabilities) via wireless updates to take advantage of on-board electronics and sensors. Nest is able to introduce new features for heating and air conditioning, smoke alarms and security video, in the same fashion.
Software’s flexibility makes it a natural supporter for Business Agility and bringing compelling products to market.
Stores/Marketplaces
Description: Consumers demand simple access to vendors’ software, APIs and applications.
With the advent of iTunes and the App Store, Apple fundamentally changed how digital content / applications were found and consumed. Digital stores or marketplaces have become a requirement in today’s organization to facilitate a simple and easy consumption model for their customers.
Stores and marketplaces also provide a means of creating a rich eco-system with third party providers, an additional revenue stream for applications / APIs sold and increase the overall stickiness of a provider’s solutions.
While APIs have enabled a piecemeal approach to application development – why develop a robust mapping capability inherent to your application when Google Maps already has an API for that? Why reinvent the wheel? – this creates a need for shift in focus.
Extensibility is profoundly important, so developers have the challenge of creating better documentation, as well as including a developer portal in the delivery process. It’s imperative to consider how your application or API could potentially be consumed or extended by others from the very beginning.
Talent
Description: Competition for and maintaining sufficient technical resources impacts organizational ability to deliver exceptional software.
The competition organization’s face in acquiring and maintaining talent to develop software solutions is ever increasing. As part of that challenge, knowledge management and solutions to capture and leverage that knowledge are critical to maintain team’s velocity.
In addition, alternative means to support projects such as outsourcing, distributed teams and open source software models can impact delivery due to distributed capabilities / knowledge.
Companies are also reaching out to the developer community via Open Source Software solutions they are sharing on GitHub to draw interest, participation and even employees. Examples of this include Nike, Netflix, LinkedIn, Google and others.
The new social contract no longer dictates that individuals stay loyal to a company for the majority of his or her career – now, as tenures at different organizations shortens to just a few years, anticipating turnover and building replicable processes is a challenge.
ReadyAPI is the most trusted API testing tool for agile developers and testers
Write, run, integrate, and automate advanced API tests. Download your free trial of ReadyAPI today!
Learn more:
DevOps and Agile API Testing
Best Practices in Supporting Continuous Integration, Delivery and Deployment
Dev Ops Trends
Automation & IoT Testing
5 Best Practices for Data Driven API Testing