Some people think that OOP makes software development overweight to pull through. It is not true. OOP is about spending more time with design which can lead to much lesser time on code, lesser bugs and quicker releases. OOP involves identifying entities, responsibilities and assigning the responsibilities to the right entities. This allows separation of entities at all levels, and then controlled interaction through loose coupling between them. Unstructured/Mixed programming might be quick at the first instant but becomes unmanageable later. This happens because now the amount of code becomes directly proportional to the scalability and flexibility is lost because of hard coupling. It is always more difficult to write scalable and flexible applications than to write short-term focused applications. OOP gives you an approach to make this easier with maintainable code. What OOP requires is explicit time for design and for some planning. In no way does it pull back your software development. Lack of understanding and expertise can, but that is true about any development, not just software!

