DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Enterprise AI Trend Report: Gain insights on ethical AI, MLOps, generative AI, large language models, and much more.

2024 Cloud survey: Share your insights on microservices, containers, K8s, CI/CD, and DevOps (+ enter a $750 raffle!) for our Trend Reports.

PostgreSQL: Learn about the open-source RDBMS' advanced capabilities, core components, common commands and functions, and general DBA tasks.

AI Automation Essentials. Check out the latest Refcard on all things AI automation, including model training, data security, and more.

Core Badge
Avatar

Jasper Sprengers

DZone Core CORE

Senior Developer at Team Rockstars IT

Joined Mar 2021

https://jaspersprengers.nl

About

I have been working in software since 1999, writing on whatever fascinates me about the craft, with a special interest on sensible agile practices, testing and documentation.

Stats

Reputation: 2503
Pageviews: 365.9K
Articles: 30
Comments: 31

Expertise

Agile Expertise Icon

Agile

  • Articles
  • Comments

Articles

article thumbnail
The Most Valuable Code Is the Code You Should Not Write
Coding skills in traditional programming languages will become less relevant as AI takes over. I propose the no-coding interview.
November 20, 2023
· 3,507 Views · 5 Likes
article thumbnail
Why It Will Always Be Hard To Write Useful Software
History teaches us how hard it is to write software that stays useful. It has little to do with code, so AI is not going to fix it.
October 20, 2023
· 4,864 Views · 3 Likes
article thumbnail
Essential Complexity Is the Developer's Unique Selling Point
AI can help us make sense of the essential complexity, acting as a true copilot while we can let it handle the most accidental complexity on autopilot.
September 21, 2023
· 2,583 Views · 5 Likes
article thumbnail
Are You an Efficient Developer? Then AI Is After Your Job
The advantage of humans versus AI in development coincides with effectiveness versus efficiency. The first is fuzzy and subjective; the second non-controversial and data-driven.
September 1, 2023
· 4,980 Views · 6 Likes
article thumbnail
You Can Keep Your Job, but It Won’t Be the Same Job
While AI encroaches on our coding skills, it has not aced human language by any stretch. That's where our competitive advantage lies, so be prepared.
July 16, 2023
· 4,735 Views · 7 Likes
article thumbnail
Part 3 of My OCP Journey: Practical Tips and Examples
Like learning a foreign language, you have to write original code if you want to master Java deeply. Make your examples fun, and life-like. They'll stick with you.
June 5, 2023
· 4,789 Views · 4 Likes
article thumbnail
Fun Is the Glue That Makes Everything Stick, Also the OCP
The OCP exam is a worthwhile investment, but that in itself doesn't make learning enjoyable or effective. You must work on your intrinsic motivation by making it fun.
May 15, 2023
· 5,558 Views · 4 Likes
article thumbnail
Does the OCP Exam Still Make Sense?
Oracle's tough OCP 17 exam is about much more than Java knowledge. It's a sobering reminder of how dependent we have become on our favorite (AI) tools.
April 26, 2023
· 8,697 Views · 11 Likes
article thumbnail
Specification by Example Is Not a Test Framework
SBE is a collaboration framework to arrive at executable specifications. It won't work if you treat it as just another testing tool.
March 20, 2023
· 3,164 Views · 2 Likes
article thumbnail
Let’s Use AI To Fix Bugs and Write Documentation
AI Coding assistants can produce code from written intent. What if it handled the reverse route too and produced useable documentation for legacy systems?
February 22, 2023
· 3,454 Views · 2 Likes
article thumbnail
When Scrum Feels Like Dressing for Dinner
The industry has been infatuated with Scrum for too long and adopts it without question. But in a creative process, no prescriptive framework can be a suitable fit all the time.
February 6, 2023
· 4,838 Views · 7 Likes
article thumbnail
What Was the Question Again, ChatGPT?
Sure, AI can write very decent Java code. But asking it the right question is the hardest part, and it won't help you with that.
Updated January 24, 2023
· 8,598 Views · 10 Likes
article thumbnail
Kotlin Is More Fun Than Java And This Is a Big Deal
All JVM languages can do the same job, but the one that makes you happy does it the best.
January 10, 2023
· 7,608 Views · 7 Likes
article thumbnail
The Agile Compromise Calls for Courage
More frequent deliveries reduce the risk of building the wrong thing, but sadly often at the expense of quality. That's the Agile compromise, and we had better face it with courage.
December 19, 2022
· 5,287 Views · 5 Likes
article thumbnail
Testing the Untestable and Other Anti-Patterns
The productive path to establishing and maintaining effective test automation is not easy. In this post, explore well-intentioned yet harmful anti-patterns.
November 25, 2022
· 10,715 Views · 5 Likes
article thumbnail
How To Stay Happy and Relevant as a Java Developer Over Decades
Excellent craftspeople delight customers, coworkers, bosses, and themselves. Don't believe there's something inferior about a career dedicated to coding.
November 4, 2022
· 14,655 Views · 29 Likes
article thumbnail
The Memorable Power of Agile Storytelling
The best way to make an important message stick is through a compelling story. That's how our brains work. To promote Agile best practices, we need stories in support as well as to the contrary.
October 10, 2022
· 4,811 Views · 7 Likes
article thumbnail
Two Cool Java Frameworks You Probably Don’t Need
Mutation testing and property-based testing are two relatively niche technologies in the Java tester's toolkit. Read more in this article.
September 26, 2022
· 9,180 Views · 6 Likes
article thumbnail
Agile Is Not a Method, Let Alone "The" Method
We apply the Agile method as if a recipe for any project, but the product should determine the best method. Draw a fun analogy with different acting methods.
September 13, 2022
· 6,591 Views · 6 Likes
article thumbnail
Is IntelliJ Making Us Stupid? It's Complicated
Studying for the Java OCP 17 exam brought home how much mental work we offload to our IDEs. Human memory is not about data storage. It's vital to creativity.
August 30, 2022
· 12,678 Views · 11 Likes
article thumbnail
Mocking the java.time API for Better Testability
Date/time logic has many edge cases. Here, we'll look at strategies to bend the clock to your will for better testability.
August 14, 2022
· 15,365 Views · 5 Likes
article thumbnail
Component Testing of Frontends: Karate Netty Project
In this tutorial, see how Karate Netty, used for setting up a mock server in component tests, strikes a good balance between ease of use and feature richness.
June 24, 2022
· 6,993 Views · 3 Likes
article thumbnail
True Component-Testing of the GUI With Karate Mock Server
In the days of server-side rendering, we needed the backend for GUI tests. Now, you can make true component tests with a fully mocked backend, more efficiently.
May 31, 2022
· 5,123 Views · 4 Likes
article thumbnail
Did We Build The Right Thing? That's What UAT Is About.
Non-technical stakeholders are not testers. The often ceremonial UAT stage cannot replace rigorous testing. Constant stakeholder involvement ensures we're building the right thing.
March 20, 2022
· 2,508 Views · 5 Likes
article thumbnail
Things We Still Do, Twenty Years Onward
Joel Spolsky's famous blog from 2000 prompts the question today: is it ever okay to throw away working software and start again? Yes, sometimes it is.
Updated February 11, 2022
· 11,119 Views · 10 Likes
article thumbnail
Don't Make Me Think (More Than Needed)
T-shaping makes cooperation necessary, with unavoidable interruptions and breaking of flow. Practicing clean code prevents questions from being asked in the first place.
January 14, 2022
· 8,155 Views · 5 Likes
article thumbnail
Fighting Fragility With Property-Based Testing
In traditional unit testing, we set up our tests around edge cases. Jqwik validates against a whole range of possible inputs, making it better at catching regressions.
December 24, 2021
· 4,570 Views · 1 Like
article thumbnail
How Mandatory Demos Can Degrade Quality Culture
Committing to showcase new functionality every second Tuesday is an open invitation to cut corners. It creates a prototype mindset and increases technical debt.
August 23, 2021
· 5,557 Views · 10 Likes
article thumbnail
Don’t Hold the Agile ‘Truths’ To Be Self-Evident
The Agile Manifesto was drawn up by an all-male, predominantly American ad-hoc group suggesting how the rest of the global IT community should collaborate. Reason enough for a thorough reevaluation of their principles.
August 11, 2021
· 6,488 Views · 3 Likes
article thumbnail
User-Friendly API Publishing and Testing With Retrofit
A developer-friendly approach to exporting public APIs is packaging DTOs and endpoint interfaces in an API jar file and using the Retrofit framework to create type-safe clients for integration testing.
June 9, 2021
· 6,645 Views · 2 Likes

