and... next

Archive for the ‘Product Development’ Category

How would you benchmark the productivity of a lean-startup product development team?

In lean-startup, Product Development on February 9, 2012 at 3:59 am

How would you benchmark the productivity of a product-development team in lean-startup?

Why?

In my experience at Food on the Table, we’ve been much more productive than any of the other early-stage startups I’ve been involved with. I believe that one of the causes is our pervasive use of lean-startup & feel as if we’re on to something important here. So, how can I (dis)prove this?

Uh, really?

I recognize the some of the inherent issues in my question:

  • no accepted standard to compare productivity
  • small sample size
  • what’s the impact of environment & how can it be separated
  • what does lean-startup have to do with this at all
  • etc.

… despite these issues, I’m still asking the question.

Ok, you might…

So if you’ve got some ideas how you’d benchmark product development productivity, and maybe how’d you’d take that to the next step, how to compare, then leave a comment below.

Thanks!

Webcast: How to Build a Lean Startup, step-by-step

In Business, Product Development on April 29, 2009 at 2:28 pm

O’Reilly and Eric Ries are doing an interesting webcast - Webcast: How to Build a Lean Startup, step-by-step. Having recently waded into this end of the pool – I’m getting a lot out of the whole lean startup idea. No great surprise, since it extends what I’m familiar with, from within product development, to all the streams of work that makes up a startup

Oh CouchDB, Why Do I Love Thee So…?

In Product Development, Product Ideas on December 21, 2008 at 2:31 pm

Ok, so why are my friends and co-workers noticing my minor obsession about CouchDB? There’s a few reasons. First, I have a long-term unlove-affair with RDBMS. Why?

  • I started off working in the UNIX kernel (V6 anyone?) and there’s no stinking databases in there… just some filesystem stuff
  • After learning and using C, I jumped to Smalltalk and like a newborn duckling, I was imprinted by the Smalltalk view of the world – which forever set my idea about persistent data + behavior.
  • Along the way, I bumped into Thomas Malone’s work on Object Lens and OVAL – which further evolved my thinking about collaborative work, semi-structured data and toolkits to enable end-users to compose their own tools; incuding the notion that not every object needs behavior- sometimes it’s just data (e.g. the archetypical business card is just some useful semi-structure data).
  • And finally – the cognitive dissonance between the relational model and the common OO / prototype-based languages / domain models was constantly bothered me.

Yes – I know they’ve been effective and have benefit in lots of scenarios, however…

Secondly, for a piece of ‘middleware’, CouchDB has great elegance and great congruence with the bevy of potential uses, i.e. it appears to afford us the possibility to think about our problem/solution domains and our softwares internal models in in very similar fashions – with some very interesting beneficial side-effects (e.g. eventual consistency, availability)

And finally, there’s some rumblings of a new application model all together – reminiscent of the agents buzz from over a decade ago, i.e. Chris Anderson’s Sharable apps – where a CouchDB instance is sufficiently capable to become an application platform and that via the synchronization model, multiple instances of an application could run in a distributed & isolated manner and then synchronize and migrate as needed to different environments, i.e. run locally on laptops and sync and migrate up to centralized servers and then back down as needed. Instead of a rigid & pre-defined deployment structure, it’s more of an organic ‘shape’ adjusting as needed. If this is a new degree of freedom, the potential is huge.

So, while I’m looking for the right opportunity to try some of these ideas out – I’ll continue this minor obsession and see where it leads.

Rails, Ruby and other Open Source Components – Better During the Downturn?

In Product Development on October 8, 2008 at 12:16 pm

With the economic downturn, financial pressures increases on technologuy budgets (whether commercial, large / small enterprise, startup or non-profit).Increased productivity + open source + prevalence in the ‘cloud’ (regardless of your definition of ‘cloud’) bodes well for the Rails + Ruby eco-system.I’m biased, as are the rest of us at FiveRuns - but we’re not the only ones saying this. 

iPhone

In Product Development on July 28, 2007 at 5:24 am

So I’ve made the plunge and bought an iPhone. Half the joy is in using such a beautifully designed product – every aspect of the experience shows so much thought. I can only add my kudos, and continue to be frustrated at how low the standards are for so many products.

Infrastructure

In Product Development on June 26, 2007 at 3:09 pm

So in the physical world, there’s tremendous constraints placed on a system by existing infrastructure. It defines and limits what can be done without significant extra resources expended – which means cost, complexity, risk, etc.

In a recent issue of Wired, there’s an article about how a new city in China is being designed with what amounts to a well thought out infrastructure optimized towards energy use

It’s an interesting contrast between that approach and the agile software approach of evolving the infrastructure (and the approach to infrastructure that’s true for most cities as well). Of course, the infrastructure in software is much more malleable than the physical infrastructure of a city – yet there are still great costs and challenges with evolving software infrastructure.

Why haven’t we figured out how to make this easier?

MacFuse – Sweet

In Product Development on June 18, 2007 at 11:12 am

Ok – so maybe it’s a sign of just how much a shiny-gadget-geek I am, but I love what’s possible with MacFuse (and MacFusion). For example, I have an existing website (at omnis.com) that doesn’t have a ssh account, so the only way to deploy / work on what’s there is via FTP. So when I need to work on it, I have to use FTP to push & pull code & data, but I don’t do it that often – so I’d have to right FTP client to do bulk transfer was a pain, etc. So now, turn on ftpfs via MacFuse and woila (as my 4 yr old says) – there’s the shooting match. Now, it’s an easy matter to bring it all back down locally, put in SVN (as it should have been years ago) and re-deploy to my new account at dreamhost.

