Home

Thursday, July 7, 2016

Chapter: Software Development Lifecycle

Let me start by explaining the Software development cycle. It involves four phases that help create a software application. These phases can further broken down but on a higher level they can be classified into the following:
  1.  Requirements gathering
  2.  Development
  3. Testing
  4. Deployment
Requirements GatheringAny information about a software application can be called as requirements. Requirement gathering involves collecting information about the software that is going to be built from the person who requested for it or needs it. Sometimes it is not even a person who gives you this information. These requirements can be functional, visual, technical, etc. It might just be defined as a functionality that the software, for example, create a login functionality with username and password.

Requirements can very extremely high-level like our example or could be detailed if you are lucky. In either case, it’s up to the people involved to understand the needs and provide viable solutions.       

These requirements are usually in layman’s language and now need to be converted into functional specs. This makes the development process smoother. So what are functional specs exactly? In our example, to create a login functionality, a functional spec gives you details about what should happen when an incorrect password in submitted or what happens when a username is not entered or what are acceptable values in these fields or default values, if any. Functional specs give you specific details related to all the components of the software application being developed.

Once all the requirements are gathered and converted into functional specs, they can be handed over to the development phase.

Development – Once the requirements and functional specs are handed over, the development of the application begins. Functional specs gives the developers a detailed description of all the functional components of the application. The development can be done as a whole or modular, if the application is too large.

Testing – The development phase is followed by the testing phase. This is where all the developed application components are tested to verify functionality against the requirements or functional specs. The testing can be modular or as a whole as well depending on the development process.

Any functionality that does not reflect the requirements or functional specs is an error. This error may be termed as a bug, ticket, issue, defects, etc. Each organization may have its own terminology. Any error reported in the testing phase have to be fixed/resolved before the application can be deployed.

Deployment – The actual process of releasing the software to the users is called as deployment. Once the testing has been completed, the application is ready for deployment. Deployment involves extensive planning and well-timed sequential execution of elements. A deployment plan is prepared which details the various steps involved in the deployment with specific responsibilities assigned. It also consists of contingency plans, in case of a deployment error. 

Wednesday, July 6, 2016

What? Who? Why?

What is software noob? Software noob is a blog that will help you understand any and everything related to software development in plane simple language. I will start off with basic concepts and then move onto complex details.

Who am I? I am a noob blogger who decided to explain/share software development related information to the best of my knowledge. I have been working in the Software Industry for about 7 years (2016). I started as a software noob after my Master’s and I know what it feels like not to know basic concepts.

Why am I doing this? You nosey person…

Feel free to leave a comment and ask me questions. I will try to answer them to the best of my knowledge.