Articles tagged “quality”
36 articles
- Quality and practice: convincing as a consultant When you act as a consultant in a company, the first thing you must remember is that you're not the person who takes the decisions. While you might be the source of infinite wisdom, people will listen to you, or they will not. When your voice is not…
- Quantifying time and cost: why do we always get it wrong? Discussions like this happen all the time when you work in IT. You are given a summary which barely describe the project, you have no time thinking about it, and then you receive a strong pressure from your boss because some PHP code monkey from a…
- Ascending and descending representations of quality There are many projects which start with very low expectations of the quality of the source code and project organization. The idea is to get something which simply works, start to sell it, and then, either continuously or in one brutal step,…
- Closed source, secrecy and trust Most companies which produce source code don't release it in the wild. They are hiding it, protecting it against unauthorized access, obfuscate it, make you sign NDA and ask themselves how they can be sure that the code will never ever reach…
- Don't ask writing good code What a surprise. After being asked for months to simply write code as fast as possible, with no thinking or testing, management suddenly criticized one of the colleagues, because the code of a new, unstable feature implemented today contains long…
- Comments classification This is a bad comment: int i = 0; i + 1; // adding 1 to i should work but dont work i dont know why!!!! print(i);For every good comment, I've seen hundreds of bad comments. They harm the code base and give the wrong impression to the author that he…
- Dunning–Kruger effect Dunning–Kruger effect consists for unskilled persons to believe that they are more experienced, and for highly skilled persons to underestimate their level, believing that tasks, which they find easy,…
- Linters rock, but they are slow I love linters. I love them so much that I'm actually considering to use some of them at pre-commit stage to reject commits which contain errors. The only thing which is the reason I hesitate to do it is that some of them are quite slow. Currently,…
- Measurements as a precursor of culture of quality When auditing different IT companies, the noticeable pattern is that companies which perform badly have problems in every imaginable area. I've never seen a company which has outstanding work quality…
- Micro-services in a context of high complexity and low code quality One of the most problematic things of a software developer is how to handle the increasing complexity of a given code base and the decreasing quality of it. Code which, when originally written, was readable and understandable, looks completely scary…
- Topography of tests Important note: this article is written for developers who don't practice TDD, that is more than 99% of developers I know. TDD is a very different world, and a few assertions I make in this article don't apply there. For instance, my skepticism…
- Should students be using syntax highlighting? A few months ago, someone asked a question on StackExchange, wondering if there is a research paper indicating whether syntax highlighting helps or slows down the learning process of future programmers. The question was closed and deleted, so here…
- Linters and style checkers: how to save hours of painful debugging I'm always impressed with the consistency of screw-ups caused by the unwillingness of programmers to follow basic guidelines. To be more specific, I'm talking about my own screw-ups here. I've been convinced a long time ago that: Style checkers and…
- Measurement: a two-edged sword Too often, the practice of measuring things is used in place of basic thinking, and, logically, leads to low customer satisfaction and poor product quality. The major reason for that is that in most cases, measurement is dehumanizing. A customer,…
- Do we think enough about coding standards we use? What is wrong about coding standards and “best practices” in general is that they throw the thinking process away. This may be a good idea for manual workers, but is quite problematic for developers.…
- Telecommuting and procrastination My colleagues and I had recently an interesting discussion about letting developers to work at home. They highlighted that one of the issues of telecommuting is that it makes it difficult for the…
- Person-centered metrics and self-organizing teams We cannot reliably measure developers' productivity, and this is the major elements which pushes many managers to focus on less representative aspects of developers' contribution to a project and a company. Some companies do a really bad job,…
- Interfaces in microservices Observing large in-house systems which either use SOA approaches or even attempt to mimic microservices, I constantly notice a pattern which makes those systems sub-optimal and difficult to maintain. A tiny Hello World-style application can easily…
- Those things we measure A recent change in Bookshelf service removed the counter which indicated how many books were displayed on the page. To be more precise, the counter can only be visible by the user in person, but not publicly. This is essentially a shift to substance…
- Don't ask writing quality code Four years ago, I complained about people who are asking to write good code in a context where the company culture itself leads to bad code in the first place. I explained the necessity of RCA, and the uselessness of individual suggestions to write…
- What makes performance decrease over time? In an excellent blog post, Nikita Prokopov shares his thoughts about “our industry’s lack of care for efficiency, simplicity, and excellence,” explaining, among others, that year after year, hardware becomes more and more powerful, but applications…
- Take risks, fail fast In many software development teams, the source code is sacred. Its sacredness is caused by two factors: The code is the ultimate expression of the intellectual work of the developers. If you have anything against the code, it means that you're…
- Monochrome laziness Twelve years ago, Windows Vista was released, impressing everyone by its shiny, elaborate icons. For instance, a recycle bin was illustrated by a shiny transparent waste basket. Search functionality was shown in a form of a metallic magnifying glass.…
- Lazy programmer fallacy There is, among project managers, a thinking that programmers are lazy. Programmers—they say—don't want to work; they prefer playing games or just doing nothing at all. This is all but truth. Actually, many programmers enjoy programming. They have…
- YAGNI principle in action Discussing YAGNI with colleagues, I often find myself in a situation where they give me a concrete example where they were very happy to think about a given feature or aspect before it was really needed. As those discussions always follow the same…
- Workflows, ETLs, and pure magic Five years ago, I wrote a rather opinionated and very critical article about Nintex Workflows, a perfectly useless product which makes your life miserable while you're paying for it. Nintex is sold as a solution to allow non-technical persons to…
- Measuring quality and undesired behavior When I talk about measuring quality, I can't emphasize more how measuring a given thing influences the behavior of the persons who are being measured. When done properly, this is an excellent lever which encourages persons to work better. In other…
- Measuring quality like a pro My previous article led some of the readers wondering how a correct approach to measuring stuff looks. I'll use this as an opportunity to show how I worked myself as a consultant. The article would…
- How to deadlock a project In 2014, I wrote the article Taking hostages with Waterfall, explaining how Agile moves the power of decision about the scope and the cost of the project from the ones who make the software to the…
- When testing is not fun enough On regular basis, some colleague starts complaining in an informal discussion about the low quality of some project he's working on. It has to do with code quality, or lack of tests, or both. Every…
- Languages usage over time I started programming a long, long time ago. The oldest source code I can find in the archives is from 2004. Back then, I was seventeen years old, using Visual Basic and something that I believed…
- Using LOCs to validate hypotheses In my previous article, I was talking about the tool which gathers the diffs from the version control commits, and uses them to compute the number of lines of code (LOC) per language over time, in…
- Designing documentation and technical emails A few years ago, I was working on a project where a part was done by a team in London, and the other part was developed in France. To communicate, we were using among others the WebHooks, for the sole…
- This is what you get when you measure lines of code A few months ago, I wrote an article about a technical leader who misunderstood how to measure code quality. Trying to improve things, his only achievement was to make everything worse, because of the…
- What targetting 100% code coverage taught me I was recently in charge of drafting a new system for a customer. I took it as an opportunity to demonstrate some of the approaches that should lead to higher quality software, compared to what the…
- Edge cases Software products are designed for the cases where things go right, the situations, where networks are perfectly flawless, servers don't reboot randomly, and processes happen as they would happen in…