What is Enterprise Programming?
Enterprise Programming is when a programmer is hired to develop applications for a corporation or other large organization whose primary business is NOT Software Development. Every industry employees thousands upon thousands of programmers to develop both internal applications for use by employees and externally facing applications such as Web Applications for use by their customers. In either case the software is specific to the organization’s business domain. Programmers may either be direct employees of the company or they might work for a consultant firm who is hired by the company to develop software for their business requirements. For example a Bank or Financial Services company will employ programmers to develop everything from Trading Systems to Reference Data and Reporting applications. Manufacturing firms as another example, may hire programmers to develop Just In Time inventory supply chain management applications.
Why do companies and other large organizations develop in-house software instead of simply buying software package from Software firms?
Of course large organizations do purchase commercial or retail software, and they also make use of Open Source products. However some tasks are very specific to a particular business and Software companies and open source projects either do not have the domain knowledge needed to development customized solutions for every business, or even if they do have a base solution, it often does not meet the exact needs of a specific company. Some Software Development groups in the Enterprise setting will work on extending and customizing commercial or open source applications to fit the needs of their own specific company. In other cases, information and processes are extremely proprietary to a single company and they see their business process as an edge over their competitors, and therefore sometimes very specific software is written around those proprietary business processes, formulas, data, etc, and companies do not want to take the chance that an external software development firm can replicate that process for other customers. Also, in today’s world, time to market is extremely important in all businesses, and the ability to customize software as soon as a business need arises is extremely critical to most modern businesses. Having in-house programmers to continue to extend existing systems quickly is essential to compete in today’s marketplace. When a system is built in-house, the programming teams gain an increasing understanding of the business processes and needs of the business. It is impossible for external software development vendors to have the same level of understand of a particular industry as an in-house software development team for every single industry, and even if a software vendor targets a specific industry, by hiring Subject Matter Experts or SMEs , they usually develop a very specific solution for one of their customers and then try to customize it to meet other customers within that same industry. Depending on the flexibility of the software and the demands of the original customer, the vendor software package may or may not fit the needs of other companies without a huge investment in customizations, which sometimes makes the software unstable or otherwise too complex and costly to maintain. In the end it is up to each application or IT area owner within a company to make a decision on whether to buy and customize a vendor solution or build a solution in-house. Today most businesses have both vendor solutions and in-house solution depending on the needs and finances of the organization.
What topics will be discussed on the Enterprise Programmer Blog?
On the “Enterprise Programmer“ Blog you will find articles that discuss both the challenges Enterprise Programmers will face and interesting solutions to solve those problems. We will discuss everything from design patterns, to specific programming topics, to large-scale architectures. The target audience is professional programmers, system architects, business analysts, and IT project managers. This blog will also be a valuable resource for any student of programming that wishes to become a professional programmer for large enterprise.
Notice: Please note that all designs, suggestions, code, and other writing on this web site are of my personal opinion and not the opinion of my employers and all the Intellectual Property and other information is from my Personal Projects and experiences outside of my professional work.