Monday 2 May 2016

Obinna Dike, Citi Professional - Software Architecture Design Principles

Obinna Dike, a Citi employee since 2011, is an experienced software engineer with more than a decade in his field. He holds two engineering degrees and, like many others in his field, a large part of his focus is software architecture. Professionals like Citi’s Obinna Dike use software architecture to design and deploy quality, problem-free applications for a number of uses.

Examples of basic design principles as applied to software architecture include:

  • Separate Features – Separating your software into distinct functions with minimized overlap helps increase cohesion. When done incorrectly, however, separating features can lead to high coupling and unwarranted complexity. 
  • Specialize Components – Specializing each module or component ensures that each element is responsible for a defined functionality. This increases application cohesion and functionality. It is taken a step further by applying the principle of least knowledge, meaning that each component should not know internal details of other components. 
  • DRY (Don’t Repeat Yourself) – The DRY rule means that functionality rules and details should not be implemented in more than one component. Duplicate content can lead to confusion, unnecessary complexity and unforeseen issues.  
  • Minimize – Engineers often design only what is necessary, minimizing upfront work. Though some cases do require extensive upfront design and testing to avoid a high risk of failure, it can typically be avoided. In situations where the design is likely to evolve as the application comes together, minimization of upfront design is a matter of efficiency. 

Obinna Dike Citi has worked with Citi for five years, during which he has created a positive reputation, and he hopes to work with the company for many more.