Menu

TechnicalDebt

Anonymous

Pre Architecture concept, homogeneous DesignPatterns leads to.

  • Reduced costs, code base, bugs and technical debt.
  • Increased productivity.

Points from wikipedia re Technical Debt.

"Business pressures, where the business considers getting something released sooner before all of the necessary changes are complete, builds up technical debt comprising those uncompleted changes."

  • Business pressure can force focus on immediate delivery leading to a compromised solution, having an uncompromised beta solution helps delivery of a timely project with no compromise.

"Lack of process or understanding, where businesses are blind to the concept of technical debt, and make decisions without considering the implications."

  • Working directly with clients you can broker a compromise, example your requirment will take two months given concepts and design but I can provide a similar change in two days, meaning I can move on to your other requirements quickly. If client requirements are difficult to deliver due to concepts then your concepts/solution might not be fit for purpose.

"Lack of building loosely coupled components, where functions are hard-coded, when business needs change, the software is inflexible."

  • Fin-Plus is a config driven client/service ComponentBased design, pluggability allows for flexibility coupled with simple interfaces which provide for ease of component replacement.

"Lack of test suite, which encourages quick and risky band-aids to fix bugs."

"Lack of documentation, where code is created without necessary supporting documentation. That work to create the supporting documentation represents a debt that must be paid."

  • Wiki provides for both technical support and user support, good naming convention, homogeneous and well layed out design also provides for dividends in this respect.

"Lack of collaboration, where knowledge isn't shared around the organization and business efficiency suffers, or junior developers are not properly mentored."

  • Having collaborated with business and IT for many years, Fin-Plus will be the design concept I would liked to have seen firm wide. With a beta product your siloing avoids issues caused by lack of collaboration in the criticle early stages.

"Parallel Development at the same time on two or more branches can cause the build up of technical debt because of the work that will eventually be required to merge the changes into a single source base. The more changes that are done in isolation, the more debt that is piled up."

  • Fin-Plus is not providing for an isolated code base, this is achived by a common design pattern and provision of a firm wide beta solution.

"Delayed Refactoring As the requirements for a project evolve, it may become clear that parts of the code have become unwieldy and must be refactored in order to support future requirements. The longer that refactoring is delayed, and the more code is written to use the current form, the more debt that piles up that must be paid at the time the refactoring is finally done."

  • Keeping components and thier interfaces simple as per DataModel.

"Lack of knowledge When the developer simply doesn't know how to write elegant code."

  • Components follow the same simple code layout, granularity and design pattern. Complexity of common requirements are already provided by the ComponentBase, simplifying individual components re thier core requirment/functionality.

Related

Wiki: Architecture
Wiki: FinPlusTestBuilder