A Peek inside the MNCs Development Models
- In Blogging
Hey friends, I’m going to share my personal experience of working in MNC. The other day I was having a pleasant conversation with someone outside of my company over some chatting app. Conversation was about the company and culture and then it shifted towards the application development process and models. Currently, Agile methodology is the latest trend when it comes to application development. More and more MNCs are moving towards Agile Methodology as a replacement for Waterfall model. So, as we were having conversation about it… She said – “Agile is funny. Waterfall was simple and pleasant.”, and I thought to myself, I also feel the same way. So, it came to me that I should write an article on the same, putting my 5 cents on the topic. Also, it will help freshers who are about to join the company gain some insights.
What is Agile Methodology?
I think I should make it clear first. Although agile is not new but most of you might not be aware of this method as it is not taught in most of the colleges. After all, most of the colleges teach useless stuff which have nothing to do in real world problem solving. Well, that’s a whole different topic to talk upon. Coming back, Agile is a software development methodology which took birth in the year 2001 but was not known by the name agile. I don’t know what it was called back then. Agile methodology is a set of best practices taken from all the different models such as waterfall, incremental model and many more. In theory it gives more attention to individual of a team. Agile makes things transparent, in agile everyone stands at the same level, be it manager, technical lead or scrum master. Everything is kept in front of the employee. It really sounds good when told, on practice it severely depends on the individual’s mindset whether they are open to work in the Agile environment.
In agile methodology, we get User Stories. User stories from a high level view are simply the tasks that a client wants us to do. For ex – If we want to develop an application which will do some calculations, let’s say we want to build a calculator. Then that calculator will be able to make certain calculations. These calculations can be divided into smaller modules as ADD, SUBTRACT, DIVIDE, MULTIPLY. So, we would divide the development work into modules and each module will be called as a Sprint. Each Sprint is consists of user stories. In this example, We would create a sprint for ADD module. In this we will have the user stories like –
- It should take user input for two numbers
- It should add two numbers
- It should display the result to the user
This sprint will be given a timeline and at the end of the sprint a potentially shippable product will be released. By potentially shippable product, I mean a product which is a working state. This is agile, Simple and sweet. After every sprint you get a working product with one module complete. Obviously, there are lots of other things that goes into making but at the surface we just followed an Agile Methodology.
I’m not going into details or the process of agile here but if you are interested then I would dedicate an entire article for that. Just let me know in the comments below. You can also refer to wiki?page for in-depth technical description.
Is Agile Good For Employees
Agile sounds very good, so good that you will never say no to it. The problem comes while practically implementing it. I’m not saying it is not productive, it is productive there’s no point on that but it is productive only when your employees are taking it well. If your employees are not acquainted with this new model of product development then it becomes a nightmare for the employees. The biggest huddle that I felt while talking to my colleagues was the daily scrum meeting. In agile process, team has to conduct daily agile meeting to stay updated with each other’s state. In most of the MNCs, we talk outside of India (mostly USA), so we have to wait till it’s 8:00 PM to participate in daily meetings even if you are done with your work in the afternoon. There’s no way you can go home early. This is one of the annoying concept of agile for most of the people.
Second things is that there are lots of other housekeeping work associated with agile. You will have to do a lot of things everyday, like updating your daily status on the sheet. Inform the team how much work is pending. How much more time is it going to take to complete your task. Where do you stand at a current point. So, you see, there are lots of questions one may have to answer which has nothing much to do with their actual work. A professional software engineer may sometimes don’t take it well. They don’t like to answer each and every single step while they are developing a product.
In my overall experience, I don’t think employees of the company are happy with Agile Methodology. While on the other hand, higher management seems to be enjoying it, because they get to know each and every single thing about the whole application development process. So, it makes them feel in control of the situation which is just an illusion. If you are not from the programming background then there is no way you can understand the work of a programmer. So, I think it just put pressure on the developer as he thinks there is someone keeping an eye on him all the time.
Should we Implement Agile or Not
Agile methodology is not bad if people are willing to take part in each and every process of it. I think agile would be very effective for the organization or the company at the time of it’s start. Small and growing companies can really make use of agile methodology. It would create a healthy environment in the team and everything will be transparent. But for big organizations and MNCs, I don’t think it’s going to be that much effective. Most of the people working in large organizations have become use to the same old techniques. It’s not like the old techniques are not efficient but it’s the human nature to experiment. Who knows what these things are going to evolve into.
To conclude, I would say Agile methodology has been created by taking the best practices from most of the software development models. Agile is efficient and makes things more transparent. But agile cannot be forced to employees. If an employee is not feeling comfortable with all the different pieces that agile brings with it, then it becomes quite difficult for him to keep up. And that’s where the efficiency starts to go down and frustration tends to rise up. So, in my opinion Agile should be brought into practice if and only if all the employees accepts it gracefully. A trial run must be taken after implementing agile methodology, if you see that employees are happy and accepting the process gracefully then you must go with it, otherwise not. ?
After all, Agile is not something to be forced. It is just an Idea to bring the best of all the worlds together to make software development effective and fun.
What do you think about Agile now? Let me know in the comments below.
And as always,
Be my aficionado 🙂