Comments

Are You an Efficient Developer? Then AI Is After Your Job

Sep 02, 2023 · Jasper Sprengers

Indeed, that’s the state of the art this moment, but there’s no telling how quickly it will get more sophisticated. It will not just be about stringing together code snippets based on a statistical model.

Understanding and editing generated source code will be a crucial skill in the coming years. And you always need to tell the machine what to write, which is the hardest part.

You Can Keep Your Job, but It Won’t Be the Same Job

Jul 27, 2023 · Jasper Sprengers

Yes indeed. For years I’ve been hearing that contemporary pop music all sounds the same, and now we have the science to back it up. People don’t value originality, it seems, or they just prefer what they know.

https://www.theguardian.com/commentisfree/2023/jul/26/taylor-swift-rules-the-airwaves-but-thats-bad-news-for-music

Operator Overloading in Java

Jun 06, 2023 · Shai Almog

A likely gateway library to Scala ;-)

I'm Done With Unit and Integration Tests

Apr 16, 2023 · Ted M. Young

These component tests indeed require a Spring context (not always with an http server), but that is a one-time penalty for the entire suite. Tests aren’t noticeably slower than regular unit tests, although when measuring in millisecs they probably are. When you limit yourself to only testing the crucial scenarios that way, it is acceptable.

I'm Done With Unit and Integration Tests

