In this tutorial, we will explore business analysis and the essentials to write our first software requirements document. Taking an idea to the next level requires a little bit of planning. This is the planning phase of our web application development, also known as Requirements Engineering phase. If you are an entrepreneur, and would like to bridge the gap to development and software engineering world, this is that bridge. In this and next tutorial we will create a requirements document based on IEEE Recommended Practice for Software Requirements Specifications. We will start a basic requirements document for an online education and training app to be used as an employee training application for our imaginary client or prospects that we might be interested to sell this application to later on. We will build more on these requirements as we proceed with later versions of our application.
We started these web application tutorial series with an introduction to web apps and a very basic AJAX CRUD tutorial based on Zend Framework 2. However, our goal is to start developing complex web applications that could do more than just a simple create, read, update, and delete functions. Therefore, let’s start exploring what our application should do, and let’s start developing our initial requirements document.
Over the past year we had few clients, prospects, and friends with businesses, each from different industries, approach us with a need for a custom web application to manage their businesses. As part of these conversations, they all shared a need for a training portal for their employees. Since we are Big Employee, we couldn’t think small. So, we had to take our Big approach, and by Big, we really mean it. If all these businesses have a need for an online employee training system, maybe there are more businesses out there with this common need. We did a little bit of interviews to find out that we were right, and even more interesting, number of these businesses are required to conduct regular employee training because of some regulatory laws.
As part of our Big approach, we decided to create these tutorial series based around this concept for different reasons.
- First, it is complex enough to dive into web application development tutorial series. There are different entities, relationships between these entities, and it solves a real world problem.
- Second, it is universal enough to change the concept and create derivative products from the final product that we are going to build through these tutorials, such as: An online course or education application for school, or even teach your own courses online through the system that we are going to build.
- It is possible to expand the concept to even more advanced tutorials, such as Security, Access Control List (ACL), SaaS course system, Employee management system, etc…
- We’re Big Employee web engineering. Even though that’s not why we chose the name, but the irony.
As software development methodologies, we always want to adapt and reuse existing technologies as much as possible. So before we start developing our application, we wanted to find out if there are any similar systems out there. Unfortunately, all the great course systems that exist out there are all closed systems. Therefore, we will build our own open source training application to solve this problem. Having a community support will be fun along the way as well.
Here are couple of online course portals, some of them are Massive Open Online Courses also known as MOOC. Although we are not planning to create a MOOC, but these systems have a similar concept to what we are going to accomplish. To test it out, we totally recommend you to take the Git course on Code School, since we will be using pull requests to publish and update our requirements document. We might also use an alternative repository for community edition of this course app.
According to “A Guide to the Business Analysis Body of Knowledge”:
Business analysis is the set of tasks and techniques used to work as a liaison among stakeholders in order to understand the structure, policies, and operations of an organization, and to recommend solutions that enable the organization to achieve its goals. Business analysis involves understanding how organizations function to accomplish their purposes and defining the capabilities an organization requires to provide products and services to external stakeholders. It includes the definition of organizational goals, understanding how those goals connect to specific objectives, determining the courses of action that an organization has to undertake to achieve those goals and objectives, and defining how the various organizational units and stakeholders within and outside of that organization interact.
There are different methods of gathering requirements. If we are developing an application for our client(s), we could use a Stakeholder-driven requirements elicitation technique, which we have done that in this case. We have extracted out the core need, and have added our technical suggestions to the product.
The diagram above shows the core set of features that we gathered from our interviews. The orange and green paths are the requirements gathered from the business owners, and the blue and aqua paths shows our input to these requirements.
These set of basic features are enough for us to start and develop a working application, and immediately start testing our application in a real world situation before developing too far. This does not mean that we are not going to do any further planning. Indeed, we will be planning these web application series and our working software through series of iterative planning phases. We will adapt as the project unfolds, by changing our plans to reflect the concepts that we would like to expand on and talk in more details throughout these series. Also, feedback from our readers and effectiveness of our incremental delivery of working application to some of these businesses we had a chance to interview will also influence the direction of this application.
Next, we are going to use these core set of requested features in a formal document called the Software Requirements Specification document or SRS doc for short. Let us know what set of features you would like to see for the next mobile and web app tutorial series, and we will try to include them as part of the requirements.