Posts

Showing posts from April, 2024

Approaching Design

Design is the process of creating a plan or blueprint for the construction or realization of something, whether it's a physical object, system, structure, or experience. It involves generating ideas, making decisions, and defining specifications to achieve a desired outcome or solve a particular problem. Too many times, delivery stalls because teams do not start Design early enough. The key is to work in iteration: Analyze, Specify, and Validate in iterative cycles. You do not need to be an expert to start design. Use Design Approaches that work best for you and your team. Software design is the process of conceptualizing and planning the structure, behavior, and functionality of software systems before they are built. It involves transforming requirements into a blueprint that developers can follow to create the software. Software design encompasses various activities and artifacts aimed at ensuring that the resulting software meets the desired specifications, is maintainable, sca...

Sparx EA Inspector

In this episode, we will focus on " Inspector ". In Sparx Systems Enterprise Architect (EA), the Inspector is a panel that provides detailed information and properties of selected elements within a model. It allows users to view and modify various attributes, relationships, and other details associated with elements such as classes, objects, use cases, actors, etc. Over the past couple of years, I have been in projects where project teams are using a Wiki to drive their projects. First off, I am not against this by any means. After all, wikis started as Knowledge-Management platforms and what is more important to project delivery than access to knowledge, right? However, and OMG!, if you cannot effectively manage knowledge, how useful is your Wiki? Thus to my point about seeing the most atrocious uses of Wiki and then wondering why the company has so much trouble with delivery and/or managing their architecture. What I see is more like "fire and forget"...literally!...

The Power of Data in Modeling

There is a big difference between Drawing Tools and Modeling Tools such as Sparx Enterprise Architect (EA).  Any modeling tool that models data around diagrams rather than tools that  simply  draw shapes and lines . Sure, some drawing tools have some "properties" relevant to shapes applied to a drawing area, such as date/time and metadata  relevant  to the element  being applied . However, this is  nowhere near enough  to support effective system/software architecture or engineering. If pictures speak a thousand words, it best to see the "thousand words" the picture is speaking! I am in too many projects where architects, engineers, and modelers present a picture, either in a Wiki, PowerPoint, PDF, or other platform , and then cannot   speak  effectively (or remember) what the  picture  they are  speaking  to represents. And if there is a problem or  question,  they cannot effectively address or fix. The pro...

System and Software Design Doesn't Need To Be Difficult

For decades, I have worked with many Architects whom are not "Developers". Many say they started as a Developer, yet this doesn't seem to be reflected in their Solution or Application Architecture presented in projects. When I ask why, the answers vary from, "I am out of date with current technologies", to " I'll leave that to the Application Architect or Developers". My response is, "That is too late!". Often at the start of the effort (e.g., Project), necessary resources are not available. This could be that resources are tide up in other delivery, to the budget doesn't allow for IT. My response to this reasoning is, "You can pay now, or pay considerably more later!". In the beginning of any effort, and at a minimum, there should be a primary facilitator (e.g., Project Manager), the primary client stakeholder (e.g., Sponsor funding the effort), a primary product or company knowledge source (where knowledge is methods, proc...

Testers Are The Most Important Role!

I have always said the #1 most important role, in systems and software delivery, is the Code Slinger (Developer), where #2 is the Project Manager. However, in the beginning of any project or delivery exercise, we are trying to develop and validate the "Requirements" for the effort. In other words, understand the problem(s) to solve. I find that in almost every project, when I arrive to assist in better delivery results, the team is missing important roles at the start of the effort. One of those roles is a "Tester" or "Quality Assurance" role. This is usually the person or role that knows how the business or shop does things, like methods, procedures, rules, and processes. The Testing role probably should have been the first "role" that the Project Manager asked for, even before me (the Solution/Enterprise Architect 😎). The "Testing" role is usually a stakeholder responsible for "Quality" in the Company, Organization, or Deve...

Learn Modeling with ChatGPT

Today I want to talk about ChatGPT as a learning aid. As I continue to share and teach Unified Model Language (UML), Computer Aided Software Engineering (CASE), and Model-Driven Anything (MDA), I keep finding a lot of newcomers that think the learning curve is too much. Listen, I understand, as I have been doing this for over 30 years, well before UML. However, in today's age of AI and ChatGPT, we have some great tools to support/augment our learning endeavors (you kids are so lucky! 😁 I recently published a YouTube video titled " Learn Modeling with ChatGPT ".  During any technology learning event, you can simply go to ChatGPT (even the Free Version) and ask questions. Sure, this AI is still learning, and sometimes is wrong or not accurate, but ChatGPT when focused on Technology, is accurate more often than not. If you are not using Open AI's ChatGPT today, you are missing out.

Difference between Business and Functional Requirement

So I was in a Conference Call the other day, and a debate broke out on subject of "Requirements". I am here to say, "Requirements are Requirements!". A requirement is simply a requirement to do something, whether that is for business, some function, some performance objective, for testing or QoS purposes, or any other purpose. We simply just put an Adjective or Noun in front of the term "Requirement". Please! Let's not make this more complicated than it should be. Instead, learn how to write effective requirements! So let's talk about Business Requirements and Functional Requirements which are two distinct types of requirements that play a crucial role in the development and implementation of projects. They serve different purposes and are used in different phases of the project lifecycle. Requirements can be Current Mode Operations (CMO) or Future Mode Operations (FMO). I often refer to these as "As Is" and "To Be" respecti...

BPMN Diagram versus Sequence Diagram

I am getting some great questions in our  UML Operator Channel , as we are publishing  a series on Business Process Modeling Notation (BPMN) . Modelers see the term "Sequence" in BPMN and get a little confused...probably my fault 😏. When using BPMN, just understand the difference between Unified Modeling Language (UML) and BPMN (an extension of UML) and things should fall into place. So now let's talk about BPMN vs UML Sequence Diagrams... BPMN Diagram versus Sequence Diagram BPMN diagrams and sequence diagrams are both types of visual representations used in the field of business process modeling and software engineering, respectively. While they share some similarities, they serve different purposes and focus on different aspects of a system or process. BPMN Diagram: Purpose: BPMN (Business Process Model and Notation) is used for modeling and documenting business processes. It provides a standardized way to r...