When I entered in professional life all I had in mind (about job) was I would be given a programming project that I’ll have to do. At my first job I was given web-based projects that I had to do in a certain time. As I made my first job shift it was altogether a different story. I realized there are many types of software companies and there is so much diversity than just coding, making websites and software. Following points I came up with in so many years which I think would be helpful for a fresh graduate to know.
Project Oriented Companies
Project oriented companies truly rely on Projects. They pick up, hunt, search and accept projects. They use many channels including company website, project outsourcing sites, marketing office etc. Things work in a quite simple manner. After receiving Project, requirement analysis is the first thing done by project manager or lead. Later abstract level design and framework implementation done and then modules development handed over to developers and programmers. The software development process kept going until finished product is released. Once a project is done team move onto new project and development goes on. Projects are bloodline of such companies. One interesting and important fact is that for any project either company has developed their own framework or they use already built frameworks so that only module development lead the project to finishing phase. For example an enterprise system could be developed using .NET MVC or Zend Framework (if open source is the requirement).
For those who are aiming at their own company in future should gather frameworks for ready to go products so initial “no profit phase” can be minimized (that is why I am working on an open source framework in my spare time :)).
Product Oriented Companies
These types of software companies are “Giants” among all. Rather hunting for projects and relying on continuous incoming of new projects. They take up a software product idea and transform it into actual product and then generate income by selling the product. Software products could be of two types. One that could be deployed at various clients’ end and second that is deployed on company’s end and various clients can use it. Such companies require heavy initial investment to turn an idea into reality and if the product fails the whole investment turn into loss immediately. Many Product oriented companies start development of a product in order to negotiate initial investment period.
Once a Product is live; new versions, improvement and features enhancement is required. The work goes on until a product is running. Such companies make very large profits by investing initially in a great idea and reselling the copies of the product or giving access to various clients.
IT Service Providers
My first job shit was into an IT Service Provider company and that was the first time when I realized something other than Project Development exists. Such companies have their own Enterprise Systems and they use it to provide B2B (Business to Business) and B2C (Business to Clients) services. The major job at such company is taking care of “Production”. Production is the activity refers to actual usage of IT/Software service by clients. Examples of such companies are Call Centers, IVR Services, Telecom, Business Process Outsourcing, and Management Outsourcing. Product development is also carried out in such companies but these products are solely related to future production usage. After Production management the other major task at such companies are enhancements in existing Systems, Business Intelligence and Business Reporting. Usually they make much profit than product oriented but their main job is not software development, but using softwares to generate income that is why I don’t consider these as “Software Giants”. Many IT Service Providers outsource their Product development to other software development companies and focus on business and income generation solely.
Software Groups of Enterprises
As clear from heading, these software companies are dedicated for an Enterprise. Many marketing companies today have their own software group/house. The tasks focus on “what company wants”. From requirement analysis to development and business reporting the process solely dependent on the nature of such business.
Any Software House can have multiple qualities at a time. For example a Software house can be running their own Product as well as developing Projects for other clients. IT Service Provider could also have own Products. Similarly Software Group of an Enterprise could be a third party to any company which do Projects, Runs own Products and Provide IT Services.
Thoughts For A Fresh Graduate
Differentiating various software houses and later stating that they can co-exists could be confusing. But in any matter these differences are important for a fresh grad to understand. This will help them in making career choice depending upon “what one’s goal are!”
For a multi disentail software house, always confirm before accepting a job about what type of job you will be assigned, will you be given Production Support tasks or a new Product will be assigned to you. For someone who wants to focus on Core Software Development or Research in future, he should never go for an IT Service Provider’s job. On the other hand if anyone is aiming an MBA to become a IT-Business Professional then there is no need to burn your brain in hard complex software development plus your business and entrepreneur skills really groom in IT Service Company.
Always focus on what you want to be rather just getting highly paid and being unsatisfied.
Stating that I left an IT Service Provider Company recently because it’s not Business Professional’s End I want to see my self after a decade or so. I will rather be happy to name myself as widely known software product’s mentor (InshAllah).