Sunday, May 12, 2013

Application Architecture Considerations


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

Functionality

Does the application satisfy its business requirements?

Performance

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.

Scalability

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?

Messaging

  • 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?

Testability

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?

Logging

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

Consistency

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

Extensibility

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

Reusable Components

How well does the application make use of reusable components?

Security

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

Maintainability

  • 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?


9 comments:



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






    Application Development

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

    ReplyDelete
  3. Hey Lex,

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

    Cheers,
    Dmitry @ custom application development company.

    ReplyDelete
  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: http://lexsheehan.blogspot.com/2013/09/21-cfr-part-11-and-sdlc.html 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!

    ReplyDelete
  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

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

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

    ReplyDelete
  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

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

    ReplyDelete