Apr 14, 2023 · Ted M. Young

Thanks for your insights. The concepts of ‘unit’ and ‘integration’ are indeed confusing. Everything can be considered a unit when viewed within a hierarchy, and there is always integration of sorts at play.

In our Spring microservices landscape we focus on component tests, i.e. tests that consider a single deployable with its server runtime, but with all networked dependencies mocked, so they can run locally or in the pipeline. We don’t do integration tests.

What Was the Question Again, ChatGPT?

Jan 26, 2023 · Jasper Sprengers

You over-estimate me :-)
I don't have a CS degree, so I have various holes in my abilities, maths being one of them.

What Is Essentialism, and How Does It Make Software More Efficient?

Jan 16, 2023 · Otavio Santana

Yes, developers are drawn to over-engineering like moths to a flame - with similar results. (funny analogy; not mine)
I read Essentialism too a couple years ago. In a similar vein, you might also enjoy Four Thousand Weeks by Oliver Burkeman.

Security Bugs Are Fundamentally Different Than Quality Bugs

Jan 16, 2023 · Tanya Janca

Thanks for your insights and I agree that security testing calls for very specific skills.
What you call a ‘software bug’ I would prefer to call a functionality defect (caused by faulty coding). Security vulnerabilities can also be introduced by code, but even more so by the way the software is configured and deployed, which may be out of the original developers’ control. All the more reason why we can’t reasonably expect them to take responsibility for all aspects of security.

36 Questions to Ask Your Future Software Employer

Nov 27, 2022 · Tomas Fernandez

I’ve bookmarked this artice! Very nice overview. I’ve used many of them already over the years. If I may add to question 17 on languages and stacks: versions matter. If they’re still at Java 8 (or lower!), it screams unmaintainable legacy, mountains of technical debt or a CTO who doesnt see the point of keeping up with the state of the art. All are red flags.

Why I Don't Do TDD

Nov 26, 2022 · Shai Almog

Thanks for your insights! There was a time, not so long ago, that I wrote a single unit test class for every source class, mocking out every dependency, and ending up with tests consisting of 90% tedious ‘arrange’ sections. And then I wondered why refactoring was such a pain, because the tests were so tightly bound to implementation details.

Agile Is Not a Method, Let Alone "The" Method

Oct 09, 2022 · Jasper Sprengers

Thanks for your comment, but the link to the article is missing.

Is IntelliJ Making Us Stupid? It's Complicated

Sep 08, 2022 · Jasper Sprengers

It's not all bad news, though. A lot of really difficult stuff about low level concurrency has been removed since I did the SCJP 6 several years ago. Now it's discouraged to fiddle about with the Thread methods directly and use the (scheduled) executors instead. I do consider that progress.

Is IntelliJ Making Us Stupid? It's Complicated

Sep 08, 2022 · Jasper Sprengers

Well, I still do a fair bit of pooh-poohing myself, especially about such nonsensical trick questions like a public method that has the same name as its class, but also a void return type. Hence it is not a constructor. Madness!

Is IntelliJ Making Us Stupid? It's Complicated

Sep 08, 2022 · Jasper Sprengers

I'll see when I get there ;-)

Is IntelliJ Making Us Stupid? It's Complicated

Sep 07, 2022 · Jasper Sprengers

It’s certainly a double-edged sword. Perhaps modern photo cameras are also a good analogy: any photography course will advise you to turn off manual exposure and focus, and learn how the manual settings affect the picture. You learn a lot in the process.

Is IntelliJ Making Us Stupid? It's Complicated

Sep 01, 2022 · Jasper Sprengers

Thanks for your comment. I don't think the problem is specific to younger developers. The tendency to rely less and less on our memory skills affects everybody, old and young. And it has far wider implications than coding.

True Component-Testing of the GUI With Karate Mock Server

Jun 03, 2022 · Jasper Sprengers

Thanks for your comment. In my current project we also use Cypress and its own mechanism for faking backend responses, which is less hassle in that it doesn't involve starting a karate server, but is more handiwork in writing the responses.
I suppose an integration test focuses on the points of integration between two or more separately deployable components of a system. Testing with a real database or between microservices would be an example. It sits higher up in the test pyramid than a component test.

