Blue Flower

Software Specification

In today’s environment word processors are commonly used to document software requirements and specifications. In this environment, for any given release of the software, the development team is well versed with the functionality of each release. But many times a situation arises when it is necessary to know how a particular module changed over different releases, who requested the changes and what was the rationale. With the high turnover in today’s job market, many a times, the person who requested the change may no longer be with the company and the current staff has to recreate the situation and many times redo the effort. This template describes how infobrella may be used by developers and architects to document all the specifications and change requests so that it is easy to find out the specifications of each release as well as changes for any module over different releases.

Download Template


In the software industry today, business specifications are typically written in a word processor, and the documents detail changes by release:  For any given release on day x, everyone knows (and can look up later) all the objects that were changed in that particular release.  It is impossible to tell, however, the history of the application at an object level.  For any given screen, button, dropdown, etc in an application, why does it function as it does?  Who requested changes in its functionality and when?  When did the change go to the production environment?  Who coded the change?  Who tested the change?  Why did [the person who is no longer in the company] make a certain option not available anymore? There are many important questions that need to be answered, and when they come up, Business Analysts, Programmers, and Testers alike waste time searching through email, specification, and code history searching for the answers.  If the application has had team members leave, sometimes the answer will never be found.

Infobrella offers a new way of writing business specifications that allows for deep understanding of every object in the application. 

Let’s take an example where you are creating a brand new software that is a word processor.  You are using Infobrella to create your specifications.  It is January and you are creating the first version where you want a main screen that has a toolbar with the three buttons of ‘new’, ‘open’, and ‘save’.  There will also be the two additional screens that will appear when users click ‘open’ and ‘save’. 

In the Infobrella file, you first create the general heading for ‘Word Processor Spec’, and below create your three screens. 



The Main screen will have a toolbar that has buttons which do things when the button is clicked. The Open and Save screens will have dropdowns where you can select a file type.  You model these in Infobrella as follows:



So far you have modeled that you will have three screens: the Main screen will have a toolbar with three buttons that will have events fire when they are clicked, and the Open and Save screens will have one dropdown each.  The critical thing to note now is that you  have only modeled the existence of each object.  You don’t put any instructions about its functionality or appearance in anything we’ve created so far.  All instructions and details go in the ‘Spec Change’ items.

You’ve finished modeling which objects exist and now you want to give instructions to the programmers on what specifically everything should do.  You create a ‘spec item’ for these.  In the image below, you can see that each object has a ‘create’ spec item.  The ‘New’ button, ‘create button’ instruction is highlighted.  In the Details pane, we can see that it was requested by BA1, in Version 1, the status is ‘new’, and it has been assigned to Dev1.  There is an attachment of an image that shows what the button should look like and the graphic that should be it.  The notes instruct, “Add a button to the toolbar with the attached icon. It should be the first button in the row.”  The programmer now knows exactly what this button should look like and where it should go.  To see what this button should do when it is clicked, the programmer looks to the Spec Item under ‘New button click’.



As time goes by and the developers make progress, they update the status of each Spec Item.  If it is now mid January and you want to check progress, you can look at the Details pane:



Now it is June and you are ready for your next release.  Currently in your word processer software, when users select ‘new’ it closes the current document and then opens a new one.  Instead you would like it to keep the current document open and also open a new one.  You also want to change the icon on the Save button and add more file types to the dropdown in the ‘Open’ screen.  You create three new spec items, place them accordingly, and add instructions:



Again, you can see in the Details pane which items belong to which release, which developer and business analyst worked on each request, etc.  This example has been simplified, but you can also track if each Spec Item has gone to a testing environment, which tables, stored procedures, etc had to change to implement the change, or whatever else you want to track.



We’ll continue the example through one more version.  For version 3, you want to add a ‘Print’ button, and give all of the buttons Tooltip texts:



If the developer has a question about an item, they can change the status, add a comment to the Notes section, and assign it back to a ba.  If there ends up being an email discussion about an object, once it comes to resolution, an appropriate Spec Item can be created with the email attached. 

With Infobrella, you can easily see all of the changes that have been made with each release by sorting in the Details Pane, and you can easily know the history of each object by looking in the Item List pane.  You know the complete history of your application and it’s precise current status.  Documentation is in one place instead of being spread out through emails, source control, and specification documents.  Knowledge loss is diminished and knowledge transfer and simplified.


Please publish modules in offcanvas position.