PenultimateWidgets has decided that all new development of user interfaces must support accessibility, both web and desktop. Because this is a new initiative for developers, architects fear they will forget to do this and thus want safeguards.
PenultimateWidgets has been a Bad Company (cheating on some complex accounting rules), but they have reformed their ways and paid their penalties. Now, however, as part of the settlement, they agree to put auditing measures in place around code that handles accounting rules. State auditors come once a quarter to look everything over, but PenultimateWidgets has found it too much of a chore to delay preparation until near audit time; they want a more automated way to verify things.
PenultimateWidgets has recently hired many new graduates and interns. During code reviews and pairing, more senior developers notice a tendency towards overly complex code, including long methods and classes. They need fitness function(s) to control this.
PenultimateWidgets builds a number of applications in Ruby on Rails, which has an active release schedule. Occasionally, developers really want a feature that appears in version X+1, where PenultimateWidgets is currently on version X. To acquire the desired functionality, developers back-port the new features from X + 1 into X. However, when PenultimateWidgets finally does upgrade to X + 1, the back ported features are almost certain to break because of incompatibilities.
PenultimateWidgets has been burned in the past by having hard-coded constants in several places in their code base, governing both business cases (thresholds, maximums, etc.) and operational concerns. Architects need a way to prevent developers from accidentally hard-coding critical values.
PenultimateWidgets has entered an extremely competitive market, with a startup running popular flash promotions. The marketing department has committed to keeping up with PenultimateWidgets own aggressive marketing campaign, which requires development teams to be able to deliver changes to the promotion pages within an hour. Thus, they want a guarantee that changes can always take place within an hour.
PenultimateWidgets wants to ensure that both Java and Javascript applications support remote debugging in the development environment to aid in faster customer support resolution.
PenultimateWidgets is proud of how popular their website has become and want to make sure the site performance degrades gracefully as scale increases.
PenultimateWidgets has recently been burned by a Maven update that broke several applications yet wasn't detected until production. Architects and business people want to make sure this doesn't happen again.
PenultimateWidgets has gotten tired of each application requiring an elaborate environment setup to deploy and run, and has decided that all new applications must be deployed within Docker containers. The PenultimateWidgets architects want to ensure that all applications follow the same standard deployment guidelines.
PenultimateWidgets has been burned in the past by hard-coded strings in applications that tie applications to a particular data center location. They want to ensure this doesn't happen in the future.
PenultimateWidgets developers have developed a bad habit of keeping files checked out for days or weeks at a time, preventing continuous integration. As part of their attempt to improve engineering practices overall, the enterprise architects at PenultimateWidgets encourage frequent check-ins with corresponding good test coverage.
PenultimateWidgets publishes an API for third-party, business-to-business integrations. To make it easier for clients to consume their services, they have instituted a convention that every endpoint delivers a documentation string when called with the additional parameter '&docs=true'. PenultimateWidgets architects want to ensure that all published endpoints include this documentation string.
PenultimateWidgets publishes an API for external vendors to check on order status, availability, and other B2B perqs. However, the external partners rely on the documentation of the API, which sometimes becomes outdated when developers add new functionality. The PenultimateWidgets architects want to ensure that documentation is always up to date, especially method signatures and data formats.
PenultimateWidgets utilizes a microservices architecture and want to ensure that as new requests appear that the architecture elastically scales.
PenultimateWidgets distributes a desktop application to select clients that facilitates coordination between business partners. The application is written in C#, using .NET desktop libraries. In the past, PenultimateWidgets has exhibited problems with the installer not working correctly for some edge cases, and they want to ensure that their clients have a good installation experience.
PenultimateWidgets lawyers became worried about the license terms of the open source libraries PenultimateWidgets used--they wanted to make sure they weren't allowing any viral licenses. They did the initial check of the licenses, but then one asked the developers: what happens if one of the frameworks changes their license?
PenultimateWidgets has started experimenting with flashing the chips on their 'smart' widgets during the manufacturing process, allowing them to make changes in hardware-based code more easily and quickly. However, they must make sure that the mock version of the hardware API the developers use is always up to date with the real API.
PenultimateWidgets is proud of how popular their website has become and want to make sure they maintain good throughput: a combination of performance and scalability.
PenultimateWidgets legacy accounting system grew over many years, with arcane business rules scattered in many places--no one really understands how everything works anymore. They have been working for several years on replacing the accounting system, but worry that the new system cannot replicate the byzantine business rules that their clients have come to depend upon.
PenultimateWidgets wants to ensure that Java and .NET applications support monitoring.
PenultimateWidgets has a group of developers who cut their teeth on mainframe programming, where all work is done via a terminal. They have (mostly) switched to modern web development, but architects find that they often create models and workflows directly in web pages rather than support a cleaner MVC separation, and they would like to discourage this behavior.
PenultimateWidgets built a network scanning tool many, many years ago to look for suspicious activity at the network packet level. To achieve the proper performance, the code was written and has been maintained in increasingly complex C code. PenultimateWidgets needs to replace the code but is nervous about introducing bugs and/or harming performance or throughput.
PenultimateWidgets business analysts are worried about one of their key competitors, who has a very fast website. PenultimateWidgets website has traditionally not featured speed; they want to ensure that the responsiveness doesn't get worse.
PenultimateWidgets is in the process of rebuilding their core platform, incorporating some key features that will appeal to others in a similar problem space. PenultimateWidgets plans to sell their platform to other companies, but worry that the differentiating factors (such as performance, scale, and elasticity) will suffer as clients start making changes to the platform, ultimately harming PenultimateWidgets platform's reputation. How can they sell their platform and still ensure that the critically important characteristics remain unchanged?
PenultimateWidgets has a bad habit of waiting too long to update core libraries and frameworks they depend upon for development. Waiting past several versions makes the eventual upgrade quite painful, and they have resolved to perform upgrades in a more timely manner.
PenultimateWidgets management has become concerned about zero-day exploits in open source libraries and has tasked the security team with coming up with a way of ensuring that projects do not use known compromised versions.