Articles
Want to be a better developer? Work somewhere inclusive.
Blog post
right here
When we fail to welcome diversity, we’re missing out on being better at software engineering. The skills you need to thrive in an inclusive workplace are the same skills that will make you an amazing software developer. So not only do we have teams where diversity is not valued – the developers in those teams are missing out on the chance to be so much better at their jobs!
Secure together: SnykCon 2020
Blog post on the
Tes Engineering Blog
I recently took two of my Tes training days to 'attend' the inaugural SnykCon. It actually happened a few weeks ago, but thanks to it being a remote conference and recorded I was able to attend anyway, in my own timezone, without flying anywhere. Which I think is just fantastic. There was a good mix of content. I got exposed to some new ideas.
40+ great resources that will rock your release velocity
Article on
TechBeacon
It doesn't matter how quickly you can build software if you can't get it in front of users. What's more, once it's out there, you need to be able to tell if it's actually doing what you'd hoped and ship adjustments fast. Here's my roundup of some of the most useful resources for learning how to create a reliable, repeatable route to production that will help you release code faster.
4 ways to stop your shared microservices from falling apart
Article on
TechBeacon
Good microservices have a clear purpose, but not all good microservices have a clear owner. Some services serve a utility purpose and are shared among multiple consumers in your technical landscape. How do you best look after these shared services?
10 stress-free steps to fix even the scariest bugs
Article on
TechBeacon
You've got a product bug, and the pressure is on. Your users are upset, there's a group of grumpy managers huffing nearby, and you're somehow expected to keep your cool and get to the bottom of what's gone wrong. Here are some tricks to help you stay calm and fix even the most terrifying production bug.
3 prioritization techniques to beat software deadline stress
Article on
TechBeacon
When faced with an unrealistic deadline, there’s a choice to be made. Something's got to give. Do you do all the things requested, but do a bad job because you're under pressure and there's not enough time to do them properly? No. The answer is prioritization and coming up with a picture of what 'good enough' looks like.
How much is your software support costing you?
Article on
TechBeacon
The full cost of supporting software is often overlooked. It's relatively easy to track the time it takes to fix bugs that crop up, but that isn't the full picture. The problem is that when so much of the support process goes unnoticed, it's difficult to know where you could be saving time.
How to develop self-healing apps: 4 key patterns
Article on
TechBeacon
Self-healing applications sound futuristic. The phrase conjures images of advanced artificial intelligence (AI) algorithms adjusting complex processes. But while machine learning may be the next big thing in the tech industry, you don’t need any AI at all to build applications that heal themselves.
How many layers does your testing cake have?
Article on
TechBeacon
When development teams think of building applications, they usually think about what features they want to build. But those applications also needs to satisfy a set of cross-functional requirements. Here are key factors to consider as you build tests that account for all of your requirements.
Quick, clean commits with partial linting
Blog post on the
Tes Engineering Blog
Tired of your commits taking >10 seconds? At Tes, we use husky to run code when the git precommit hook triggers. Most often, we run npm run lint so that we can catch linting errors before they’re even committed. The problem is that, even when you’re developing microservices, it could take quite a while to lint all the files in your repository. On one particular repository, committing was taking 12 seconds, so I decided to do something about it.
Two years with no testers: What I learned
Article on
TechBeacon
Assigning dedicated testers is a well-entrenched pattern that has driven the behavior of software developers, often in the direction of picking up bad habits. But for big companies such as Facebook and Yahoo, working without testers is business as usual. Here are useful lessons I've learned over the past two years working without dedicated testers.
Why your DevOps transformation is failing
Article on
TechBeacon
Organizations that rely on IT for their success fall into two categories: those that work smart and get things done, and those stuck with outdated modes of working that struggle to innovate—or even to keep up. The organizations in the first category take a variety of forms, but those in the second often look quite similar. They're mostly large, older enterprises. And they're in trouble.
5 cures for your test data headaches
Article on
TechBeacon
Tests are a crucial part of ensuring that our systems actually do what they’re meant to do. All tests inevitably rely on data in some form. The problem is that testers tend to get themselves into unnecessary tangles as a result of how they create and maintain their test data.
5 ways to put your microservices to the test
Article on
TechBeacon
After nearly two years working in a microservices architecture, I've learned to break a lot of my own rules. When working with a large set of small, diverse applications, the rules just don't seem as important. A microservices ecosystem pairs well with a more pragmatic approach to testing.
Should you write automated UI tests?
Article on
TechBeacon
UI tests use your application as a user would. At their best, they are the single most comprehensive way of testing your application. At their worst, they cause developers to spend hours every week maintaining tests that never actually stop any bugs from reaching production. Not sure whether your next feature needs a UI test? Here’s a simple set of questions to help you decide.
3 production QA practices that will save your business money
Article on
TechBeacon
Most organizations use quality assurance practices to improve the quality of their systems, hoping that, in the long run, the increase in quality will lead to lower costs and higher profitability. The problem is that they may be wasting too much time worrying about issues that will never happen. QA in production is a set of emerging DevOps techniques that focus on fostering a keen awareness of what the actual issues are in production.
5 ways to cheat the software change curve with DevOps
Article on
TechBeacon
DevOps practices can push the boundaries further, reducing the cost of change dramatically. These practices tend to focus on what happens while and after software is released, and each of them makes it cheaper to make changes late and often. They can even help you deal with what happens when things go wrong, as they so often do.
QA in Production
Article on
martinfowler.com
Things always go wrong in production, but this doesn’t have to be a bad thing. It’s an opportunity to learn about your system and the real world with which it interacts. With the right production monitoring tools and a good Continuous Delivery pipeline, you can build a set of feedback mechanisms that help you find out about issues as they happen and ship fixes quickly. Adopting production QA practices can help you gain a richer understanding of the real issues your system faces and learn new ways to improve its quality.
Are your tests slowing you down?
Article on
TechBeacon
Application tests are useful because they help you go faster. They help you to make changes to your code without fear of breaking existing functionality. That said, I’ve seen teams get slowed down by their approach to testing. Here's how you can avoid that fate.
Don't be a DevOps hero
Article on
TechBeacon
Many organizations stumble on their DevOps journeys because, even as they focus on breaking down silos, the teams formed to champion DevOps end up becoming silos themselves. Here's a look at how these DevOps heroes are created, why it’s problematic, and a few techniques to help you avoid this trap.
3 techniques for stress-free release management
Article on
TechBeacon
Thanks to an explosion of DevOps tools and techniques, releasing new features no longer needs to be a stressful, all-weekend slumber party. What follows are a few release management techniques that you can use to take the stress out of releases and get a good night’s sleep.
Killer dashboards
Article on
TechBeacon
How many people are using your website right now? Which features are their favorites? Are they experiencing errors or getting stuck? How are your servers performing? Is your code easy to work with? Are you making money? Create the right dashboards and you'll have the answers to these questions all around you, all the time.
11 ideas to crank your deployment pipeline to 11
Article on
TechBeacon
In the parody rock movie This Is Spinal Tap, the band's guitarist gets himself a brand new amp that's so loud, he explains, that its volume knob goes up to 11 instead of just 10. Once you've set up your first deployment pipeline, you may be looking for ideas to make your deployments easier and more reliable. Here are 11 ideas you can use to give your pipeline that extra push.
Stylish and Sane: A Guide to Better CSS
Article on
InfoQ
Let's face it. All websites need CSS and yours is probably awful. There's too much of it. There's a bunch of duplication. It's like a delicately spun spider web, tightly coupled and fragile. It has more patches than a bicycle wheel. It doesn't need to be this way. I’ll introduce you to the concept of component-based styling and show you how to curate a style guide for your site.
Running the gauntlet: Setting up your first deployment pipeline
Article on
TechBeacon
You have a new feature you need to take to production. Maybe you've created it to respond to some customer feedback or a new opportunity in the market, and the business wants to deploy it as quickly as possible. Do you know the path the code must take from a development machine to production? How do you know the changes you've made aren't going to break existing functionality? To answer these questions, you need a deployment pipeline.
Is QA dead?
Article on
ThoughtWorks Insights
Test automation is not a new practice. Most software teams are trying to automate testing in some way or another, especially as a replacement for long, manual regression testing cycles. If you’re a QA, you’ve probably wondered what this means for your job. In the world of ‘automate everything’ – where do you fit in? Is the role of the QA dead?
DevOps culture
Bliki post on
martinfowler.com
DevOps is a movement to break down traditional silos between developers, operations and other delivery groups. Although many tools are useful, it is primarily a cultural change.
Four attributes of an agile business
Article on
ThoughtWorks Insights
Building software is something that your business needs to do well. You see more revenue moving through digital channels and you’re starting to realise that this trend will continue. Your company’s ability to remain competitive hinges on your use of technology. This same technology gives new competitors the ability to springboard their businesses and scale quickly.
Why you should hire a polyglot programmer
Article in
P2 Magazine
It’s common for people to be sceptical of software developers with varied coding experience. We’re used to seeing, “5 years C# experience” on the CV in front of us, so when we see a CV that says: “2 years of Ruby, 1 year of Python and 2 years of Java”, we might be concerned that the person doesn’t have the depth of experience we need. Although this reaction is natural, it’s misguided.
My life as a developer at ThoughtWorks South Africa
Interview with
ThoughtWorks Insights
Shortly after opening our first office in South Africa in 2012, our recruitment team were fervently sourcing the local market for people to join our rapidly growing 'family' in Johannesburg. Rouan Wilsenach was one the first few developers to join the team and now three years later he reflects on his journey and shares his advice for future ThoughtWorkers.