Showing posts from February, 2015

Test Frameworks

Lists of frameworks by language

BDD Cucumber

DBunit - JUnit extension for database driven programs



Undertow is a Vertx like server sponsored by JBoss, foundation for JBoss AS 8 WildFly

written in java, providing both blocking and non-blocking API’s based on NIO.Lightweight < 1MB jar < 4 MB of heapHTTP Upgrade SupportWeb Socket SupportServlet 3.1Embeddable

Metrics, Monitoring, and Graphing Dashboards

Icinga / Incinga2 - open source enterprise monitoring and notification
Graphite - highly scalable real-time graphing system
Graphana - rich graphing, dashboards, templates

Icinga 2 contains an built-in implementation of performance graphing via add-ons such as PNP4Nagios, NagiosGrapher, InGraph, Graphite and Grafana. There is a module to integrate Icingaweb2 and Graphite.



Hosted Solutions

Application Metrics

Dropwizard codahale Metrics

    MetricRegistry metricRegistry = new MetricRegistry();

    ConsoleReporter reporter =
    reporter.start(1, TimeUnit.SECONDS);

     Counter c = metricRegistry.counter("foo"); //counter;

     Histogram h = metricRegistry.histogram("foo"); //distribution

     Meter m = metricRegistry.meter("foo"); //throughput

     Timer t = metricRegistry.timer("foo"); //times an event
     Timer.Context ctx = t.time();

Typical ConsoleReporter output:

2/12/15 8:34:21 PM =============================================================

-- Counters --------------------------------------------------------------------
             count = 1
             count = 2


Dev Ops

Software Architecture

Code Quality Metrics

From 97 Things Every Software Architect Should Know #28

load the output from checkstyle, which is essentially a set of metrics on the class and method level, into a spreadsheet to render charts. The same metrics could also be shown as a tree-map using the InfoViz toolkit. A great tool to render complex dependency graphs is GraphViz.

TreeMap visualization

CheckStyle Eclipse plug-ing

Requirements Analysis

Request value of requirements/features, aides prioritization and identifying alternativesDiscuss and document customer's whyDocument gestures per task and max time per task: user productivityAvoid discussing solution/how as it moves conversation from customer's domain to developer's Fast, responsive, and extensible are not requirements because they aren't quantifiableCriteria are objective with thresholdsNon-functional requirements like performance should be specified early and tested and tracked early (baselined) and throughout the projectClarify and Document ConstraintsClarify, Document, Reduce and Manage ScopePrioritize and build most important features firstDivide and conquer - breakup, parallelize, and design/implement smaller features whenever possibleDocument and track risks, i.e., the same as bugs update the status as risks are mitigated

Low-Code Development - MDD, MDA

Low-Code Development

... analysis by Capgemini found that MDD took only 2.5 hours per function point compared to 10.6 hours for Java and 15.5 hours for C#.

MDD = Model Driven Development
MDA = Model Driven Architecture


Sparx System Enterprise ArchitectIBM Rational Rose

Group Collaboration - How to Make Toast

Project Management Tools


Jira - Agile backlog management, sprint planning and tracking
Confluence - wiki collaboration, not real-time multi-user collaboration like Google Docs
Crucible - code reviews
Clover - code coverage
Bamboo - continuous integration

Free tools

GitLab - issue tracker, code reviews
Jenkins - continuous integration
EMMA, EclEmma - code coverage
Google Sites/Docs - real-time multi-user editing collaboration wiki
Google for Business

Architect for Resiliency During Cloud Outages



Backlog Grooming SessionSprint PlanningDaily Scrum Stand-up: accomplishments since last Scrum, today's objectives, impedimentsScrum of Scrums - scaling Scrum to multiple teams, same as daily stand-up, but at team levelSprint Review - present the end progress of a sprint for inspection with demosSprint Retrospective - what went well, what could be improved
Quarterly Business Review (QBR)

Change Control Board (CCB)