Sunday, May 12, 2013

Application Architecture Considerations

Here's a list of things I consider when evaluating an application's architecture:


Does the application satisfy its business requirements?


Does the application run fast enough?

For example, if there are any views that take longer than 7 seconds to display, then you need to re-engineer something.


How well does your application scale?
  • Can you easily add and remove components without affecting your application's performance or reliability?
  • How loosely (or tightly) coupled is your application code?


  • How robust is the message bus/messaging framework?
  • How does your application handle events?

Memory Management

Does your application architecture provide memory management/garbage collection mechanisms?


How easy is it for developers to test features of your application, e.g., memory management or use case functionality?

Error Handling

How does the application handle errors and exception cases?


How does the application handle logging of normal and/or exception cases?


Does the application code look like somebody cared or written by a disparate group of developers with their own styles and whimsical coding techniques?


How easy is it to extend the functionality of the application?

Reusable Components

How well does the application make use of reusable components?


Does the application handle security?
  • Data Security
  • User authentication
  • Authorization
  • Accounting/logging of Security Events


  • How many lines of code does your application require to satisfy its functional requirements?
  • How readable is your code? (Fancy one liners that are unreadable add to technical debt.)
  • How defect-free is the application?
  • How long does it take to add functionality give new enhancement requirements?


  1. I also agree with you ..... very useful information for us ...... keep it up thanks for this..........

    Application Development

  2. My pleasure. Thank you for commenting. ~ Lex

  3. Hey Lex,

    If I may ask, why are you not in freelance with all your experince?

    Dmitry @ custom application development company.

  4. @Dmitry

    I do enjoy freelancing.

    I'll blog in detail about it soon, but suffice it to say that I: 1) enjoy working remotely 2) have learned to be a capable member of a distributed team using a proven Agile SDLC methodology incorporating git feature branching, github workflow and integrated CI server with issue tracking.

    I have used a number of development methodologies, mentioned here: and am convinced that a most software development companies SDLC methodologies could be drastically improved, if they only knew better.

    Thank you for the question!

  5. There are various application that can be purchased "off the shelf" and used straight to the various factors of a organization. However, these alternatives are not always absolutely fulfilling as they are designed for a typical organization platform. Usually, companies have specifications that are exclusive to them and are not distributed by any other organization. These particular specifications can only be satisfied by custom application development. Organizations can take help of any web application development and get their customized alternatives and improve their organization procedures.

    Custom Application Development India

  6. Thank you for sharing this valuable post.Informative content.
    Mobile Application Deveelopment

  7. Thank you for the post! I work in a software development company and we'll put this in practice.

  8. I am currently looking for material for our company's blog - Adoriasoft. And I should tell you that you have a really awesome materials here. You put everything in details and really easy and undertsandable

  9. Good post on application development.Useful information thanks for share.
    custom web design company