Getting Serious About Software Architecture and Design

As I mentioned in the last post, I am making good progress toward learning object-oriented development methods.   During the holiday break, I created a small web project to test my understanding so far.   The results were encouraging, convincing me to promote my programming activities from a hobby to a real business pursuit.    Likewise, mastering the principles of software architecture and design has become a business priority.    Now that software development has become serious business (pun intended–if it works), I am creating a formal study plan to bring my skills up to speed as quickly as possible.

Steve Jobs, by repeatedly introducing products into mature markets that became run-away hits (or with the iPad, creating a market where none existed), demonstrated that focusing on architecture and design results in high-quality, usable products.   Usability, security, and overall quality are the result of attention to detail at all stages of product development.  He proved that what’s inside counts.

Creating quality software requires a comparable dedication to details.  I am sure we can all agree that there is a need for more usable, secure clinical information systems; the only question is how to create them.   While my short-term goal is creating a marketable product, the ultimate goal of my programming efforts is learning how to build superior software.

I am going to pursue this project on two parallel tracks.     The first track is devoted to developing expertise in object-oriented programming, object-oriented analysis & design, and software architecture.   Fortunately, many programming constructs (variables, algorithms, loops, data structures, etc.) transfer readily between programming paradigms, so much of my old procedural programming knowledge remains useful.  This has allowed me to move relatively quickly beyond introductory books/tutorials to more advanced topics such as design patterns.  (For those who are interested, Head First Design Patterns is a great book– clear, detailed, and easy to understand.)

Since this is a clinical software product, the second track focuses on clinical standards and security.  Workflow representation is a key design challenge for clinical systems, but it isn’t a major issue for the current product.  I will consult HL7, ASTM, and other standards documents if the need arises. NIST’s HIPAA and usability documents are very detailed and well organized, offering valuable information for clinical software developers.  If they were not free, I would be willing to pay for them.

I wonder if the recent NIST usability report will lead to a greater focus on EHR software architecture/design challenges.  It will be interesting to see if federal usability efforts lead to significantly better products.  After all, knowing that a product has usability issues and creating a better product using that knowledge are two very different things.  Just ask any CEO whose products compete with Apple’s.

In any case, I am committed to mastering software architecture and design.  Who knows, maybe I’ll find my inner Steve Jobs and create something special. Since “insanely great” may take a while, for now, I’ll settle for a “personal best” that sells.   I will keep you posted on what I learn along the way.



Leave a Reply

Your email address will not be published. Required fields are marked *