Posts Tagged techtalk

Tech Talk – 2 : KST Software life cycle

Guys,

Everyone talks about software and software industry. We have been using a huge number of softwares, have we ever thought that a software also passes through several stages before hitting the end-user. Yes, Softwares also has several stages to pass through and these stages collectively are known as the “Software Development Life Cycle” (aka SDLC).

There are several models of SDLC namely
1) Waterfall model
2) Iterative model
3) Agile model
4) RAD
5) XP (Extreme Programming)

Lets consider the simplest software development life cycle named the Waterfall model. The waterfall model gets its name as the following steps are carried out in a sequential manner. Once the first step is complete, the second step is started. Only when the second step is complete the third step is started etc.

For any software to exist, there should be a definitive statement as to what this software would cater to. For e.g. Microsoft Word software can be used as a word processing software, Microsoft Excel can be used as a spreadsheet. These are the very basic high level statement that defines the use of the softwares. Given this statement, definitely a software cannot be developed. There should a definitive set of requirements. This stage is called the requirements gathering. This is the place where Business analysts (like Kottai) come into picture. They collect the definitive requirements for the software.

Once the requirements are gathered, then we get to the Analysis & design stage. Analysis & Design stage is started with the analysis of the collected requirements and then the design stage is usually split into two main things namely High Level Design (HLD) and Low level Design (LLD). High level design is the stage where the requirements are converted at a high level to the modules, submodules and tasks. Given the HLD, the developer will not be able to code the software as it will not have in depth design informations. Hence the LLD needs to be prepared. The LLD will usually contain the database tables, classes, methods etc. It will be the pseudocode for the software.

Ok, now I have the design for the software. What should I do now? The next stage is coding. Here comes the role of we the developers. We develop the software in accordance with the design. Similar to other industries, here also we have something called guidelines, standards, checklists, best practices and frameworks. Any code completed without testing is fit for nothing and hence we move on to the next step called testing. The Coding phase is where the technology comes into limelight. J2EE, .Net, VC++ are few of the major technologies. There are a lot of frameworks built in for each of these technologies. So what is a framework. A framework is a collection of reusable components. These are very much necessary as we need not re-invent the whole wheel again, rather reuse them.

In the testing phase, there are lots of testing types namely Unit Testing, System Testing, Integration Testing, Regression Testing and User Interface Testing. Unit testing is done by the developer where each and every program are tested individually. System testing is done by the testing team and here all programs are put together and tested together. Regression testing is the type of testing done to ensure that the new functionality has not broken the already existing functionality. The final testing is the User Acceptance Testing and done by a designated set of users.

Under each of the above stages, there is a quality process put in place. Quality is ensured by an internal review/ external review/ audit and inspection. The defects captured under the review/ testing under any of the phases are logged on a Ticket Logging system. Famous ticket tracking systems are JIRA, BugZilla etc. These tools are used to log defects/ track tickets to closure.

Once all these stages are complete, then the software is released for the endusers.

These are only very basic set of stages I have brought out here. Lets explore each and every stage in detail in the forthcoming sessions.

References:

http://en.wikipedia.org/wiki/Software_development_process
http://en.wikipedia.org/wiki/Waterfall_model
http://en.wikipedia.org/wiki/Software_framework

Thanks,

Veerappan Manivasagam

 

 

Comments (2)

Tech Talk – 1 : Kottai Business Analyst

In this new series of discussion about anything technical and useful to Invaders, Kottai has started sharing his first hand experience about Business Analyst job profile. Let us hear from the expert

Dear Invis ,
Good to write the first Tech talk. Topic for today is “Demystifying Business Analyst (BA)”

Who can be a BA?
Answer is pretty simple “Anyone one could be a BA”. Generally as per market, A person with MBA could become a BA easily. Most companies prefer people with B.E and MBA . They call them as Techno Domain; we shall talk about it little later.

Non MBA, who have extensive industry knowledge can also be an BA, but they lack certain skills like, they will know what to be done “ but does not know “How to be done”. This is the place where people with BE CS score above them.

What BA does?
Simply check mails??? Or work with excel sheets that’s what people generally perceive BA‘s work. It untrue, BA are generally responsible for the whole project or a module, they are sole responsible for the functionality of the software. For example take any banking system or a mortgage system , all calculations and formulae should be clearly obtained or arrived and should be validated once the coding is done , this is what they call as Functional Testing.

So initially first work of the BA would be requirements Gathering, next would be analyzing them.

Generally clients will not elucidate the requirements as we want, for e.g. Customer simply say they want to capture the customer details , it’s the role of a BA to break the general requirement (customer details) to more detailed one (such as Customer Name varchar(100), age number(3), address, etc etc.) .

What is Domain, does it require for a BA?
The paragraphs talked about BA of generic type, they could work on any client project.

But they fail in projects that deal with an Unknown domain e.g. Insurance, For this the BA should be aware of Insurance terms, business process, basically he should understand the insurance jargons the customer speaks. There are many domains to be specialized like Insurance, Banking, Health care, Logistics, Supply chain etc BA can choose one domain and obtain extensive knowledge in it. There are many international bodies who conduct certification in various domains for instance AII/AICPCU , LOMA , CII are some of the exams that could be taken to specialize in Insurance

Other Responsibilities
Developing SRS (software requirement specification)
Functional specifications
Use cases
Functional test cases
Review
UAT (User acceptance testing)
Proposal development
I love the job of a BA, where responsibility and accountability is very high. And sense of satisfaction is huge.

Leave a Comment