No new functionality, just a greater ease of use – esp. since my muscle memory knows how to use either shell or finder interfaces to work with files.

Inspiration on patterns and paradigms beyond OO

In Product Development, Product Ideas on October 6, 2005 at 10:54 pm

A great audio program on experiential computing (IT Conversations: Ramesh Jain – Experimental Computing) and Ramesh’s related blog (Ramesh Jain’s Blog » Blog Archive » Events and paradigms) gives me some inspiration to on two important points:

  • Patterns in Oggidigaw – using the notion of events with their attributes of who, what, where (spatial), when (temporal) and how (causal) – as a type of data model for representing patterns.
  • What’s beyond objects: the notion of object-orientation has some strong limitations, one of which is the representation of time. There’s some useful thoughts here about what paradigm is beyond OO – is it event based (which by virtue of the what attribute may embrace and extend OO).

An Integrated Perspective on Software Development

In Product Development on April 19, 2005 at 9:56 am

Some ramblings on software development

A useful perspective on software devleopment is as an ‘integrated discipline’, i.e. a perspective that recognizes that software development is actually composed of three domains:

  • Business – this is the domain of the problem
  • Technology
  • People – all the people involved, e.g. development team, customers, users, support staff, marketing, product management, etc.

Nothing here is new, e.g. Weinberg, Catalysis, Scrum, etc. all include some notion of these domains in their models. However, what’s confusing for me is how rarely this is recognized on all the different projects I’ve been involved. I don’t think this is just a function of how I choose a project – as I hear this from others as well. Typically, the recognition of this varies depending on who I’m talking with – e.g. developers recognize technology and business, but rarely the people; product owners recognize the business and technology, but rarely the people.

Why is this important? Primariliy because problems often creep in from the unrecognized (or recognized but less important) domain.

I’ve noticed that in the many organizations I’ve talked with, I’ve never really found any job titles that consistently appear to acknowledge this perspective. Occasionally, encounter some positions can described that way (e.g. architect, senior management, CTO), but there doesn’t appear to be a ready made & well recognized title.

Perhaps it’s a result of the perceived complexity of each domain, where the approach is to ‘divide and conquer’ the work into seperate roles. Personally I believe that this is an incomplete answer. The ‘divide and conquer’ approach works well for specialists that need to become strongly fluent in the extensive details in each domain. In this case, the differences are important – i.e. the patterns of action and subjects of action are unique within that domain. However, I believe that spanning all the domains there are patterns of action that are common, and that the unique aspects of the subjects of action are less important. Put another way – there are common patterns of doing things that can be usefully applied across multiple domains.

One concrete example of where this shows up is the role of architect. In software development, this is an overloaded term. For some, an architect (e.g. a J2EE Architect) is someone fluent with the unique aspects of J2EE. For others, an architect is soomeone fluent with the common very high-level design patterns and priniciples, which can be applied to different technologies as well as to businesses.

As a personal frustration, I often encounter the two being mixed up, e.g. in conversation expecting that they need an architect that spans multiple technologies and possibly business as well – and the conversation turns to how-to questions for a language specific library.

All the different levels are important, however I believe we need to revisit how we’ve ‘sliced the pie’. Specicically, I beleive we need more emphasis on the common aspects that span technologies as one ‘bundle’ of patterns; the common aspects that span technologies, business and people as another ‘bundle’, etc. The increased emphasis on these patterns willl create opportunities for greater breadth the roles (i.e. not tied to one technology)

Formal Versus Agile? You’ve Got It All Wrong!

In Product Development on January 13, 2003 at 9:05 am

As I interpret it, the agile versus formal debate is generally treated as an either or question. For instance, in any given software development situation there may be an assessment that it would have worked better if only an agile approach was used or for a project like this, you must use a formal approach. Only rarely does there seem to be an advocate that suggests integrating aspects of both approaches.

Inevitably, this has resulted in religious arguments about which approach is better, and religious arguments are usually from an absolutist’s perspective.

A funny thing happened on the way to resolving this issue; some folks with poor practices attempt to partake of any legitimacy that the agile approach offers by reinterpreting their practices as agile. Their approach is to elevate any poor practice they have as really being agile. Equally confused, other folks have taken genuine successes from the agile approach and reinterpreted them as luck, hacking, or some other variant of happenstance. Their approach is to reduce any agile success to at best the results of wishful thinking.

What do these two different groups of people, the elevationists and the reductionists, have in common? Both of these groups have a perspective that only allows for two levels of software development: lets call them conventional and non-conventional.

  • Conventional: formal or heavy approaches, e.g. Rational Unified Process (RUP), CMM, etc.
  • Non-Conventional: anything other than conventional.

My argument is that one significant limitation to resolving this issue is the two-level model, and that by reinterpreting the evidence using a three- (or more) level model, a path towards resolution becomes visible.

In addition, this re-interpretation can be shown to be an instance of a concept identified by Ken Wilber and named the ¿pre/trans fallacy¿. While this think piece is about software development processes, the subject area that the pre/trans fallacy originally referred to is much more universal and significant, that of human consciousness (e.g. Ken Wilber Online: Introduction to Volume 1 of The Collected Works). The pre/trans fallacy is part of a larger model called the Integral Model [need citation].

Follow

Get every new post delivered to your Inbox.

Join 568 other followers