Welcome to Green’s Opinion! Below you’ll see some of my projects, open source and recent blog posts:

  • Your Team Might Not Be As Effective As You Think

    I’ve had the privilege of working with highly effective teams for most of my career. In particular, the past 5 years have been incredible, working with the best software developers that I’ve ever known. The kind of teams that books are written about — embracing software craftsmanship, self-organization, agility (small ‘a’), responsibility and continuous improvement. The kind of teams that are principled, that share knowledge freely and deliver high quality software in a repeatable, sustainable fashion. So you can imagine that it... continue

  • Faster Feedback Loop on Code Reviews

    We’ve all seen those projects that start with fast builds. Fast builds that build everything and run all of the tests are a great way to get feedback on your code review, whether it be Travis commenting on your GitHub Pull Request or Jenkins voting on your Gerrit code review. It’s almost inevitable that successful projects end up with growing build times, often to the point where the feedback loop on our changes is out of control. This post is... continue

  • Surfacing Abstractions in Code Reviews

    Code review tools such as GitHub PRs and Gerrit do a a great job of enabling developers to collaborate, but their file- and line-oriented approach leaves abstractions out of the picture. Developers must have the capacity to see the abstractions by reading the code, or risk having code reviews devolve into a critique of syntax, whitespace and implementation detail. The intrinsic ability to see abstractions comes easily for some, but others are at a disadvantage especially when less familiar with... continue

  • Architecting for the Value Stream

    More features, faster time to market, fewer defects. These are what organizations strive for. But an overly narrow continuous integration and continuous delivery focus on DevOps is insufficient to achieve these goals. Instead, we should be taking a whole-system point of view that considers factors beyond development and operations — including people, teams, processes and tools. By taking a constraints perspective, we can identify and address flow-limiting aspects of our value stream. The foundation of “good” architecture — principles such... continue

  • ELK Stack for Improved Support

    The ELK stack, composed of Elasticsearch, Logstash and Kibana, is world-class dashboarding for real-time monitoring of server environments, enabling sophisticated analysis and troubleshooting. Could we also leverage this great tooling to our advantage in situations where access to the server environment is an impossibility? Recently while investigating a customer support case, I looked into whether or not we could create a repeatable process to enable analysis of log files provided as part of a support case. Following are details of... continue

  • Using Eclipse for Android Development in 2017

    Innovation in platforms and tooling is necessary for companies to remain competitive, and Android development is no exception. The Android team at Google has been working hard in this department, with their latest major new thing being improved Java 8 support. This involves some big changes to the Android build system, which unfortunately has caused some casualties in tooling such as this previous approach to using Eclipse for Android development. With the prospect of cleaning up my Android codebase with... continue

  • All Articles