Different types of bugs
(Created page with "The '''''typing-bug''''' : You did not actually type the things you wanted to type The '''''code-bug''''': Your code does not actually do the things you intended it to do,...")
 
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''''typing-bug''''' : You did not actually type the things you wanted to type
=== Definition ===
A bug is an error, flaw, failure, or fault in a computer program or system that produces unexpected or incorrect results. Bugs can occur due to mistakes made by programmers during the coding process, incorrect assumptions, miscommunications, or unexpected interactions between different parts of the software.


The '''''code-bug''''': Your code does not actually do the things you intended it to do, but it was typed correctly
=== Types ===
# The '''''Typing-bug''''': You did not type the things you wanted to type
# The '''''Code-bug''''': Your code does not do the things you intended it to do, but it was typed correctly
# The '''''Think-bug''''': Everything came out just as planned – but now that you see the result, you find that you planned the wrong thing
The '''''Typing-bug '''''is under control with the use of strongly typed languages that use static checking with compilers. The strange thing is that not every coder understands the brilliance of this. Many developers understand the brilliance but are forced to use interpreting languages since they are the only, or at least, the most common, tool that works in the target environment. Javascript is one example.


The '''''think-bug''''': Everything came out just as planned – but now that you see the result you find that you planned the wrong thing
The '''''Code-bugs''''' are managed with unit tests which, in short, explain what you expect your active code to do with some more test code.


The ''''''''''typing'''''-bug''''' is under control with use of strongly typed languages that use static checking with compilers. The strange thing is that not every coder understand the brilliance of this. And then there are many developers that understand the brilliance but are forced to use interpreting languages since it is the only, or at least most common, tool that works in the target environment – Javascript is one example.
The '''''Think-bug''''' –  the only practical way to manage this kind of bug is to increase the development speed so that you can verify your thoughts quickly – learn, tweak, and move on, over and over. This is where model-driven development shines.


The '''''code-bugs''''' are managed with unit-tests which in short is to explain what you expect your active code to do with some more test code.
Clients and employers that pay for developers and coders should ensure that the only bugs the developers are engaged in are '''''Think-bugs'''''.


The '''''think-bug''''' –  the only practical way to manage this kind of bug is to increase the development speed so that you can verify your thoughts quickly – learn, tweak and move on, over and over. This is where model driven development shines.
The '''''Think-bug''''' is the only kind of bug that gives value back to the domain issues we are set to solve. The other types of bugs result from crappy tools and sloppiness from an immature field of engineering.


Clients and employers that pay for developers and coders should make sure that the only bug the developers are engaged in are '''''think-bugs'''''.
Model-driven development, as delivered with ECO, raises the quality by being declarative in every aspect that involves your business objects – and thus nil out '''''Typing-bugs''''' and '''''Code-bugs'''''. It also increases the development speed so that the '''''Think-bugs''''' can be managed swiftly and elegantly.


The '''''Think-bug''''' is the only kind of bug that gives value back to the domain issues we are set to solve – the other types of bugs is just a result of crappy tools and sloppiness from an immature field of engineering.
== In the '90s ==
Earlier, it was believed that the '''''Think-bugs''''' could be avoided by a very detailed analysis phase, such as the traditional water-fall methods like Rational-Unified-Process(RUP). Now, very few software engineers back these ideas. The '''''Think-bugs''''' often do not originate from a poor understanding of ''now'' but rather from an enlightenment of ''how it should be'' that grows slowly as a project progresses. This is why SCRUM and Agile strategies are much better at software development – they have room for dealing with <nowiki>''</nowiki>'''''Think-bugs<nowiki>''</nowiki>'''''.


Model driven development as delivered with ECO raise the quality by being declarative in every aspect that involves your business objects – and thus nil out '''''typing-bugs''''' and '''''code-bugs'''''. It also raise the speed of development so that the '''''think-bugs''''' can be managed swiftly and elegantly.
Using model-driven tools like ECO enables you to be truly ''agile''. Not only are the tools at their best when we need to deal with the late changes that the '''''Think-bugs''''' often are, but developers tend to defend a solution they invested in (as all humans do). Having tools that minimize the investment done gives us developers who are open to change the ability to reason about the '''''Think-bugs''''' without being defensive – this is key to solving '''''Think-bugs'''''.
 
[[Category:Architecture]]
== In the 90’s ==
Earlier it was believed that the '''''think-bugs''''' could be avoided by a very detailed analyze phase – here we find the traditional water-fall methods like Rational-Unified-Process(RUP). But now very few software engineers back these ideas. The '''''think-bugs''''' often does not originate from a poor understanding of “now” but rather from an enlightenment of “how it should be” that grows slowly as a project progress. And this is why SCRUM and Agile strategies are so much better at software development – they have room for dealing with '''''think-bugs'''''.
 
Using model driven tools like ECO enables you to be truly Agile – not only are the tools at their best when we need to deal with the late changes that the '''''think-bugs''''' often are but developers have a tendency to defend a solution they invested in (as all humans do) so having tools that minimize the investment done gives us developers that are open for change and can reason about the '''''think-bugs''''' without being defensive – this is key to solving '''''think-bugs'''''.

Latest revision as of 06:04, 3 May 2024

Definition

A bug is an error, flaw, failure, or fault in a computer program or system that produces unexpected or incorrect results. Bugs can occur due to mistakes made by programmers during the coding process, incorrect assumptions, miscommunications, or unexpected interactions between different parts of the software.

Types

  1. The Typing-bug: You did not type the things you wanted to type
  2. The Code-bug: Your code does not do the things you intended it to do, but it was typed correctly
  3. The Think-bug: Everything came out just as planned – but now that you see the result, you find that you planned the wrong thing

The Typing-bug is under control with the use of strongly typed languages that use static checking with compilers. The strange thing is that not every coder understands the brilliance of this. Many developers understand the brilliance but are forced to use interpreting languages since they are the only, or at least, the most common, tool that works in the target environment. Javascript is one example.

The Code-bugs are managed with unit tests which, in short, explain what you expect your active code to do with some more test code.

The Think-bug –  the only practical way to manage this kind of bug is to increase the development speed so that you can verify your thoughts quickly – learn, tweak, and move on, over and over. This is where model-driven development shines.

Clients and employers that pay for developers and coders should ensure that the only bugs the developers are engaged in are Think-bugs.

The Think-bug is the only kind of bug that gives value back to the domain issues we are set to solve. The other types of bugs result from crappy tools and sloppiness from an immature field of engineering.

Model-driven development, as delivered with ECO, raises the quality by being declarative in every aspect that involves your business objects – and thus nil out Typing-bugs and Code-bugs. It also increases the development speed so that the Think-bugs can be managed swiftly and elegantly.

In the '90s

Earlier, it was believed that the Think-bugs could be avoided by a very detailed analysis phase, such as the traditional water-fall methods like Rational-Unified-Process(RUP). Now, very few software engineers back these ideas. The Think-bugs often do not originate from a poor understanding of now but rather from an enlightenment of how it should be that grows slowly as a project progresses. This is why SCRUM and Agile strategies are much better at software development – they have room for dealing with ''Think-bugs''.

Using model-driven tools like ECO enables you to be truly agile. Not only are the tools at their best when we need to deal with the late changes that the Think-bugs often are, but developers tend to defend a solution they invested in (as all humans do). Having tools that minimize the investment done gives us developers who are open to change the ability to reason about the Think-bugs without being defensive – this is key to solving Think-bugs.

This page was edited 16 days ago on 05/03/2024. What links here