develpreneur podcast

Software Architecture Best Practices – Essential Ideas

It is time to wrap up the season of software architecture from scratch.  We have covered a broad range of topics and now are able to look over them as a whole.  There are common themes across the various areas that point us to software architecture best practices.  Here are a few core concepts we should take from this season. Clarity is Key We have to communicate our results.  These deliverables are essential in making our work valuable.  Think about it, even the best architectural design is useless if it can not be implemented.  When we fail to properly communicate our ideas, we reduce the likelihood of successful implementation.  Therefore, pay attention to the details and note them in your... Read more

develpreneur podcast

Middle Tier Architecture – Designing The Business Rules

We have looked at a broad range of topics this season.  However, it is time for us to tackle the middle tier architecture.  Thus, we need to consider process steps (or flow) and look for commonality among the problems we solve.  This area is not the most obvious to architect.  However, it is an essential piece of the final solution. Middle Tier Architecture As We Go One of the challenges with the middle tier architecture is that it tends to get built over time.  We design the front and back ends of the application.  However, little time is spent on business rules and core logic.  Data items and visual controls are more concrete for us to work with.  The logic... Read more

TestNG: A Walkthrough Of How It Works And Getting Started

TestNG: A Walkthrough Of How It Works And Getting Started

Welcome to the next episode in our new series “Integrating testing into your development flow”. Today we are going to be looking at “TestNG: A Walkthrough Of How It Works And Getting Started”. In our first few presentations, we covered how to build the documentation for a test strategy and test plan. These documents are useful to help the business clearly define the software requirements that both the developers and testers will use to test the software. Then we went into how unit tests fit into the Software Test Life Cycle and looked at some examples. Today’s session we will be covering TestNG. Comparatively, TestNG is not an extension of JUnit. While TestNG similar to JUnit, it is its own... Read more

develpreneur podcast

Architectural Documentation – Communicate Your Decisions

At some point in your project, architectural documentation becomes an essential piece of the deliverables.  This material is often a set of diagrams and bullet points.  However, there is more that we need to include.  A good set of deliverables will consist of some defense of the decisions made.  While this defense is good for CYA, it is more important when someone needs to consider whether a change is required. Basic Architectural Documentation The typical set of deliverables to achieve this goal covers what direction the implementation team should take.  It is roughly a laundry list of decisions made and enough explanation to act on those.  The result is a summary of the decisions made. That is in contrast to... Read more

develpreneur podcast

Cohesion or Coupling – Essential Architecture Decisions

A critical design decision in the object-oriented world is whether to choose cohesion or coupling.  These two approaches are not mutually exclusive.  However, it is rare to see a mix of the two.  Therefore, this decision in the architecture will profoundly impact the rest of the project. Big or Small, Cohesion or Coupling It helps to set the stage for this discussion.  The decision comes down to either building your system with small components or large (more full-featured) ones.  The result can range from microservices up to a monolithic class that stands alone.  A single object option is a cohesive approach, while coupling uses smaller classes that work together. Pros and Cons Each of these approaches has pros and cons. ... Read more

develpreneur podcast

Class Architecture And General Grouping of Features

Object names and namespaces are just the beginning of creating a class architecture.  We need to consider globally available values, data hiding, abstraction, and how to group features.  The old “is-a” and “has-a” questions are essential cogs in building out this piece.  You will be looking for common pieces of data, methods, and how they should relate. A Goldie Locks Class Architecture It is incredibly easy to make your architecture too complex.  There is a broad range of “best practices” that try to provide the best general solution.  However, you are architecting a specific solution.  Thus, keep that in mind as you create the object architecture.  You should make every decision with supporting reasons for the related decisions.  The last... Read more