Posts

Showing posts from December, 2018

Analyzing Software: Technical, Tactical and Strategic Qualities

Building software always comes with significant investments, but should be only a fraction of the possible long term gains. To ensure the software yields the expected outcomes, not only for the first releases, the first two years, but long term, the software must be developed with different qualities. Long term? How many systems does your organization have, that are 3+ years old and are not limiting the potential capabilities of the company [without reinvesting/rewriting them]?. In this article a small framework to assess the quality of your software is presented. To ensure software is profitable for the company during its full potential, we analyze the software on 3 different levels: Technical, Tactical and Strategic. This can be the first step to improve the earn backs of your technology/software investments. Technical Quality When people learn how to program, the syntax of the language is explained. Next in detail is explained, how to do recursion, with the termination conditi

Data Perspectives & Representations

Image
Failure of Software Design Software systems process data. Either this is computation input/output or persistent data read from storage for processing. To minimize the effort and risk to realize a software solution - - many architects model the data based on the inputs and outputs. They just add some annotations on those models, and voila, it can be written and read from a database! Software design is the process of minimizing the effort and risk of developing your software. Unfortunately, they are not knowing that using the same data perspective for input/output and storage - or in other words, not using different data representations - is one of the biggest reason that the system will be a legacy system, and that needs to be replaced as soon as it is ready. :( Software architecture is the process of making sure that future changes to the needs can be easily accommodated in your software. To explain a bit more, the business needs are constantly changing, therefore the input