Successful Software Development in Big Corporations

Become Successful Software Developer on Enterprise Projects

Enterprise applications in big corporations pose a specific set of challenges that software developers do not encounter on smaller projects.

What you’ll learn

  • Successfully Develop Software in Difficult and Complex Environments.
  • Efficiently Implement Functional Requirements on Big Projects.
  • Maintain Clean Code Regardless of Organizational and Technical Constraints.
  • Improve Your Efficiency When Developing Software.
  • Walk through Realistic Examples and Learn Concrete Development Patterns.

Course Content

  • Welcome –> 3 lectures • 21min.
  • Working as a Developer in an Enterprise Corporation –> 5 lectures • 40min.
  • The Matryoshka Development Approach –> 3 lectures • 1hr 3min.
  • The Inner Matryoshka: Understanding the Business Requirement –> 1 lecture • 17min.
  • The Second Smallest Matryoshka: Defining the Structure of the Requirement –> 1 lecture • 15min.
  • The Third Matryoshka: Defining the Behaviour of the Requirement –> 1 lecture • 23min.
  • The Fourth Matryoshka: Implementing the Algorithm –> 4 lectures • 2hr 22min.
  • The Second Biggest Matryoshka: Integration into the Application Framework –> 4 lectures • 2hr 32min.
  • The Biggest Matryoshka: Handling Change –> 4 lectures • 1hr 23min.
  • Case Study 1 – Customizing the Data Integration Framework –> 1 lecture • 1hr 55min.
  • Case Study 2 – Customizing the Reporting Framework –> 1 lecture • 40min.
  • Course Conclusion –> 1 lecture • 5min.

Successful Software Development in Big Corporations


  • You should have an understanding of object-oriented programming languages (such as Java) and basic software design principles.

Enterprise applications in big corporations pose a specific set of challenges that software developers do not encounter on smaller projects.


First, enterprise applications tend to be very complex. It is not an exception for an enterprise application to have dozens to hundreds interfaces, reports, processing rules, adapters etc. The sheer numbers of the system make it very difficult to grasp.


Second, the business logic in enterprise applications can be very complex. Such applications are usually huge back end systems that provide global services to all departments of the whole enterprise.


Third, enterprise applicationy are usually very long-living. As a result, they utilize outdated technologies and patterns. Heavy-weight, monolithic application servers with strictly defined layers of logic and hardwired dependencies are difficult to deploy and to adapt.


Fourth, the enterprise IT is often very business-centric. Your stakeholders, such as business colleagues, project managers and analysts have a deep knowledge about how their business works. As a developer, you often lack the specific knowledge and have to close this gap before you can successfully work in the given line of business.


Fifth, the development models in big organizations are often unflexible. Most enterprises still utilize the waterfall model which makes adaptations difficult.


And, finally, there are bureaucratic hurdles. You need a lot of access permissions, certificates, software licenses, tool installations and approvals before you can even start working. The setup of your working environment on a new project can literally take months.


All of this is disconcerting. But here is the good news: There is a way of mitigating all of the problems mentioned above. I will show you in this course how you can set up a working mode for yourself that enables high quality of your results and efficiency of your work, regardless of the complexity of the system and your familiarity with it.


The course is based on theoretical concepts, but I will not bore you with theory too much. Instead, we will have a practical tutorial. During the course, we will walk through a simulated scenario in a fictive enterprise corporation where we will receive a functional requirement and implement it. The scenario is kept close to the real-live work in an IT department of a complex enterprise. We will use Java as programming language and make our hands dirty by writing the code.


Let’s also agree on what this course is not about.


This course is not a beginner programming tutorial. You will not learn the basics of Java here. To gain the most from the course, you should be already familiar with basic programming knowledge, especially with object-oriented programming languages, such as Java. You don’t need industry experience, however, to understand the topics in this course. On the other hand, I am sure that you will profit from this course even if you are a seasoned software developer.


Thanks for your interest. Enjoy the course.

Get Tutorial