posts written by…

dgoerlich

Jan 13

Technical Stories in Agile Software Development

Post Thumbnail

I just read this interesting post on technical stories by Jack Milunsky.  In the article he addresses the question of “Should technical stories appear on the product backlog for a Scrum project?”  For billable client projects, a related question exists of “Are technical stores billable to the client?”

The answer to both of these questions is yes.  Technical stories represent efforts necessary to improve the infrastructure of a system.  While they do not add value to the system through the addition of new or refined functionality,  they do directly add value to the system in other ways.

Continue →

Jan 05

Workflow – Minimally Marketable Features

Post Thumbnail

As I described in the overview of Our New Development Process, the MMF (Minimally Marketable Feature) workflow is the customer facing portion of our development process.  Our changes in this area have had the biggest impact upon our clients, and have met a positive response.  It has allowed us to isolate our clients from the implementation, and remain focused on the behavior of their application.

Our transition to a lean development process was the first exposure most of our clients had had to any type of agile environment.  Understandably many of them felt out of their element and truthfully we felt the same way.  What really made the transition successful for us and our clients was the trust that came from the good relationships we’ve maintained.  Being very transparent with our clients went far in cementing that trust.  We let them know that this was a major change for us too, that we were (and still are) learning and refining our process.  Since our clients are very much part of the project team, I openly solicited input from them on how we could improve the process.

Continue →

Dec 23

Our New Development Process

Post Thumbnail

In Agile Development for Tiny Teams, I presented an overview of our original development and project management process. I highlighted a number of challenges we encountered by using it. Thanks to Jon Stahl, Josh and I were exposed to the application of Kanban to the software development process. I was convinced that Kanban was the right tool for us. However, the question of exactly how to implement it as part of a new overall development process remained.

We determined that our new process needed to be:

  • Simple – Being a tiny team, the impact of time used managing the process rather than used generating billable work product is magnified.
  • Able to handle concurrent projects – We needed to be able to support ongoing development needs of current clients while continuing to develop new clients and projects.
  • Scalable – We will add subcontractors to our team as needs arise. Our new process must work regardless of the team size. It also needed to be easy to teach to new team members.
  • Flexible – In addition to client work, Josh and I are partners in Prfessor.com which includes a significant amount of development efforts. The process needed to be flexible enough to manage these obligations too.
  • Waste Reducing – We needed to address the four top areas of waste that I identified in our original process (see Eliminating Waste from Your Agile Process)
    • Work In Process (more than the bare minimum necessary)
    • Rework
    • Over-engineering the code
    • Repetitive tasks

From Jon’s presentation I realized that we really had two separate workflows, one nested inside the other. We never formalized that distinction, but when we began to view things in terms of MMFs (Minimally Marketable Features) the nested process jumped right out. Understanding this nesting was critical to the success of our new process.

Continue →

Dec 15

Eliminating Waste from your Agile Process

Post Thumbnail

A central pillar of a lean software development process is elimination of waste. So what is “waste” in a software development process? In a manufacturing process, any amount of work in process above the bare minimum to meet production levels is waste. Keith Swenson recently wrote an an excellent article “Taiichi Ohno Reinterpreted”  where he observed: Continue →

Dec 04

Agile Development for Tiny Teams

Post Thumbnail

D-I is proud to be a tiny firm. We have always been a tiny firm, but we haven’t always been able to get big projects accomplished. While we do use subcontractors quite often, the firm is still just Josh and myself.

We believe that software should be high quality. It should be efficient, tested and intuitively designed. When it comes to features, enough is enough. We believe you should build what you need, and nothing else. We also believe that the process of developing the product is as important as the product itself.

Continue →

Dec 08

How to build a Gantt Chart with the Google Charts API

The Google Charts API is an excellent way to add high quality charting to your web application.  We first started working with the API as part of the Simpli5 dashboard development, and were quite impressed with its functionality and ease of use.  Wrapper classes were developed and added to our Sandstone Application Framework to make the addition charts to Simpli5 and other applications as simple as possible.

An application we are developing for a client requires some graphic representation of progress along a timeline of multiple steps.  A Gantt Chart is the obvious best solution, but alas that is not a chart type available from the Google API.  However, a Gantt chart is really just a special type of bar chart, and bar charts are available in the API.  So the question was, how can we make the standard Google bar chart display as a Gantt?

The Google Charting API Developer’s Guide does an excellent job documenting the “how” side of things, so to avoid repeating a lot of stuff from there, we’ll just focus on the “what” of building a Gantt chart with Google.

Continue →

Oct 26

Bridging the Gap Between Compile Time and Run Time

As the lead systems architect here at Designing Interactive, I enjoy reviewing new code patterns to see if there are areas in our codebase in which they could be implemented. Recently I spent some time digging into Martin Fowler’s Active Record pattern. While a direct implementation of this exceptional code pattern doesn’t fit within our Sandstone Application Framework, I was inspired to review how we have implemented our business entity classes to see if we could implement some of the more fundamental concepts of the Active Record code pattern.

Continue →


Search

Latest Comments