Tuesday, August 23, 2011

conscious nerd?

After all, at the end of the day, what are we geek for?

Yes folks, we spend hours, days, years of contributing, criticizing, publishing but what is worth for?
What is our mission(s) for those sleepless nights or more pragmatically for this shadow IT? (Yes, we all know that we do ;) )
Is it pride, self sufficience, been the first, be part of the wave or the be the wave itself that drives us?
I do not pretend to introspect nor to find your reason for a free contribution and commitment. I just heap up my own modest contribution to the stack, and wonder where this amont of info will lead us to?
Personally, I think that IT should gently impact our way of living (hey not (only) in the way of booking cheaper holidays...) but in a way to share knowledge and get conscience.

Sharing knowledge
: we've been granted by lots of it and we emphasize with our own to grow it bigger and wider.
Promote Altruism: Give the community without expectation!
It may sound naive at first, but it's really a driving force!
You will be remembered! (BTW, The long tail pattern is here for you!)).

Get conscience: Although our projects, contributions might die or succeed, we are part of an effort that probably transcends us and would lead to a better living and understanding of the position and possibility/feasibilities offered to us.
By position, I mean as an actor to the web and community in the present.
By possibility/feasibility, I mean the opportunities that will make our destinity brights stronger. Yes IT will lead us to Mars! and the solar system...

Future: is what we decide! (mitigating the impondarables ;)


Saturday, August 6, 2011

Project development golden pentagon

Intro

This article is about the 5 golden principles that lead to success the development of a product.
It also gives pragmatic development tips to streamline the development process.

Golden Pentagon
The 5 major objectives that any software project should fulfill are to deliver a solution that
  • matches business requirements
  • is operationable
  • is within budget
  • is within scheduled timeframe
  • is maintable
Match Business Requirements
Been out of scope is obviously useless. So the closest the better. But which methodology to use???
The IT world is full of acronyms and methodology all in one solution but what I recommand is the following:
  • AVOID RUP!!!
It brings nothing except troubles and an ironical conclusion: if it fails it means that you did not follow the methodology correctly.
  • CHOOSE AGILE
But here again the goal is to produce something and not to be lost within scrums, sprints, backlogs and burndown curves.
So how to concretely describe the business requirements in order fulfill the product owner desires? And how to make those requirement be in line with the Truth (the stuff that will run in production)?
  • CHOOSE FITNESSE
Write stories to describe your business requirements make and exhaustive list of them. Reach the developement contract accord between project owner, developers, analysts, tester, project manager. Since is wiki human readable it is feasible.
Write the correct fixtures to loosely couple your business requirements with the underlying code.
This will bodyguard your development effort with Quality Assurance.
Meanwhile to put that in place there is some learning curve and some fixture development time effort. To easy this part MP provides some ready to use fixtures.

Minuteproject asset:
When working with a Datamodel, MP generates an entire wiki with associated fixtures to make crud operation easy.
Example :
  • you need to illustrate a scenario, in the set up use MP fixtures to reset and populate the database.
  • after couple of features performing a suite of UCs you need to have a sanity check in the database (to check the data is correctly stored). MP generates the Fitnesse fixture for the desired sanity check query materialized in a DB object view.
A specific entry for the MP 'Lazuly' showcase will be put in this blog soon. Stay tuned.

Be operationable
What's the point to develop something that runs properly. This is a wide concept be in the terms of web development is to have a solution that scales properly, does not be to be restarted (no memory leaks), sustain concurrency and responds fast.

Stay within budget
Also obvious and speaking from itself, it is a reality that most project forget and tend to counterbalance by betting on CR (Change request), i.e. anappropiate analysis leading to clumsy UCs raise profitable CRs.
When the analysis tackles with model (Change/enhancement), MP is ready to cope with it with extrem performance (just a couple of seconds) to have your backend aline/online.


Stay within deadlines
What is the interest of releasing after deadlines (or what is the interest of setting dealines if we know from the start there're just virtual?????).
By remove a huge dev burden, MP helps you handle deadline easily. From to 40% to 60% of your developement effort can be handle by MP according the tracks you use.
Write less code.
WRITE ONLY THE CODE YOU NEED.
Do not overcode.



Think future: stay maintable



//this slot is under construction, wait a while for it to be finished... there are some many things to say!!!