Refactoring and Code Smells – A Journey Toward Cleaner Code

by Ben Linders on  Sep 21, 2016

Refactoring helps to move towards cleaner code that is easier to understand and maintain. It takes practice and experience to recognise code smells: symptoms of bad design which indicate deeper problems in the code. Tools can be helpful to refactor in small steps and prevent breaking the code.

How and Why Etsy Moved to an API-First Architecture

by Thomas Betts on  Aug 02, 2016

At QCon New York 2016, Etsy software engineer Stefanie Schirmer told how her company successfully transitioned to an API-first architecture that supports multiple devices, addresses server-side performance problems, and was quickly adopted by development teams.

GitHub's Scientist Aims to Help Refactoring Critical Paths

by Sergio De Simone on  Feb 07, 2016

GitHub has just made available Scientist 1.0, a Ruby library that will help developers refactor or rewrite their code with confidence, writes GitHub engineer Jesse Toth, and that was used at GitHub over the last few years for a number of projects. InfoQ has spoken with Toth.

Measure and Improve Code Quality

by Ben Linders on  Jan 11, 2016

InfoQ interviewed Boris Modylevsky about the importance of measuring code quality and how measurements can be used to improve quality, integrating static code analysis in continuous integration, testing coverage and test automation, and the benefits that continuous integration with integrated code analysis and test coverage can bring.

Test First Approaches With Test Driven Development and Behavior Driven Development

by Ben Linders on  Jan 07, 2016

InfoQ interviewed Gil Zilberfeld about the benefits that a test first approach can bring, the concepts of Test Driven Development (TDD) and Behavior Driven Development (BDD) and examples of teams using BDD and TDD, and how you can explore BDD and TDD without doing any coding.

Microservices at Spotify

by Ben Linders on  Dec 14, 2015

Kevin Goldsmith talked about how Spotify uses microservices to break down architectures and be innovative at the GOTO Berlin 2015 conference. He argues that Microservices are easier to test, deploy and monitor than monolithic applications. Spotify also aims to have as few as possible dependencies in their product, and microservices are very helpful for that.

Human Refactoring: Applying Refactoring to Your Life

by Ben Linders on  Nov 19, 2015

Bryan Beecham gave a keynote about Human Refactoring at the Agile Testing Days 2015. InfoQ interviewed him about how Human Refactoring can help us to improve our lives, how it relates to refactoring code, why he considers eating healthy food to be important, how agile teams can benefit from human refactoring, and where people can find more information about self improvement and individual growth.

Rebuild or Refactor?

by Ben Linders on  Nov 12, 2015 3

Should you rebuilding or refactoring software?An interview with Wouter Lagerweij about what it is that makes refactoring so difficult, if rebuilding software is less risky than refactoring, and how continuous delivery fits with rebuilding software.

Managing Technical Debt Using Total Cost of Ownership

by Ben Linders on  Jun 03, 2015

Total Cost of Ownership (TCO) can be used for investment decisions and financial benefit analysis. When applied to software it covers the initial development costs and subsequent maintenance costs until phase out of a product. TCO can support architectural decisions and management of technical debt.

Raffi Krikorian Provides Guidance for “Re-architecting on the Fly”

by Daniel Bryant on  Apr 06, 2015

At the inaugural O’Reilly Software Architecture conference, Raffi Krikorian discussed strategies and tactics for technical leads and architects who are undertaking a system rewrite. Drawing on his experience as VP of Twitter Engineering, Krikorian discussed a twelve point plan for managing a re-architecting, including defining “done”, instrumenting existing systems, and enforcing code quality.

JetBrains Updates All Their .NET Tools Starting with ReSharper 9

by Abel Avram on  Dec 05, 2014

JetBrains has announced new RTM versions for their .NET tools, including ReSharper 9, dotTrace 6, dotCover 3, dotMemory 4.2, dotPeek 1.3 and TeamCity Add-in 9.0. JetBrains has created a single installer and platform for these tools. When attempting to install ReSharper, developers are presented with the option to install other .NET tools which will share the platform.

Relation of Agility and Modularity

by Savita Pahuja on  Nov 21, 2014

This post describes the relation of Agility and Modularity. Why modularity is important and how can we use it is described in OSGi white paper.

Using Complexity Measurements to Improve Software Quality

by Ben Linders on  Oct 24, 2014 3

Complexity is a direct indicator of software quality and costs: if the complexity for any code is high, the quality of that code will be lower and it will cost more to manage it. Complexity measurements can be used to estimate development and test activities and to decide where refactoring is needed to improve quality and prevent problems.

JetBrains CLion, a C/C++ IDE, and ReSharper for C++

by Abel Avram on  Sep 09, 2014

JetBrains has released CLion EAP, a new IntelliJ-based IDE for C and C++. The IDE comes with Code Completion, Code Generation (for constructors, getters/setters or methods), Intention Actions, Quick Fixes, Refactoring, Project Search and Code Navigation. They also want to bring ReSharper to Visual Studio C++.

Balancing Quality and Velocity in Agile

by Ben Linders on  Aug 14, 2014 1

Agile software development teams have to assure that the products that they develop have sufficient quality. Management often also expect that they increase their velocity to be able to deliver more functionality faster to their customer. Several authors explored the relationship between quality and velocity and suggested ways to improve both quality and velocity.