Welcome! Log In Create A New Profile

Advanced

On the subject of divergence

Posted by vonBarky 
On the subject of divergence
June 17, 2007 04:52AM
I've been following some discussions on the Developer's board here with some interest, and since (for me at least) it's a read-only forum I thought I would post some thoughts of mine on divergence of the hardware and software.

First a bit about my perspective: I'm a software architect/developer, technical consultant and mentor. I've been developing software commercially for 18 years now, and for another 6 years non-commercially. My background includes a few electronics courses, but as those were quite a long time ago and I didn't use it, I've forgotten most of it.

I think when you are developing a new project, whether it be software or hardware, there are several stages that a project goes through - Concept/Design, Experimental, Refinement and polishing, and then finally delivery. Skills and approaches that are key for one stage in the process may be, in fact, a hinderance at other stages. For example, the big-picture, pie-in-the-sky viewpiont needed for the concept/design stage would actually be detrimental at the polishing stage, for to polish a product/project you need a great attention to detail.

From my perspective, here is a greatly simplified version of what skills and approaches are needed at each stage:

Concept: Big-picture, over all long term design, project plan, goal trajectory. This is where you prepare for not just version 1.0, but for the roadmap for the future.

Experimentation: Typically, a new project will require some new concepts be tested (or in the case of RepRap, LOTS of new concepts). Some will prove out, some will fail completely and require a complete redesign of that component, or perhaps a change to the long term plan. The experimentation stage is where you want to find this out, NOT after you've invested tons of time and are burdened down in the incredible minutia that accompanies the completion of the project.

Refinement: taking those components proved out in the experimentation stage, taking them from working concepts to working components and adding in all the "extras" - the things you need at the end of the project, but don't need to just prove the concepts. You need the ability to make pragmatic application of the concepts to workable systems.

Polishing: Taking the workable systems and putting polish on it, making it much more palatable for the end user of the product. Attention to detail and an intense understanding of your target user is key here.

Delivery: Taking the products of the previous steps and creating a reliable, consistant way to put it in the hands of the end user. Usually requires much more standards, documentation, and procedures than the previous steps.

So, that long winded explanation out of the way, to my point. I'm happy to have heard that the direction is more divergence at this stage. I would put RepRap squarely in the Expermentation stage, and in that stage divergence can be key for the future of the product. Everyone on the team brings a different perspective, approach and background to the product. The ideas that they implement at this point need to be created as quick and efficiently as possible, in a way that complements the creative process. You need a quick interative process, one where you can try ideas quickly, revise them, re-try them.

Once concepts have been proven and ideas have been tried and the experimental stage has been cleared, that is the time that you should start thinking about turning them into a final product that is homogeneous. At that point you start loading your original proofs of concept up with things that will make the final product good - things like translation, documentation in many languages, etc.

I've created several international programs, some re-worked from previous versions and some from the ground up. Let me tell you, it definitely slows down the initial creation process to do it.

I think that everyone contributing at this stage moves the project along, whether or not they are adhering to a single standard way of doing it. Once we get past the initial experimentation stage, that will change, I think.

Anyway, I can't wait to stop working as much for my real job and get started playing around with RepRap. Hopefully in a few months.

Cheers,
Keith
Re: On the subject of divergence
June 17, 2007 09:27AM
Very good summary of the development process.
Sorry, only registered users may post in this forum.

Click here to login