Things We Still Do, Twenty Years Onward

Feb 11, 2022 · Jasper Sprengers

Nine years later Joel wrote glowingly about the duct tape programmer:

https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/

Such a radical change of heart we call in Dutch “voortschrijdend inzicht”. ;-)

Backend Engineering Skills Are Emphasized Too Heavily for Principal Engineers

Jan 18, 2022 · Tyler Hawkins

So true. People like Steve ‘Don’t make me think’ Krug and Jakob Nielsen have been stressing the importance of usability for decades. But too many sites that stand to gain (also financially) from a great user experience look like they were built by people with no interest or experience in the matter.

How To Reduce Context Switching as a Developer

Nov 06, 2021 · Alex Omeyer

Thanks for your insights. I notice while working remote that interruptions often take shape in DM messages that have the immediacy of a phone call in people’s expectation, i.e. not asynchronous at all compared to an email. That’s problematic.
You mention two blocks of three hours uninterrupted focus. In my experience that’s hard to achieve (dreaded meetings), but also from a concentration/productivity point of view. An hour’s full focus with ten minute admin/coffee works bettrr for me.

Top 8 Recommended Books To Become a Better Programmer

Nov 06, 2021 · Bhagyashree Nigade

Interesting and varied selection, although I do think the original Gang of Four book shows its age. Many previously ubiquitous patterns (e.g. decorator) are now semi-obsolete thanks to more powerful languaged like (suprise!) Scala.

We Should Write Java Code Differently

Nov 01, 2021 · Sergiy Yevtushenko

I wouldn't claim that Scala isn't well thought-out, but there's definitely a deliberate design philosophy of brevity over readability.

We Should Write Java Code Differently

Oct 31, 2021 · Sergiy Yevtushenko

Good points, and I think it is very telling that a JVM language like Scala, which is much more feature-rich, has not made much of a dent in Java. It can be infamous for its unreadability because of everything you are allowed to leave out if the compiler can infer it. Not the way to go.

Spring @Transactional Mistakes Everyone Makes

Oct 22, 2021 · Alexander Kozhenkov

Thanks for those helpful insights. Spring adds a lot of hidden surpises in this superficially simple feature. All the more reason to test these interactions properly and in detailed integration tests against a real database.

Software Engineering is a Loser’s Game

Sep 23, 2021 · Tyler Hawkins

Fascinating read. I like the analogies with flying and language learning, which is of special interest to me, as I trained as a linguist. Becoming expert at a foreign language means you apply the rules of grammar intuitively and can no longer explain why a sentence is grammatical or not, just like native speakers. For expert programmers this means they must be able to explain their hunches well if they want to successfully coach juniors.

Reading Code Is a Skill

Sep 22, 2021 · Peter Connelly

Great article, but I beg to differ with your claim that “No one writes unreadable code on purpose”. There’s a difference between deliberately writing unreadable code, which feels like an act of sabotage and indeed very few people do if they want to hold on to their job. But there’s wilful intent and there’s neglicence. Making yourself well understood (not just in code) is hard work that people often neglect. It’s a selfish omission because it wastes other people’s time. Being Dutch myself, English doesn’t come naturally. It took hard work.

Software Engineering is a Loser’s Game

Sep 21, 2021 · Tyler Hawkins

I'm suddenly reminded of a developer colleague who was also a very proficient chess player. He said something similar. Professional players don't overlook obvious opportunities and pitfalls.

Software Engineering is a Loser’s Game

Sep 20, 2021 · Tyler Hawkins

Nice comparison! I always like original analogies. Yes, it's crazy how we trample on the low hanging fruit, pardon my metaphor.

How Mandatory Demos Can Degrade Quality Culture

Sep 05, 2021 · Jasper Sprengers

Thanks for your contribution. Yes, it's true that the Scrum guide leaves many details open. But sometimes illogical or counterproductive practices become so ingrained that I feel it necessary to remind people.

How Mandatory Demos Can Degrade Quality Culture

Aug 27, 2021 · Jasper Sprengers

Yes, I wish I could remove them myself. I'm the one getting the mails "Your article has received a comment" ;-)

Old Agile vs New Agile

Jul 23, 2021 · Cliff Berg

Thanks for this article. I think it's time to conclude that many of the common conceptions about agile are misguided and have turned into dogma: the over-emphasis on programming as a collective effort, the tedious sports analogies and the very limited actual team autonomy. What's left is going-through-the-motions ceremony.
Why still call it Agile? Sometimes a re-evaluation of ideas however constitutes a departure of principles that calls for a new name, not version two. Organizations coming to terms with their disappointment about old-school agile may not warm to the idea if all they expect is an upgrade.

User has been successfully modified

Failed to modify user

ABOUT US

  • About DZone
  • Send feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: