Writing · process
55 posts
process
The Microsoft Tax
Microsoft’s recent embrace of open-source software does not eliminate the cost you pay if you decide to embrace its stack.
Feb 2014
Startup Defaults
Setting up infrastructure for a new startup is easier than ever with a set of products like Google Apps and AWS.
Feb 2014
Management Anti-Patterns on Product Teams
There are many ways to structure management of product teams. Some of those management roles are vital, while others can be really problematic.
Jul 2013
Are Single Page Apps Bad?
Though Single Page Apps (SPAs) are quickly becoming the conventional wisdom when it comes to building rich web applications, a recent alternative has emerged: Resource Oriented Client Architecture (ROCA).
Jul 2013
Podio: Custom Business Processes Done Right
Every now and then I run across what I call forehead-slapping software. You know, the kind of software that makes you slap your forehead and exclaim “This is so simple, yet so awesome. Why didn’t I think of it first?!”. In this post…
Mar 2013
Using OAuth to Protect Internal REST API
You should use OAuth 2.0 client credentials flow to secure REST APIs used in your web application.
Mar 2013
Tests Prevent Code Rot
Tests help safely refactor your code base in order to prevent inevitable code rot.
Mar 2013
Continuous Delivery For the Enterprise
What if you work in a place that doesn’t need to do A/B testing of the latest feature set and isn’t driven by competition to deliver a new capability every other week? What if you work for the dreaded “Enterprise”? Should you still do…
Feb 2013
RESTful Web Applications Are Good For You
There’s been some discussion in web development circles recently about whether RESTful (a.k.a Client MVC, a.k.a. Single page) web applications are a good idea. Or, more accurately, whether they’re a better idea than just serving up…
Feb 2013
How Capable Is Your Technology Team?
Do you know how capable your technology team is? How do you assess its capabilities? What do you look for?
Feb 2013
The One Million Dollar Team
I was curious about how much an optimally sized, fully self-sufficient, highly talented software development team would cost. So, I decided to collect some data and find out. It turns out that such a team in Los Angeles costs a bit…
Feb 2013
Minimum Viable Development Team
Imagine that you’re tasked with recruiting a development team to build a new product. What would that team look like? How big would it be? Who would be on it?
Jan 2013
You Can’t Teach Height
There is an old saying in basketball that you can’t teach height. For most basketball positions, having a few inches on your competition helps, sometimes a lot. Being a natural athlete helps too. So, basketball GMs try to draft the…
Jan 2013
Multiple Uses of CSS Classes
CSS classes can serve multiple purposes when building web pages, which sometimes leads to ambiguity. In fact, this ambiguity is often the cause of arguments over when it’s appropriate to use CSS classes.
Nov 2012
Low Information Developer
One of my favorite euphemisms of this political season is Low Information Voter. It describes a person who lacks a basic understanding of the issues, yet stills feels compelled to vote. I like the term so much that I felt compelled to…
Nov 2012
Impact of Continuous Delivery Beyond Engineering
As the practice of Continuous Delivery enters the mainstream of software development, it’s important to understand its impact on every aspect of building and releasing software products from software engineering to quality assurance,…
Sep 2012
Jenkins Build Monitor
We use and really like Jenkins for our Continuous Integration. It’s been around forever and has lots of capabilities as a result. Yet in spite of its maturity, Jenkins lacks a really great build monitor. So we decided to make one.
Aug 2012
Strong Passwords With LastPass
Major password leaks are unfortunately becoming all too common. Each time a new batch of passwords becomes public knowledge, security experts pipe up with recommendations which basically boil down to two things: 1) don’t share…
Jul 2012
IntelliJ IDEA Dark Theme
For whatever reason, dark IDE themes are all the rage these days. Somewhat surprisingly, there aren’t a lot of great options available for IntelliJ IDEA. So, I decided to make one.
Jul 2012
Getting DRY With Sass
Sass is a language / framework which compiles down to CSS. The thing I like most about Sass is how it helps you apply the DRY principle to your style sheets. If you use it well, you can drastically cut down “copy-and-paste” code and…
May 2012
Code Review Gone Bad
“Hi Mike, I just wanted to once again apologize for yesterday’s code review. I said and did some things I’m not very proud of…”
Apr 2012
How to Use WordPress Custom Post Types to Add Events to Your Site
One of the more interesting (and useful) features in WordPress is custom post types. As the name suggests, WordPress allows you to define your own post types which are treated just like existing ones (i.e. Posts and Pages).
Apr 2012
How to Get IE8 to Support HTML5 Tags and Web Fonts
Though support for modern standards is limited in IE8, it’s not impossible. Here’s how to add support for HTML5 elements and web fonts.
Apr 2012
How to Debug in IE on a Mac
Here’s how to configure a Mac to debug web sites in IE
Apr 2012
Leaving Solution Land
Most devs are naturally inclined to start finding solutions as soon as we hear a problem stated. Yet no matter how satisfying it may be to immediately board the bus to Solution Land, it is always worth it to take a moment and ask…
Mar 2012
Building vs. Learning on Agile Teams
Though agile methodologies are optimized for delivery, sometimes a different approach is required. Hypothesis testing from the Lean Startup movement gives us such an approach.
Mar 2012
Things I Wish I Knew as a Comp Sci Student
I would guess that most CS students don’t know what they need to pay attention to. After all, there are millions of ideas competing for their attention and they all seem equally important. But they’re not.
Mar 2012
“DevOps is Ruining My Craft”
Below is an excerpt from an interview with a disenfranchised systems administrator. All identifies have been kept anonymous to protect the innocent.
Feb 2012
Good Devs Don’t Like Magic
Solutions of the “magical” variety go out of their way to hide (obfuscate?) the underlying implementation. They present the developer with a Faustian bargain: I’ll make it easy for you to get things done so long as you don’t question…
Feb 2012
Creating a WordPress Theme
I’ve known for some time that WordPress is an excellent blogging platform. It’s both easy to get started with and infinitely tweak-able. As it turns out, WordPress is also a great platform to develop themes for.
Jan 2012
Congress to Vote on Another Technical Debt Ceiling Extension
WASHINGTON D.C. – Yet another fight over our nation’s technical debt in underway in Washington. Obama administration will soon request an increase of 1.2 trillion to a limit which currently stands at 15.194 trillion man hours.
Jan 2012
A Social Developer
I met a student recently who was looking for a software engineering internship. As I often do in these situations, I asked him to describe a cool project he worked on. He trembled slightly, adjusted his thick-rimmed glasses, and began…
Nov 2011
Developer Tribes
I recently finished an interesting book called Tribal Leadership. The book is full of insights about how people behave in groups and what it takes to lead them.
Oct 2011
Database Source Control Revisited
A while back I blogged about strategies for putting your database artifacts under source control. At the time, I thought that a schema synchronization approach (implemented by Visual Studio Database project) was the way to go. Among…
Sep 2011
Agile Painting
I really like to paint. I started back in college, on a whim. One fine day, I bought some oil paints, brushes, and a canvas, and started painting.
Aug 2011
Production Bugs: Whose responsibility are they?
Bug fixing is rarely fun. This is especially true for bugs you didn’t create.
Aug 2011
Benefits of Pair Programming
Pair programming is a somewhat controversial, highly counter-intuitive agile practice. In a nutshell, it’s two people working on the same thing, using just one computer, at the same time. It seems crazy that it would work at all, much…
Jun 2011
Are Agile Dev Practices Needed?
There’s been a lot of talk lately about how agile dev practices are hurting more than they’re helping. People complain that things like unit testing, TDD, CI, pairing, and code reviews limit developer creativity and create unnecessary…
May 2011
Painless Production Deployments
The goal of every software team is to get the finished product to the end customer. Yet doing this is surprisingly hard for many teams. In a perfect world, the act of deploying software to production is painless and trustworthy. To…
May 2011
Managing Test Data
To create functional tests for your web applications, you need data in your database. The crucial thing about this test data is that it should be stable. Otherwise, your tests are not deterministic and that makes them useless. For…
Apr 2011
Database Source Control and Deployment
All good devs know that your source code should be in source control. There are many reasons for this, but one of the most important ones is the ability to rebuild and deploy your entire application whenever you want. Database…
Apr 2011
Hostile Code Bases
I don’t like calling code bases legacy. The word “legacy” makes people think of Ivy League schools, vintage leather couches, and Dad’s old bottle of Scotch. It rarely elicits the kind of feeling of pain and despair one normally gets…
Mar 2011
The Value of Documentation
Devs often talk about the importance of documentation. More specifically, they usually complain about systems which have none (“How are we supposed to know what’s going on here?!“), some (“Well, I guess something is better than…
Mar 2011
The Waste Jar And The Mystery Box
Agile teams love little mnemonics and practices to help enforce the Ways of Agile. We like to put up physical Cards on the Wall to signify a piece of work. We like to ask the Three Questions (“What have I accomplished yesterday?, What…
Mar 2011
Risk and Waste on Agile Projects
When you first start “doing Agile”, the focus is on getting the mechanics right: keep your standup updates short don’t over design remember to add tests for everything remember to check CI status only show working code during showcases…
Feb 2011
Trunk Development: Can’t we all just get along?
Trunk development is an approach that leverages a single branch of code for all active projects. It helps eliminate painful merges, but requires a heightened level of awareness by the project teams.
Feb 2011
Devs Say the Darndest Things
Software guys have great sayings. This may be surprising to some since we don’t usually associate mastery of the spoken word with geekdom. Nonetheless, there are some gems out there and I’ve compiled a short list of my favorites.…
Jan 2011
Geek comic: Pair Programming
I decided create a series of comic strips about software development. All artwork is done on an iPad using Autodesk’s awesome Sketchbook Pro app and a Boxwave Stylus. Enjoy! You may also like: DoodlingGeek Comic: Daily StandupsGeek…
Jan 2011
Living in Cloud City
I make it a point to back up as much data as I can into the Cloud. I didn’t always do this, but there were two compelling events that forced me to change. My path to the Cloud The first compelling event was actually two events.…
Jan 2011
The Software Team
Software development is a team sport (Yes, I realize that lone wolf coders can accomplish amazing things, but that just doesn’t scale well). To succeed in a team sport, you need a good team. To understand how to build a good team, you…
Jan 2011
People I Don’t Want to Work With
There are many qualities that make a good engineer. This post is not about those. Instead, it’s about qualities that make me cringe and run away.
Jan 2011
Safari To Go: how not to build an iPad app
I really like Safari Books Online. As one colleague put it, it’s “the gift of unlimited knowledge“. For those who aren’t familiar, Safari is an online subscription-based book service. You pay a monthly fee to get access to a boat load…
Jan 2011
Reading for Devs
I’ve put together a short list of books any software developer would greatly benefit from. Enjoy! Clean Code: A Handbook of Agile Software Craftsmanship, Robert Martin Maintainability is arguably the most important aspect of good…
Jan 2011
The Craft of Software Development
Software development is a craft and those who practice it are craftsmen. As with any craft, this one demands a set of skills from its practitioners: Be Good With Your Hands To code, you must type. To code well, you must type fast.…
Jan 2011
Two Rights of Software Development
There are two challenges in building software: building the right thing and building the thing right (yes, I love alliteration). Build the Right Thing Building software that users want is hard because most people don’t know what they…
Jan 2011