Friday, May 28, 2010

How to make an agile software user card ?

Agile User Stories are a simple way of capturing user just-in-time requirements throughout a project. They are feature oriented and help to emphasis and cover the why, who, and what on each backlog feature.

So, what makes a good User Story?

The INVEST acronym can help to enlighten this:

I – Independent : Stories are easiest to work with if they are independent
N – Negotiable : they are not contract
V - Valuable : each card might add business value to the customer
E - Estimable: not a precise estimation, the time box can be negotiated.
S - Small : at most a few person-weeks of work
T - Testable : writing the tests early helps to know whether the goal of the User Story is met or not

What should a user story card contain?

There is no fixed template on what a user card should contain, it always depends on the project’s need, more centered, it depends on the need of each product backlog feature, the aim is always to bring everyone to a common understanding of what may be the need and the result.
A common and general template may contain the key points below:

Stakeholder’s description and estimated time .
DBADeveloperArchitectEstimated time
ABChours or unite

Story card name or id :
Useful when managing requirements.

Story card goal:
As a User or role I want Business Functionality so that Business Justification

Business scope:
Description of the business added value. (exp: Development of this report will help administrator to send punctual status to investigator when demanded).

Use case scenario :
Not always needed, but helps better understanding.
Exp :
1. Recruiter submits credit card number, date, and authentication information.
2. System validates credit card.
3. System charges credit card full amount.
4. Job posting is made viewable to job seekers.
5. Recruiter is given a unique confirmation number

User Interface with inputs validation.

Security:
who should have access to what.
Exp:
Role ADMIN:Create/ Update /Submit
Role MANAGER: Update /Submit.

Business rules and policies.

Acceptance Criteria:
What makes the story card 100% done.
Exp :
1.Release Specification.
2.Stability Specifications.
3.Process Dependent Specifications.
4.Functionality that the system will perform
5.Interface look and feel
6.Necessary documentation

Comments:
Impediment, impact, estimation… whatever helps historical learning.

The goal is always to better serve the client by keeping the focus on the goal of the product rather than the list of its attributes.

Thursday, April 29, 2010

How to start implementing agile practices in your company ?

Implementing an agile method in your company may requires continuous and progressive changes to raise stakeholders commitment and culture to handle those new packaged practices ,thus you may start by implementing actions that have an almost direct impact on quality assurance issues and development life cycle to make your team more productive and rigorous through the release process. Here are some of the points you may start with, to help you going through:

Just in time and lightweight requirements:
Keep the requirement level at the minimum required to start the development process.

Automated repeatable unit tests :
Test must be integrated throughout the lifecycle, not at the end .Test scenarios should be written before the development starts (knowing that you would write them anyway!).

Software release must rely on customer feedback :
Don’t waste your time developing unusable functionalities that wouldn’t add any business value to your software; focus on getting the most important features and items first to the market. Make them prioritized to get the better of agility and flexibility.

Stick to a regular software release cycle:
Fixed release cycle (iteration, sprint) is vital, it creates routine (stakeholders, departments, team members) and routine increases productivity. At the end of each release, all features must be completely done and functional, this ensures a clear and complete vision toward the software development progress, reduced risk and higher value.

Get the best of your stakeholders:
By making them working toward a shared goal.

Remember, the success of your project is all about making your stakeholders happy :).

Wednesday, April 21, 2010

How to get the job done within your team



As leader you often have to provide and inspire guidance, instruction, direction, leadership to your team through all the project life cycle, to break through the mediocrity and inspire success where there was no success before, here it is some of my favorite tips to get people accomplish their tasks :

Create a Vision:
Effective leaders supply a shared vision; and inspire people to achieve more than they may ever have dreamed possible. To inspire you must be able to articulate a shared vision in a way that inspires others to act making work exciting.

Know your people:
Give your team enough time to know you, this how you could gain respect, avoid the impact of their subconscious judgment, know what should motivate them, and learn about their Strengths.

Lead by example:
Always show your people the good example, share fully their hardships and privations experienced during the work process, your authority and ability to motivate will increase exponentially for doing so.

Keep Giving Feedback:
Always keep giving performance measurement to your team member, Depriving people of feedback causes them to create their own referential that may not be adequate to the results or success criteria you want your team to accomplish.

Push your people to care about the job:
Don’t stress them, they will lose focus and won’t perform adequately.

Reward:
Take the blame for their mistakes and give them praise for their success.

Trust:
Create an environment of trust, trust is essential in all human relationships – professional or private, there is no place for snipers in a team.

Set goals:

General rule of thumb that greater or more difficult goals actually increase performance, help your people visualize themselves reaching their goals also makes achievement of those goals more tangible

Create routines:

Routine help creating habits, habits increase productivity.

Just remember, that your job as a leader is to keep the work exciting beyond the day-to-day tasks.

Tuesday, April 20, 2010

Revamping Morocco JUG




Actually I'm working with some of my friends on revamping the moroccan java user group, inspired by the egyptian experience we aim to be at the same level, and to rise up the Java skills on morocco.

As our first step is to involve more people on the Java world here in morocco, we should start to work on universities and Engineering schools to get in touch with young engineers and developpers to be able push them up on the software industry with a strong technical and architectural skills on Java technologies.

For further information, please visit and join: https://moroccojug.dev.java.net/