Do you want to learn Scrum agile?
Do you want to learn business analysis & scrum agile with JIRA & Confluence. Create user stories, epics, features and sprints in JIRA. Enroll at INR 2999 ($40.99)
Agile Software development is a complex process and it requires multiple levels of iterations and analysis. Different teams work together in tandem to deliver a product which may look quite simpler at the outside, but is, extremely complex from inside.
IT industry or software development industry has evolved a lot, especially in last couple of decades. Today software applications are part of our life and are required to do whole lot of things for us. If you are interested in software development or a beginner in IT industry, then having question related to software development is quite expected. This post will help in laying foundation at the conceptual level.
Agile Methodology has been one of the most preferred methods of software development in last decade or so. Though it has existed for some time, its application has accelerated in last 10 years or so and is currently helping IT firms in developing large and complex software applications.
Before agile, waterfall model was used to to develop software which was kind of rigid in comparison of agile. In simple terms, it didn’t allowed to accommodate changes in requirements at later stage of the project whereas agile does offer flexibility in adopting these changes.
What is Agile?
Agile is one of the most widely used approach and methodology in software development. It is widely used in information technology sector to develop software applications of all kind. It includes incremental approach with multiple iterations at each stage.
Objective is to produce a software which is healthy and bug free. In order to do that software development life cycle is divided into multiple phases. Each phase has its own development cycle. So if there is huge software, it will be first divided into smaller functionalities based upon the actual requirements.
Each functionality is developed which may or may not happen in isolation of other pieces of the same of the application.
Everything happens in phases and pieces and next set of development will begin only if first set has been developed.
Process begins with requirement gathering where you have to gather all the requirements. Initial request could be vague and simply state the desired outcome. But in requirement gathering phase, business analyst is responsible for conducting through requirement analysis session where they dig further in the requirements and comes with all the pieces which are required to make the desired output.
Individual functionality are those pieces which are required to put together in order to make application work. Scrum is the most popular Agile Methodology.
Agile Software Development Broad Overview
As mentioned earlier, Agile is currently used for the development of all kind of software application. Here i have presented the practical approach of software development which is happening on ground zero and employed by most of the companies with customized approach.
These steps outlined here will give you a extremely broad overview of it but it will help you in understanding how things happens at ground.
So in first phase, requirements are gathered and fine tuned to be precise. For example, if it require changes at user interface, then you need to get exact information about the nature of the requirement/change along with their detailed information, if any. So if it is about name fields then you also need to get information about;
- Order of the first name, middle name and last name input fields.
- Any limits on the allowed maximum number of characters.
- Any restriction on type of characters like alpha-numeric and special characters like $, @, & etc.
Then you should do GAP analysis to understand the different between the current state and desired state.
Once you have requirement, you need to do impact analysis where you have to analyze their impact on the existing environment/system. At times, there are requirements which are conflicting and changes may affect working of some existing functionality. Therefore it is imperative to do impact analysis and find out any adverse impact, if any.
After impact analysis, you need to develop solution for the requirements. Developing solution requires you to understand the code level change, technical architecture of your product and kind of changes it may take to deliver the final product.
Once you have developed the solution, it is coded and unit tested by programmers.
Afterwards, code is delivered to quality analyst to test in the testing environment/region. QAs report defect using defect tracking system which could vary from companies to companies. These defects are fixed by programmers and retested by QAs. Once build is certified by QAs, it is delivered to the end users.
These steps are repeated for each functionality in the software development and delivered based upon project plan and requirement.
There could be slight variations in these steps depending upon individual project requirements and conditions. Scrum Agile, Kanban and Xtreme Programming are some of the most popular agile software development methodologies. I think scrum is the most used among these. if you are looking to get into software development job, i think learning scrum and business analysis will add lot of value to your resume.
This is a extremely broad overview of agile and how software development happens in technology firms. Leave your comments to share question, concern and feedback.
This is totally a new subject for me. I searched out about Agile Methodology, the concept is now new but still I have not heard this before. I am glad that I came to your site and learnt something new today. Thanks for sharing your wisdom with us.
An entirely new concept for me but a great addition to my knowledge no doubt. I am not much into the technical software development but have always been keen on learning about it. Thanks for sharing the information.
I am planning to undertake a course in software development and this is where I encountered the ‘Agile’. But I never had much idea about it. Thanks to this share. It equipped me with a lot of valuable knowledge about this application.
Rapid application development R.A.D is a software development methodology that uses minimal planning in favor of rapid prototyping. The “planning” of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements.RAD involves methods like iterative development and software prototyping . According to Whitten (2004), it is a merger of various structured techniques , especially data-driven Information Engineering , with prototyping techniques to accelerate software systems development.