Customizing or extending third-party "vendor" source code is becoming increasingly common especially with the availability of open source software. Managing the incorporation of vendor releases alongside customizations requires an additional layer of configuration management. Traditional branch-based software configuration management (SCM) tools require an unnecessarily complex branch and merge process. This article describes a more intuitive and efficient parallel development model for managing customizations to vendor code.
Divided information security and QA teams face three major problems, and ignoring the impact of these problems can lead to disaster. In this week's column, Ryan English discusses the problems and offers three easy steps any organization can take to merge key teams and processes. Improve your QA with this method and avoid finding yourself on the increasingly long list of companies that paid the price when they ignored easily preventable security defects.
Implementing a great idea takes common sense and good marketing. It also requires knowing who to motivate to implement change. In this article, Clarke Ching writes about a time when he figured out a simple solution to a complex problem that would save his employer millions, but no one seemed to care. Clarke discovered that it is far easier to sell aspirin if your customer already has a headache.
It has been six years since the authoring of the Agile Manifesto, and the technology and tooling landscape has changed since then. This conversation between Ron Jeffriesand Ryan Martens debates the merits and weaknesses of tooling agile.
Agile development approaches are moving into the mainstream. They are no longer relegated to small co-located teams. Large application development organizations in and outside of IT are betting their businesses on globally distributed teams using agile methods to create and maintain their products. In these organizations, the Agile Manifesto's principal to value individuals and interactions over process and tools is impossible to realize. The complexity created by scale cannot be managed without judicious use of both process and tools.
Any team benefits from being highly collaborative. This is especially true in agile development, where the techniques for rapidly building quality software rely on communication and relationships over documentation and process formality. Yet the agile community doesn't have a common definition for what “collaboration” is
Fast cars, flat-screen television, high definition gaming consoles, and dual core processor equipped laptops: the amenities of modern technology rule us. Computers are an integral part of our lifestyle and work-life, and many people define themselves by their choice of tools to complete tasks. Those interested in implementing agile frameworks are no exception, often voting to use electronic tools before exploring alternatives. This article is meant for the open-minded, ready-to-explorer surrogate who is not afraid of being a low-tech hippie in times of high-tech espresso machines.
Agile development is a process methodology where, at its core, is the ability for developers to share and test changes in software as rapidly as possible in an efficient but disciplined approach. The Continuous Build process is based on manual scripting and therefore is highly redundant and non-adaptive. Continuous Builds that rely on redundant scripts become road blocks for agile teams when attempting to move quickly from code to deployment. Agile developers must recognize the problems of manual scripting and begin moving toward a non-redundant Community Developed approach to managing the Continuous Build.
I think that the person most affected by the introduction of agile or extreme programming techniques is not the software or quality assurance engineer, but the build manager. Agile techniques are a throwback to the age when developers were able to work on small projects in small teams. Each developer once again concentrates on small building blocks of code and integrates regularly with other developers to ensure that the overall software project is progressing. For developers, agile techniques are a natural fit because they reflect how developers like to work best: on small, manageable pieces of code with regular feedback. However, even though developers are working on small sections of code, their overall projects are now large and continually growing. And it's the large body of code that the build manager is expected to work with, not the manageable chunks. While daunting, this precipitous increase in builds can be managed by carefully implementing continuous integration and making fast, automatic builds the quot;heartbeatquot; of your agile development.
In this article, the author identifies the different vulnerabilities present in most systems and how to go about testing for these vulnerabilities. The author also lists several testing tools that support this type of security testing.