In the last video we saw many different software development models, and today we are going to continue that only. Last time we saw rad that is a rapid action model, then waterfall model and spiral model. Today we will see the prototype model first, so as compared to other models, the prototype model will finish the project very quickly but the problem is your project's definition will not be clear, which means you will first get a prototype. So let’s see what are the advantages and disadvantages of prototype models.
Here, in the diagram only you can understand the whole process, so in the prototype model you will take some requirements from the user like what all things does he want in the app? So once we get the requirements, we will start brainstorming, meaning we will think about what we have to create and how? And after that we will develop it, after that we will test it quickly, and after that we will hand it over to the user for evaluation. Now what will happen in evaluation? User will decide what all things he liked and what all things he did not like? So after evaluation we will get the feedback about what changes need to be done and this whole process will be repeated, till when? Till infinite time. So where is it used? For example it is used for google website, google is a company if you see the older page of search engine of google, it was very simple but today as you can see many services have been added in google, earlier it was only search engine then gmail was added then he purchased youtube, now we have google drive, google sheet, we also have google meet now so this gradual progress which can be seen here, if you also want to do the same thing you can do it, you just have to use prototype model.
So ,in this model you don’t know any requirements, the user just wants a search engine in starting, even the client does not know what all things he requires? So you will fulfil all the basic requirements asked by him. You will just create that much and give, okay. After that he evaluate it means, he will run it and check what all things he need in that and will revert back, so now again we will start with brainstorming and again we will create another prototype and give it to client and then again client will evaluate it and ask for some more features and this process will go on. So this prototype model is an infinite model means this goes on continuously, even if you take example of google search engine you can see its page keeps on changing now also and it is compulsory and if he does not do that then it will not be able to cope up with trend, why? Because we have lots of search engines nowadays like duck duck go, bing then yahoo also we have, yahoo was very famous earlier even before google, but it was not able to follow the trend like google, as you can see in google if there is any problem while searching, like if you are searching for something and you did not get any answer for that and if you search for same thing after few days then it will give you that answer, means they keep on updating google so this development or update is possible with prototype model only okay.
Now after the prototype model we have another model that is an incremental model, now what happens in the incremental model? If your project is not big means that there cannot be any legal issues only in such cases you can use it. So what happens in this? You will take project’s idea and once you take that you will take the requirements and then accordingly you will make design, and after designing you will start coding and give it directly to user, now once you gave it to user you will start testing okay, and example for this model is any web hosting services, you can take example of go daddy so if you post any website on go daddy then after hosting your website you will test it whether your website is working properly or not, okay. So here you need to first implement and after that you will move on to other things and once you implement your website will become live and after that you will start testing.
Now if your data is confidential and if it requires legal verification then you will not be able to use incremental model, if you website or application does not have any security issue even if security is less, means it does not have any confidential data like any game okay that too offline, so in that you can use incremental model, so in this what will happen? You will take requirements and accordingly you create a design, and then create a game and gave it to user now after giving it to user you will check for errors in that or user mentioned any error and if any problem occurs you will test it, evaluate it, and then you will again start with planning and after that our whole process will start again.
Now what is the disadvantage of this model, so the first disadvantage is your testing is done, after giving it to user so, if user does not like anything in your application so that time it can happen that user will find for alternative instead of your application, so this incremental model can be used in such situations where you don’t have to worry about losing client first and second where there is no possibility of having legal issues and what is the advantage of it, so here you can see we have removed two steps so as we took requirement we will make prototype and then implement it and give it to user so our lot of time will be saved right, so in this model we will get our output in very less time and if you have to generate output quickly and don’t need to worry about its testing, then you can use incremental model.
Most commonly used model nowadays is agile model, in agile model what happens is as we saw in spiral model last time same process is applied here but here we call it sprint, so the same process is done here but in sprint, so in agile model according to process you will first take requirement then you will design it, develop it, test it and after testing you will deploy it and after deploying you will wait till its evaluation for feedback and then you will know whether any changes need to be done? So you will again start the whole process, okay. So what is the advantage of the agile model and how is it different? If you look carefully it is the same like our old spiral model then what is the difference between agile and spiral model?
In agile model the word which we are using is sprint, sprint means as my first rotation of agile will start so until that rotation is completed our requirement does not change and once that whole process is completed our sprint number two starts, but if we talk about spiral then what happens in that, in this even before completion of first sprint your second sprint can start means your requirement can change in that if there is any risk then you need to get rid of it and it will consume time, so in agile model chance of risk is less or we don’t spend time on resolving risk whereas in sprint model in that we will give importance to each and every step means until and unless first step is completed you do not move on to second step okay and in that we need to focus on risk also.
In agile this is not the case, if there is any problem occurring then what will we do? We need to complete sprint 1, if I have been asked to create any design or I got the requirement then we will create that much and if any problem occurs then we will solve it in second sprint okay, here the problems which are occurring will be solved in second sprint only we don’t even try to solve it in first sprint, whereas in spiral model if any problem occurs and we need to tackle it then we can do it even before the round is completed so all these models which I have explained you if you need to track it as we can see all these models are theoretical part right, if you have to implement it in real life then how will you do it? You have three methods of implementing it, so the first method is time chart or as we can say gantt chart.
So in this chart you can see which month is going on or what time it is and on the left side your requirements are given and the level on which you are working is mentioned, so how many days do you require for requirements and how many gatherings have been completed? 6 out of 21 tasks have been completed and others are remaining, so like this you can track the whole process, so the biggest advantage of this time chart is if you are alone or your team is small and if you want to just monitor whether your work is going according to given time or not and how much work has been completed so you can use this time chart or gantt chart and through this you can easily track it, but it has some disadvantages also like if your team is large and work is divided then you will not be able to monitor which person is working on which part of project? but maintaining this is very easy if your project consists of fewer people and requirement is also very less okay, so that time you can use this Gantt chart or time chart.
If your team is large and your work is also more that time you can use scrum board, and it is mainly used in agile okay, as we mentioned our work through sprint. so our task will be seen at the right hand side of chart as we would have written it already okay, and the next part all the tasks which are to be done next will be mentioned okay, and the whole table at left side in that your whole project will be divided in parts, which work has been completed? Which one is in process? And which one is done? In this we will also mention which work is assigned to whom and how much of it is completed.
Now what is the benefit of a scrum board in comparison with a time chart? You can monitor your work in this chart but it has one disadvantage also, you will not be able to know how much process has been completed, okay so in this we saw our requirement gathering has been completed and designing has also been completed, at what time how much of it was completed for that you need to make a graph okay, and every time you need to test it but if your project is big and many people are involved in that and requirement is static that time only you can use static board, requirement should be static means once you created sprint then our time has already been dedicated means that this much task should be completed in this much time and this person will do this task.
Now what is the disadvantage? Once a task has been distributed, you will not be able to add any new people and you will not be able to add any new task, and if you want to add new task then you need to wait till the next sprint starts and when will that happen? When your first sprint of this scrum board finishes that time okay, and your requirement will always be static means whatever task is given to you that needs to be finished first and new task cannot be added to it you have to do what you are told to do.
Now apart from this we have another board that is kanban board, now if you compare this board and agile scrum board, then you will realize it is almost same as their appearance are almost similar, but there is only one difference, our scrum board is only for single sprint means in that requirement cannot be changed but here in kanban board the left side which is known as to do so, in that to do what happens you can add any new task which comes, means here your requirement will be dynamic means as work will come it will be added to it and there will be no time limit means here if you don’t have any time limit and want to distribute this work in many people and you want to track every person’s work and how much of our project has been completed then you can do that through kanban board.
So here each board has its own advantages, in one board you can track time, but you cannot see each person’s work . Another one is kanban board, in which you cannot track time but you can track which person is doing what, and third board is scrum board in which your requirement is static okay, means in that you will already have task you cannot add new task and in kanban you can add task whereas in scrum you cannot, and in scrum you will have deadline also okay. so each of them has their own advantages and disadvantages and we have many more prototypes and models in software engineering but the ones which we discussed here are very common.
If you have any comments or questions regarding this course then click on the discussion button given below this video and post it there, and you will be able to discuss the course with learners.
Jay prashant kakade
Its a great platform to learn if u a student instead of putting your time n money out in classes n all get the knowledge as much as you can