‘Software Engineering’ Archive

ClojureScript and Node.js – an experience report October 26, 2012 No Comments

ClojureScript on Node.js is a (potentially) compelling story for writing scripting apps with Clojure. I am just now finishing up the first of a handful of example apps to help tease out the approach, tooling, and ClojureScript patches needed to make Clojure a viable option in this regard. git-ttt git-ttt is a git-backed, text-based, ticket [...]

Grok it, Rock it, Drop it February 20, 2012 3 Comments

Quickly evaluating ways to simplify your problem space is an essential problem solving skill.1  However, this is extremely difficult to do in fields where possible solutions are rapidly growing (like software).  To overcome this, I present Grok It, Rock It, Drop It. The goal is simple: Continually be learning something new.  Experiment and explore the [...]

The power of cultures January 11, 2012 No Comments

Our world and behaviors are shaped by the cultures and rules that conform it. 1  The power of people and the culture they embrace are some of the most powerful tools in the software engineer’s toolbox, and are also the greatest hurdles.  The best solution to any problem is the non-technical solution, that uses the power [...]

Discussing and evaluating architectures; pt 2 July 30, 2011 No Comments

In the last installment of this series, I presented the foundations of software architecture.  To recap, they were Every piece of software has an architecture, whether intentional or not Every architecture is created by at least one architect Architecture appears in the small (software design patterns) and in the large (architectural styles) Architecture is independent [...]

Discussing and evaluating architectures; pt 1 July 12, 2011 1 Comment

Previously, I discussed how to Lose Weight exercise validation at various points in the software development life cycle, but left out many details pertaining to software architecture.  Software architecture’s sheer depth and influence on a project was the rationale for doing so.  Being able to fluently dissect, analyze, discuss, evaluate, and compose software architectures is [...]

A list for software engineers, pt 2 June 30, 2011 2 Comments

In a previous post I presented a list of influential software engineering papers that greatly defined and shaped the field.  Additionally the papers provide a great introductory platform for building and sharpening personal software engineering skills.  I’m continuing in the second part of the post by listing books and videos that are great references to [...]

A list for software engineers June 18, 2011 3 Comments

It’s important to understand the core concepts within software engineering to better engineer systems, and produce deliverables on time, under budget, and of high quality.  Below is a list of articles that have shaped software engineering and will no doubt make you a better, more objective software engineer.1  The references cited in these papers can [...]

The power of why; or “good enough” evaluation June 7, 2011 No Comments

It is difficult getting to the root cause of a problem.  There often are layers of indirection and complex relationships that are hard to discern when you’re working through the problem’s decomposition.  Asking yourself or a stakeholder why three times will provide you enough clarity that you can move forward in your solution space.  This [...]

Realizing true validation: a follow-up May 30, 2011 3 Comments

In a previous post I motivated the need for validation within a process.  To briefly recap:   Verification is pointless if no process is in place for validation. Spending time1 proving your solution operates correctly before you have sufficiently proven you have a viable solution is a waste of resources.  Additionally, validation isn’t just to [...]

The pursuit of true validation May 23, 2011 1 Comment

Plain and simple, building software is difficult.  Too often developers focus on activities and tools to remove defects and errors, optimize code execution, or ensure their code performs according to specifications.  These are all worthwhile activities to embark upon in the software development life cycle, but their outcome is irrelevant if you’re building the entirely [...]