When programmers and testers collaborate
May 04, 2024
in •
FIT
интеграционный
tests
programmers
code
testers
time
3 min read
When testers and programmers start collaborating, miracles happen. Less time is spent playing ping-pong with defects in the defect tracking system. Less time is spent discussing whether the behavior is a bug or a new feature, and more time is spent on developing quality. software that meets customer expectations. There is many opportunities to establish collaboration even before the coding begins.
Testers can help clients write acceptance tests in the language their subject area using tools such as Fit (Framework for Integration test). If these tests are given to the programmers before they start writing code, they will be able to apply the practice of acceptance test-driven development (ATDD). Programmers write frameworks to run the tests, and then code to ensure they pass. these tests.
...
➦ Perspective as seen from 300 meters
Apr 20, 2024
whenever
view
infoviz
code
quality
representations
metrics
program
software
3 min read
We architects are interested in learning how good the software we are developing is.There is a more subtle internal component to program quality that has to do with the design’s clarity, or how simple it is for us to comprehend, support, and grow the software product. The exterior component of program quality is evident: the program must be valuable to the user. Whenever we push for a definition of quality, we ultimately say, “I’ll know when I see it.” So, what do you think quality is?
Architectural charts use small squares to represent entire systems, and the lines that connect them can indicate any number of things, including shared resources (like a train) or dependencies. These diagrams show the system at a 10-kilometer altitude, which is roughly equivalent to how an airplane views the terrain.
...
➦ Code review
Apr 19, 2024
code
conduct
review
reviews
process
knowledge
3 min read
Conducting code reviews is necessary. Why? It improves code quality and reduces the relative share of defects. But you may be misunderstanding why this happens.
Many programmers have an aversion to code reviews, which can be linked to their unfortunate personal experiences. I have encountered organizations where all code underwent formal review before it could enter the system for commercial use. Often, the review is conducted by an architect or lead developer—a practice that can be called “the architect checks everything.” This is documented in the company’s software development process guide, and programmers are required to comply.
Perhaps, in some organizations, such a strict and formal process is indeed necessary, but they are in the minority. In most organizations, such an approach is counterproductive.
...
➦ Beauty is the result of simplicity
Apr 18, 2024
plato
development
first
code
beauty
simplicity
system
methods
2 min read
Plato has one saying that, it seems to me, would be especially useful for all software developers to know and take to heart:
The beauty of style, harmony, elegance, and good rhythm are based on simplicity.
This single sentence embodies the values that we, as developers, should admire.
There are a number of things we aim to achieve in our code:
Readability - Ease of maintenance - Development speed - Elusive beauty Plato tells us that all these qualities are possible only thanks to simplicity.
What is beautiful code? This is probably a very subjective question. The perception of beauty is heavily dependent on personal experience, just as our perception of anything else is. Those who have studied art perceive beauty differently (at least approach it differently) than those with a technical education.
...
➦ Two mistakes can cancel each other out, making them difficult to correct
Apr 18, 2024
code
allan klumpp
apollo
everything
timetolive
problems
fix
defect
users
3 min read
Code never lies, but it can be internally contradictory. Sometimes contradictions cause confusion: how can this even work?
In his interview, Allan Klumpp, the lead software developer for the Apollo lunar module, revealed that the engine control software contained a defect that caused the lunar module to behave erratically. However, there was another bug in the program that compensated for the first one, and during the Apollo 11 and 12 moon landings, this software was successfully used before the bugs were discovered and fixed.
Let’s consider a function that returns an exit code. Let’s say it returns false when it should return true. Now imagine that the calling function does not implement the check for the return value. Everything works perfectly until one day someone discovers the lack of a check and adds it.
...
➦ Automate your code formatting standard
Apr 13, 2024
new year
standards
code
standard
project
tools
anti-patterns
3 min read
You probably went through this too. At the beginning of the project, everyone has plenty of good intentions – let’s call them “new project promises.” Similar to New Year’s resolutions that people make for themselves: to exercise, quit smoking, etc. Quite often, many of these promises are documented. Promises related to code make it into the project’s code formatting standards. At the first project meeting, the lead developer announces this document, and ideally, everyone agrees to diligently follow the proposed requirements. However, as the project progresses, all these good intentions are forgotten one by one. When the project is finally completed, the code looks quite tangled, and it seems that no one understands how it ended up that way.
When did it all go wrong?
...
➦ Stand up!
Apr 05, 2024
eye
communication
standing
effectiveness
attention
architect
2 min read
For many of us, a career as an architect began with some purely technical position where success was primarily determined by the ability to communicate with computers. However, in the role of an architect, we primarily have to communicate with other people. Whether you discuss the advantages of a particular template with developers or explain to management the pros and cons of purchasing middleware, the key to success lies in your communication skills.
Objectively measuring the degree of an architect’s influence on a project is quite difficult, but one thing is clear: if developers constantly ignore the architect’s instructions and management does not pay attention to his recommendations, the “correctness” of the architect’s actions will not affect the development of his career in any way.
...
➦ Do not repeat your code
Apr 02, 2024
in •
DRY
•
METHOD
code
repetition
abstract
strategy
dry
open
closed principle
srp
principle
software
logic
duplication
3 min read
“Don’t Repeat Yourself (DRY)” is probably one of the most important principles of programming, and it underlies many other well-known correct approaches and design patterns in software development. A developer who has learned to recognize duplication and can eliminate it using appropriate techniques and suitable abstraction is capable of writing much clearer code than one who constantly clutters the application with unnecessary repetitions.
Code duplication is ballast Every line of application code requires maintenance, and it serves as a source of potential errors in the future. Duplication leads to unnecessary increased code volume, which raises the likelihood of errors and makes the system overly complex. Increased system volume due to duplication, firstly, it prevents developers from fully understanding the system, and secondly, it does not guarantee that changes made in one place do not It will be necessary to repeat it in other places where this logic is duplicated.
...
➦ The true meaning of the clients requirements
Mar 19, 2024
in •
HILLAKER
harry hillaker
falcon
air force
agile manifesto
collaboration
requirements
aircraft
client
business
speed
3 min read
In general, what is business analytics? If we break down this phrase word by word, it is the analysis of business requirements. It is not design, it is not programming, it is specifically the analysis of requirements. The main task is to help the client understand what they actually need. However, clients and end users often present what they think are effective solutions to a problem as requirements. In other words, they believe they have already found all the solutions and want them implemented. The effectiveness of this is quite questionable, as it leads to project overload with requirements, which often contradict each other, and significantly increases its cost. In exceptional cases, the project becomes completely unfeasible.
A classic example of this kind is provided by Harry Hillaker, the chief designer of the F-16 Falcon fighter jet.
...
➦ Know your IDE
Mar 13, 2024
in •
C
•
JAVA
•
METHOD
•
UNIX
code
debuggers
integrated development environment
ide
modern
java
unix
ides
time
tools
method
4 min read
In the 1980s, the programming environment, as a rule, did not differ much from an advanced text editor – at best. Today, we take syntax highlighting for granted, but back then it was a luxury not available to everyone. Code formatting tools existed as external tools, the use of which corrected spacing. Debuggers also “lived” separately as programs for step-by-step code execution, and working with them required knowing a multitude of mysterious key combinations.
In the 1990s, companies began to realize the profit potential of more convenient and useful development tools. The Integrated Development Environment (IDE) combined previously offered editing features with a compiler, debugger, formatting tools, and other instruments. At that time, menus and mice became popular, which meant that developers no longer needed to memorize complex key combinations to work with their editor.
...
➦