Topics

Featured in Development

Understandability is the concept that a system should be presented so that an engineer can easily comprehend it. The more understandable a system is, the easier it will be for engineers to change it in a predictable and safe manner. A system is understandable if it meets the following criteria: complete, concise, clear, and organized.

Featured in Architecture & Design

Sonali Sharma and Shriya Arora describe how Netflix solved a complex join of two high-volume event streams using Flink. They also talk about managing out of order events and processing late arriving data, exploring keyed state for maintaining large state, fault tolerance of a stateful application, strategies for failure recovery, data validation batch vs streaming, and more.

Featured in Culture & Methods

Tim Cochran presents research gathered from ThoughtWorks' varied clients and projects, and shows some of the metrics their teams have identified as guides to creating the platform and the culture for high performing teams.

The Agile Alliance Takes an Official Position on Certification

The numerous discussions that have been happening in distributed pockets of the community regarding certification of Agile processes has prompted the Agile Alliance to take an official stance. As Agile development practices spread, and employers look for qualified staff to help them build software, they have turned to certified individuals thinking that they were better qualified to fill the positions. The Agile Alliance stated that:

It is the position of the board of the Agile Alliance that employers should have confidence only in certifications that are skill-based and difficult to achieve. We also believe that employers should not require certification of employees.

The reasoning behind the Alliance's stance is simple. Certifications tell you that a person has been exposed to specific knowledge. And, although knowledge is useful, it is only the first step towards efficient practice and delivering value to the company.

A skill is not as simple to acquire as knowledge: the learner has to perform the skill badly, recover from mistakes, do it a bit better, and keep repeating the whole process. Especially for the interrelated and interpersonal skills required of Agile software development, much of the learning has to take place on real projects. It is that learning that a certification should vouch for.

This type of certification, which is not readily available in our community, is what the Alliance endorses. But, to be able to vouch for someone with this degree of certainty is time consuming, and therefore expensive.

Therefore, the only skills worth formally vouching for are those that require substantial effort to learn.

The Alliance goes even further suggesting that companies wanting to adopt Agile development should not require certification

Excluding them [non-certified practitioners] from consideration would be a poor business decision. Moreover, the state of the practice moves on. Skills decay when unused. The question is not whether an applicant once possessed appropriate skill; it's whether the applicant can do what's required today. A certificate cannot substitute for the hard work of individual evaluation.

Finally, they got specific with respect to current certification processes. Both Certified Scrum Master and DSDM Foundation designations were labeled as knowledge based certification. The Alliance was careful to point out that these certifications are valuable, and participants do get their money's worth, but that they are not evidence of skill. Other certifications such as Certified Scrum Practitioner and DSDM Practitioner were labeled as skill-based and have the official stamp of approval.

As the certification debate continues, we will expect to see lively debates and alternatives to the current certifications emerge.