Software architecture is a process; a sequence of strategic design decisions mapping specification and business goals to architecture design, and a thing; a set of views produced by the process that address different stakeholders, Michael Stal states describing how to define a software architecture.
This article contains advice written for web developers by two engineers, one recommending useful tools and techniques while the other providing suggestions on addressing some of the challenges faced writing for the browser.
Olaf Lewitz gave a keynote about Integral Quality at the Agile Testing Day Netherlands 2015. InfoQ asked Lewitz about quality attributes, what causes poor quality software, the relationship between the structure and culture of the organization and software quality and about clarifying intent and increasing trust.
For an organization to be data-driven, it's not enough to just dump mountains of data. That data needs to be accurate and meaningful. Julianna Göbölös-Szabó, data engineer at Prezi shared how they improved the quality of its log data. Their solution involved moving from unstructured to structured data with a lightweight, contract-based approach to nudge all teams in the right direction.
Hans van Wezep, software architect at Philips Healthcare, talked about model-based migration at the Bits&Chips Software Engineering conference. InfoQ did an interview with van Wezep about the challenges in maintaining legacy software, why manual refactoring is error prone, using models to refactor and migrate a codebase, and the benefits of using models when maintaining legacy software.
Computer-checked models can be used to prove that core communications and state management in a software program are 100% logically correct. Such models can also be used to generate 100% correct source code. The usage of formal methods can reduce costs and time to market and help to deliver highly reliable software products.
InfoQ interviewed Hans Aerts, vice president software development and agile coach at TomTom, about why they decided to adopt SAFe and how it was introduced and used to simplify the organizational structure and stop doing projects, why they focus on throughput rather than output, how they modified SAFe for Custom Systems, and what using SAFe has brought TomTom.
At Unruly teams have been applying eXtreme Programming (XP) since being founded in 2006. Teams take a test-first approach to developing code and invest in automated checks that can be run in live environments. InfoQ interviewed Rachel Davies about the importance of a continuous approach to testing, how this has evolved over the years and the business advantage that it delivers to Unruly.
Doing pair programming when working remote helps to increase interaction between developers and build relationships in teams, it makes knowledge flow and can prevent developers from drifting away. You can experiment with tooling to find a setup that works for you. Empathy and egolessness can emerge organically when doing pairing in a distributed team. Read about experiences with remote pairing.
You can increase the quality of products by constantly increasing the level of automation of the delivery process and working with DevOps teams who constantly deliver small features to get quick customer feedback. A case story from ING Lease explaining the problems they had, experiences from the first steps of their agile and DevOps journey and exploring what they want to achieve in the future.
Tester should go beyond their testing discipline and go into the organization. By asking questions they can start a movement that increases product quality and helps organizations to become more successful as Mike Sutton explained in his closing keynote at the Agile Testing Day Netherlands 2015 about test beyond quality – beyond software.
At EclipseCon, the automated error reporting and UI freeze detecting tool - built into Eclipse Mars - was demonstrated. Having only been in the package for a short while, it has already helped identify and subsequently fix a number of problems. InfoQ spoke to the people behind the tools to find out more.
The goal of software is to sustainably minimize lead time to positive business impact, everything else is detail, Dan North claimed in a presentation at the QCon London conference describing ways of reasoning about code and how this leads him into an architecture style that may fit microservices.
Measuring software complexity is a popular and common activity among the software development community, judging by the number of tools built over the years and the literature around the subject. Drawing from his blend of engineering and psychology backgrounds, Adam Tornhill proposed to its audience at QCon London to treat their code as a crime scene, with the help of version control tools.
At QCon London 2015, Colin Garlick presented “An Architect’s World View”, which provided a set of values, principles and practices to act as guidance for a software architect. The core values included people, the big picture, teamwork and integrity. Garlick proposed that these values are essentially characteristics that can be prioritised in order to work as a successful software architect.