Skip to main content

Software Requirements: Is it a Toaster or an Aircraft Carrier?

Building software solutions begins with identifying business requirements, and many project failures can be traced to poor requirements.

Part of the problem is that features and requirements language is often too broad or ambiguous, leading to conflicting interpretations, as I discussed in a blog post Stuff Passing as Requirements. These include meaningless expressions such as "intuitive," "user friendly" and "seamless integration" as well as impossibly broad statements like "meets all applicable compliance requirements."

One of my favorite classic information technology textbooks is Exploring Requirements: Quality Before Design by Donald C. Gause and Gerald Weinberg.  The book is a great foundation for understanding product development, not just for software development.  It will encourage you to ask more questions and think about requirements in new ways to make your projects more successful.

Another, related problem, is that information technology is by its nature both abstract and plastic, because it may be applied in so many different ways.  We often search for metaphors to help us scope software projects.  Sometimes the metaphor can illuminate, but often it obscures.

One of the most common metaphors I hear in software projects is the automobile.  "Do you want a Chevrolet, or a Cadillac?"  The idea is to separate required features from optional features.  This often fails in software projects, because a requirement of "red, has four wheels and carries passengers" applies to Radio Flyer wagons and to Ferraris.  One of our clients described a software requirement as so broad, you could use it to build an aircraft carrier. 

We also hear the analogy of a house or building.  How many rooms, or stories, or how tall do you want your software?  Again, this can be a point of departure, but often we end up with a skyscraper resting on the foundation of a shack because of changes made during the course of a project.

In the end, I often find that users cannot determine what they want or need until they see it. Prototyping and looking at comparable systems is much more useful than blue sky requirements brainstorming.  This approach allows you to benefit from the experience of others who have already covered similar territory rather than starting from scratch. 

Please share your software requirements experiences with me on Twitter @jamestownsend. 

Popular posts from this blog

Key Concepts for Microsoft Dynamics 365: Tenant, Instance, App and Solution

Updated 8/15/2022 To understand Microsoft Dynamics 365 (formerly Dynamics CRM) and Power Apps, you need to learn some new terms and concepts that may be a bit different from what you know from databases and solutions that are hosted on premises.  These concepts also apply to Power Apps.  The main difference is that with Power Apps you are not starting with a Microsoft app but more of a blank canvas for your custom apps.  This post introduces some key terms and how these concepts are important for planning your implementation. While Dynamics 365 is still available on premises, it is most commonly deployed on the Microsoft cloud.  This blog post discusses only cloud implementations. Microsoft has multiple clouds such as commercial and government community clouds in several countries. We start with a Microsoft tenant .  A tenant is the account you create in the Microsoft Online Services environment (such as Office 365) when you sign up for a subscription. A tenant contains uni

Understanding Dynamics 365 and Office 365 Admin Roles

Managing Dynamics 365 instances If you run Microsoft Dynamics 365 (formerly Dynamics CRM) in the Microsoft cloud, you need to understand how your Dynamics instances relate to Office 365 and choose which of your administrators receives which roles and permissions to manage Dynamics 365. In on premises deployments, your network administrator would create and delete user accounts.  The Dynamics 365 admin would then assign permissions to users in Dynamics 365. This post explains three administrator roles: Office 365 Global Administrator Dynamics 365 System Administrator Dynamics 365 Service Administrator You may think that the Dynamics 365 system administrator would have power to do all the actions needed to manage Dynamics 365, but this is not the case. What's different in Microsoft cloud deployments is that licenses and user accounts are managed in Office 365 by an Office 365 Global Administrator.  This role is analogous to a network administrator for an on premises

My Favorite Microsoft Power Apps Bloggers and their Blogs

  by James Townsend Updated 7/5/2022 Microsoft Power Apps is one of my favorite subjects, and I enjoy reading blog posts from members of this thriving technical community.  Here are some of my favorite bloggers and their blogs: The Official Microsoft Power Apps Blog   I have to start with the official Microsoft Power Apps blog.  It has many contributors, largely Microsoft program manager, including frequent posters Denise Moran ,  Greg Lindhorst , Kartik Kanakasabesan , and  Adrian Orth .  This is the place to go for product announcements, updates and technical how-to for a broad range of Power Apps topics.  April Dunnam April Dunnam was formerly focused on SharePoint and now devoting herself to Power Platform.  April offers highly understandable explanations of Power Platform, Dataverse and other top Power Apps topics. She joined Microsoft in late 2019 and has a thriving YouTube channel .  Carl De Souza Power Apps Blog and eBook This is one of the most extensive and best organized blo