June 29, 2014

Why We Should Love 'null'
null has been the cause for countless troubles in the history of software development. Today, 'null' and 'the billion-dollar mistake' are synonyms. Therefore some developers try to avoid null by using techniques such as 'return zero instead of null', the NullObject pattern or the Optional/Maybe pattern. Should you use these techniques in your source code? Do they lead to more reliable software? Or is there a better solution? These are the questions this article tries to answer.


Book Review: Integration Testing from the Trenches
The book posits early on that Integration tests are brittle and hard to diagnose, so they should not be used instead of unit tests, and that is the reason that continuous integration servers generally measure coverage of unit tests but not integration tests. Most of the time, Integration Testing is either crudely defined, wrongly understood or imperfectly used. In order to maximize the ROI, the most important guideline should be: the larger the SUT (System Under Test), the lesser the required code coverage


Governance of Agile Delivery
Critics say that Agile methodology is all about working in an unstructured way and for that reason, they believe that governing agile practices is always a challenge. While some of the Agile principles appear to support such criticism, there are many cases where organizations have successfully implemented processes and frameworks towards governance of Agile practices. Agile practitioners believe that because the agile methods are designed to be self-assuring, when practiced right, there exists built-in governance and accountability.


Unique Scrum Practices for a Better-Quality Product
Without making real improvements to software development practices, expecting a quality improvement is a sin. ... Do detailed design only for the code that you need to write for the sprint. There is additional effort spent on coming up with a generic design and generic reusable libraries. While they are good to keep for future use, it is critical to design only for the sprint's need. ... The team should be able to collectively own the entire code base. This means everyone on the Scrum team should know the code, to at least a certain level. It's OK to have an owner for the code, but it shouldn't be a black box for other developers in the team.


Operational Efficiency Identity Management Metrics
The idea behind this article is to discuss and classify specific metrics that indicate the need to adopt identity management practices and solutions. Although this list will not be exhaustive, it will provide most of the top identity management metrics that most companies will benefit from. Again we will break down the metric in the main drives for identity management as defined by my Top Reasons to Implement Identity Management. Note that for the purpose of this exercise we will cover drivers across identity provisioning as well as governance solutions, and the metrics are technology and platform agnostic.


From Software-Defined to Metadata-Driven
Software is eating the world! Every company is becoming a software company. If companies don’t, they cease to exist. Just imagine: you are a thermostat maker and suddenly you have Google as a competitor (via its Nest acquisition). This is just one of the many recent examples. Interestingly a lot of the innovations in the software industry are fuelled by abstraction and automation, concepts that are well-known in the Model-Driven Development (MDD) community. As the world is awakening to these concepts there is a clear opportunity (and need!) to bring MDD to a much broader audience.


Google Dumps MapReduce in Favor of New Hyper-Scale Analytics System
“We don’t really use MapReduce anymore,” Hölzle said in his keynote presentation at the Google I/O conference in San Francisco Wednesday. The company stopped using the system “years ago.” Cloud Dataflow, which Google will also offer as a service for developers using its cloud platform, does not have the scaling restrictions of MapReduce. “Cloud Dataflow is the result of over a decade of experience in analytics,” Hölzle said. “It will run faster and scale better than pretty much any other system out there.” It is a fully managed service that is automatically optimized, deployed, managed and scaled. It enables developers to easily create complex pipelines using unified programming for both batch and streaming services, he said.


God-Mode in Production Code
Takipi operates at the native JVM level, which allows it to detect and show you any form of exception or error in your code, regardless of whether it was thrown by the application code, the JVM, a 3rd party library, or how it was caught. You can see and sort through all the errors through Takipi’s dashboard which operates as a sort of spreadsheet for all the errors in your application. You can sort and filter them by the most recent ones, ones that have recently increased in volume, or by a specific type. When a new location in your code begins firing an error, Takipi will notify you by email. It also sends daily digests that summarize which new errors have been introduced into your code, and top errors across your cluster.


What is the job of Chief Information Security Officer (CISO) in ISO 27001?
ISO 27001 is written in such a way that it is applicable to companies of any size, in any industry, so requiring small companies to have a designated CISO would be overkill. Since ISO 27001 does not require the CISO, it does not prescribe what this person should do, either – so it is up to you to decide what suits your company the best. Generally, this person should coordinate all the activities related to securing the information in a company, and here are some ideas on what this person could do (divided by ISO 27001 sections):


Engineering Velocity: Continuous Delivery at Netflix with Diane Marsh
Netflix's Dianne Marsh told the story of the open source based tool stack supporting continuous delivery at Netflix. Very inspiring to see DevOps at work, although Dianne's remark that she "never had to argue a business case or think much about cost" caused some of us to wonder whether successful DevOps implemenations were dependent on unlimited budget availability...



Quote for the day:

"Lead and inspire people. Don't try to manage and manipulate people. Inventories can be managed but people must be lead." —-- Ross Perot