<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5823278659138176390</id><updated>2026-11-07T12:58:33.866+00:00</updated><category term="agile"/><category term="scrum"/><category term="JUG"/><category term="Javassist"/><category term="Leader"/><category term="byte code"/><category term="java annotation"/><category term="kanban"/><category term="leadership"/><category term="maroc jug"/><category term="motivate"/><category term="project management"/><category term="requirement"/><category term="sprint planning meeting"/><category term="team"/><category term="user card"/><title type='text'>Ayoub El Abbassi &#39;s Blog</title><subtitle type='html'>Agile project management and Java development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-2307193152842616906</id><published>2012-03-13T13:11:00.000+00:00</published><updated>2012-03-13T13:13:31.050+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><category scheme="http://www.blogger.com/atom/ns#" term="sprint planning meeting"/><title type='text'>Scrum planning meeting: because everything is created twice</title><content type='html'>&lt;center&gt;&lt;i&gt;&lt;blockquote&gt;&quot;Good plans shape good decisions. That&#39;s why good planning helps to make elusive dreams come true.&quot;&lt;/i&gt;- Lester Robert Bittel&lt;/blockquote&gt;&lt;/center&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; With Scrum and at the beginning of each sprint, the team, scrum Master , product owner and may be some of the stakeholders (expert ,clients representative ..) are invited to attend a time boxed meeting  where we are going to discuss and negotiate the scope of the current sprint .The goal is to create a blueprint and develop construction plans before any code is produced :&lt;b&gt; the first creation&lt;i&gt;&lt;/i&gt;&lt;/b&gt;. Indeed  the goal of the scrum planning meeting is to try to get a very clear sense of what the team is  going to commit to during the sprint ,if we want a drag and drop or a simple table view ,if we want a synchronous or asynchronous functions calls … .We work with our imagination and visualization to create and get a very clear image of what we want to accomplish at the end of the sprint ,thus to share a transversal vision among all the team before &lt;b&gt;the second creation or the physical creation&lt;i&gt;&lt;/i&gt;&lt;/b&gt; where the code get typed take place,  in order to prevent expensive  changes  that may increase the cost of failure over the implementation process.&lt;br/&gt;&lt;br/&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;During this meeting the product owner describes the highest priority stories to the team. Some questions and negotiation may follow to limit the scope of what is going to be taken to the sprint backlog, the team subsequently discusses the committed to stories and how the implementation will be built (conception, just-in-time design...).The presence of the product owner is important at this part even if he is not directly  involved, since further questions and clarification asked by the team may help them taking better technical decision and making better decomposition of the stories into tasks. The tasks are then estimated and each team member chooses what he will be committed to .The velocity input from past stories allows the team to make a realistic commitment to the scope of the work being defined to prevent demotivation coming from the “unrealistic initial estimation” excuse.&lt;br/&gt;&lt;br/&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;At the end, an explicit agreement from the team on the sprint backlog is made, and the product backlog, release and sprint burndown charts are updated.&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/2307193152842616906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2012/03/scrum-planning-meeting-because.html#comment-form' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/2307193152842616906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/2307193152842616906'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2012/03/scrum-planning-meeting-because.html' title='Scrum planning meeting: because everything is created twice'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-5914057242662470309</id><published>2011-12-07T23:00:00.001+00:00</published><updated>2012-01-18T13:58:13.163+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="kanban"/><title type='text'>Méthodologies agiles : Kanban et processus informatiques</title><content type='html'>
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;Le&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;Kanban&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;float: none;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;est un mode de gestion de flux créé par
l’industrie automobile (Toyota).&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: Verdana, sans-serif; line-height: 115%;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;&quot;&gt;&lt;span style=&quot;float: none;&quot;&gt;Elle signifie en japonais &quot;étiquette visuelle&quot;,
et implique deux principes&amp;nbsp;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;background: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;&quot;&gt;un très fort feedback
visuel et une recherche de la perfection au moindre coût (réduire le gaspillage)
.Dans la présentation qui suit je vais essayer de démystifier son concept et
proposer une façon de l’appliquer au contexte de l’ingénierie logiciel.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; line-height: 115%;&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; line-height: 115%;&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span style=&quot;background: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;prezi-player&quot;&gt;
&lt;style media=&quot;screen&quot; type=&quot;text/css&quot;&gt;
.prezi-player { width: 650px; } .prezi-player-links { text-align: center; }
&lt;/style&gt;&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; height=&quot;500&quot; id=&quot;prezi__zvyjtwawea4&quot; name=&quot;prezi__zvyjtwawea4&quot; width=&quot;650&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://prezi.com/bin/preziloader.swf&quot;/&gt;
&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;/&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot;/&gt;
&lt;param name=&quot;flashvars&quot; value=&quot;prezi_id=_zvyjtwawea4&amp;amp;lock_to_path=1&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0&quot;/&gt;
&lt;embed id=&quot;preziEmbed__zvyjtwawea4&quot; name=&quot;preziEmbed__zvyjtwawea4&quot; src=&quot;http://prezi.com/bin/preziloader.swf&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;650&quot; height=&quot;500&quot; bgcolor=&quot;#ffffff&quot; flashvars=&quot;prezi_id=_zvyjtwawea4&amp;amp;lock_to_path=1&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div class=&quot;prezi-player-links&quot;&gt;&lt;p&gt;&lt;a title=&quot;Méthodologie Kanban par Ayoub El ABBASSI&quot; href=&quot;http://prezi.com/_zvyjtwawea4/methodologie-kanban/&quot;&gt;Méthodologie Kanban par Ayoub El ABBASSI &lt;/a&gt; on &lt;a href=&quot;http://prezi.com&quot;&gt;Prezi&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;

&lt;br /&gt;
&lt;div class=&quot;prezi-player-links&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/5914057242662470309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2011/12/methodologies-agiles-kanban.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/5914057242662470309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/5914057242662470309'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2011/12/methodologies-agiles-kanban.html' title='Méthodologies agiles : Kanban et processus informatiques'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-8659541409156912709</id><published>2011-01-03T17:01:00.000+00:00</published><updated>2011-01-04T12:00:16.797+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="byte code"/><category scheme="http://www.blogger.com/atom/ns#" term="java annotation"/><category scheme="http://www.blogger.com/atom/ns#" term="Javassist"/><title type='text'>How to add Annotations at Runtime to a java class method using Javassist? (Part 1 )</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; line-height: 115%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Annotations  are a new feature from Java 5. Annotations are a kind of comment or  meta data you can insert in your Java code. But how can we add them  dynamically at runtime to the java class since the jdk doesn’t provide  any addAnnotation method ?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; line-height: 115%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;&quot;&gt;&lt;div style=&quot;color: black; line-height: 18pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: normal;&quot;&gt;Java annotations were introduced in 2002 through the JCP (JSR-175) and were approved in&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;September 2004 as an alternative to the configuration xml files. Java annotations, can (if necessary) be accessible to the programmer at the runtime through reflection api.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 18pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;How to scan java annotations?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 18pt; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;The  easiest way to scan through a resource is to load it through a  Classloader and use the Java Reflection API to look for the specified  annotation. However, this approach will only help you to find  annotations that are visible at runtime&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;@Retention  (value = RetentionPolicy.RUNTIME), and loading each resource into  memory will consume an unnecessary amount of memory.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;Lets create a simple annotation, annotations&lt;/span&gt;&lt;span class=&quot;apple-style-span&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;are defined like interfaces. Here is the&amp;nbsp;@&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;PersonneName &lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;definition:&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush: java&quot;&gt;package sample;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(value = RetentionPolicy.RUNTIME)  //The annotation is saved in the*.class and can be used by the JVM.     
@Target(value = ElementType.METHOD)  //The annotation can be used on methods.
public @interface PersonneName {
public String name();
}

&lt;/pre&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;let&#39;s now create a simple &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;SayHelloBean &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;on wich we will apply this simple annotation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package sample;
import java.lang.reflect.Method;
import sample.PersonneName;

public class SayHelloBean {
 
private static final  String HELLO_MSG = &quot;Hello &quot;;

@PersonneName(name=&quot;World !! (simple annotation)&quot;)
public String sayHelloTo(String name){
 return HELLO_MSG+name;
}

public static void main(String[] args) {
 
 
   try{
    //instanciate the bean
    SayHelloBean simpleBean  = new SayHelloBean(); 
    //get the method descriptor through reflection
          Method helloMessageMethod = simpleBean.getClass().getDeclaredMethod(&quot;sayHelloTo&quot;, String.class); 
          //scan the annotation
          PersonneName mySimpleAnnotation = (PersonneName) helloMessageMethod.getAnnotation(PersonneName.class);
          
          System.out.println(simpleBean.sayHelloTo(mySimpleAnnotation.name()));
      }
      catch(Exception e){
          e.printStackTrace();
      }
}
}

&lt;/pre&gt;&lt;div style=&quot;color: black; line-height: 115%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;Runing the main method produce : Hello World !! (simple annotation)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;How to add Annotations dynamically at Runtime to a java class &lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;method?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;u&gt;Why ?&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; margin: 0cm 0cm 0.0001pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;line-height: 115%;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Jdk doesn’t      provide an addAnnotation method through reflection.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Sometimes we      need to define annotation dynamically at runtime (example of jsr 303      validation annotations )&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;color: black; line-height: normal;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Add new behaviors      to your classes&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;div style=&quot;color: black; line-height: 115%;&quot;&gt;&lt;div style=&quot;margin: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;u&gt;How ?&lt;/u&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;We will use &lt;b&gt;Javassist &lt;/b&gt;(Java&amp;nbsp;Programming&amp;nbsp;Assistant)  . It is a class library for editing bytecodes in Java; it enables Java  programs to define a new class at runtime and to modify a class file  when the JVM loads it.&amp;nbsp;(More informations and downloads here&amp;nbsp;&lt;a href=&quot;http://www.jboss.org/javassist&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;javassist&lt;/span&gt;&amp;nbsp;&lt;/a&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0cm;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;Now let’s modify the preceding example to add the @PersonneName at runtime to the SayHelloBean,first we will delete the annotation from the &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt;SayHelloBean&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black;&quot;&gt; code&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package sample;

public class SayHelloBean {
 
private static final  String HELLO_MSG = &quot;Hello &quot;;

public String sayHelloTo(String name){
 return HELLO_MSG+name;
}
}
&lt;/pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;second we create the class AddRunTimeAnnotation that will add the annotation &lt;i&gt;dynamically&lt;/i&gt; to the SayHelloBean class :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package sample;
import java.lang.reflect.Method;

import sample.PersonneName;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.bytecode.AnnotationsAttribute;
import javassist.bytecode.ClassFile;
import javassist.bytecode.ConstPool;
import javassist.bytecode.annotation.Annotation;
import javassist.bytecode.annotation.StringMemberValue;




public class AddRunTimeAnnotation {
 
  public static void addPersonneNameAnnotationToMethod(String className,String methodName) throws Exception{
   
 //pool creation 
 ClassPool pool = ClassPool.getDefault();
 //extracting the class
 CtClass cc = pool.getCtClass(className);
 //looking for the method to apply the annotation on
 CtMethod sayHelloMethodDescriptor = cc.getDeclaredMethod(methodName);
 // create the annotation
 ClassFile ccFile = cc.getClassFile();
 ConstPool constpool = ccFile.getConstPool();
 AnnotationsAttribute attr = new AnnotationsAttribute(constpool, AnnotationsAttribute.visibleTag);
 Annotation annot = new Annotation(&quot;sample.PersonneName&quot;, constpool);
 annot.addMemberValue(&quot;name&quot;, new StringMemberValue(&quot;World!! (dynamic annotation)&quot;,ccFile.getConstPool()));
 attr.addAnnotation(annot);
 // add the annotation to the method descriptor
 sayHelloMethodDescriptor.getMethodInfo().addAttribute(attr);
 
 
 // transform the ctClass to java class
 Class dynamiqueBeanClass = cc.toClass();
 //instanciating the updated class 
 SayHelloBean sayHelloBean = (SayHelloBean) dynamiqueBeanClass.newInstance();
 
  try{
  
         Method helloMessageMethod = sayHelloBean.getClass().getDeclaredMethod(methodName, String.class);  
         //getting the annotation
         PersonneName personneName = (PersonneName) helloMessageMethod.getAnnotation(PersonneName.class);
         System.out.println(sayHelloBean.sayHelloTo(personneName.name()));
     }
     catch(Exception e){
         e.printStackTrace();
     }
 

}
public static void main(String[] args) {
 
 try {
  AddRunTimeAnnotation.addPersonneNameAnnotationToMethod(&quot;sample.SayHelloBean&quot;, &quot;sayHelloTo&quot;);
 } catch (Exception e) {
 
  e.printStackTrace();
 }
 
}
}

&lt;/pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Runing the main method now produce :&amp;nbsp;Hello World!! (dynamic annotation).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 115%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: black; line-height: normal; margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;atitle&quot; style=&quot;font-size: large; font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Looking ahead&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: normal; margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There&#39;s a lot more to Javassist than what we&#39;ve covered in this article. Javassist&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;&amp;nbsp;enables  Java programs to define a new class at runtime and to modify a class  file before the JVM loads it. Unlike other similar systems, Javassist  provides source-level abstraction; programmers can modify a class file  without detailed knowledge of the Java bytecode.start enjoying it :).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; line-height: 18px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Ressources :&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-dyn0203.html&quot;&gt;Java programming dynamics, Part 5: Transforming classes on-the-fly&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial.html&quot;&gt;Getting Started with Javassist&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/&quot;&gt;Java bytecode&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0.3em 5px 0.7em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/8659541409156912709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2011/01/how-to-add-annotations-at-runtime-to.html#comment-form' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/8659541409156912709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/8659541409156912709'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2011/01/how-to-add-annotations-at-runtime-to.html' title='How to add Annotations at Runtime to a java class method using Javassist? (Part 1 )'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-8235020621471621613</id><published>2010-05-28T10:19:00.000+01:00</published><updated>2010-05-28T11:14:09.016+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="requirement"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><category scheme="http://www.blogger.com/atom/ns#" term="user card"/><title type='text'>How to make an agile software user card ?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;Agile User Stories are a simple way of capturing user &lt;span style=&quot;font-weight: bold;&quot;&gt;just-in-time&lt;/span&gt; requirements throughout a project. They are &lt;span style=&quot;font-weight: bold;&quot;&gt;feature oriented&lt;/span&gt; and help to emphasis and cover the why, who, and what on each backlog feature.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;So, what makes a good User Story?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The INVEST acronym can help to enlighten this:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;I – Independent&lt;/span&gt; : Stories are easiest to work with if they are independent&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;N – Negotiable&lt;/span&gt; : they are not contract&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;V - Valuable&lt;/span&gt; : each card might add business value to the customer&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;E - Estimable&lt;/span&gt;: not a precise estimation, the time box can be negotiated.&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;S - Small&lt;/span&gt; : at most a few person-weeks of work&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;T - Testable&lt;/span&gt; : writing the tests early helps to know whether the  goal of the User Story is met or not&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;What should a user story card contain?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
A common and general template may contain the key points below:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Stakeholder’s description and estimated time .&lt;/span&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;DBA&lt;/td&gt;&lt;td&gt;Developer&lt;/td&gt;&lt;td&gt;Architect&lt;/td&gt;&lt;td&gt;Estimated time&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;hours or unite&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Story card name or id :&lt;/span&gt;&lt;br /&gt;
Useful when managing requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Story card goal: &lt;/span&gt;&lt;br /&gt;
As a &lt;span style=&quot;font-weight: bold;&quot;&gt;User or role&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/span&gt; I want &lt;span style=&quot;font-weight: bold;&quot;&gt;Business Functionality&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/span&gt; so that &lt;span style=&quot;font-weight: bold;&quot;&gt;Business Justification&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Business scope:&lt;/span&gt;&lt;br /&gt;
Description of the business added value. (exp: Development of this report will help administrator to send punctual status to investigator when demanded).&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Use case scenario :&lt;/span&gt;&lt;br /&gt;
Not always needed, but helps better understanding.&lt;br /&gt;
Exp :&lt;br /&gt;
1. Recruiter submits credit card number, date, and authentication information.&lt;br /&gt;
2. System validates credit card.&lt;br /&gt;
3. System charges credit card full amount.&lt;br /&gt;
4. Job posting is made viewable to job seekers.&lt;br /&gt;
5. Recruiter is given a unique confirmation number&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;User Interface with inputs validation.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Security: &lt;/span&gt;&lt;br /&gt;
who should have access to what.&lt;br /&gt;
Exp:&lt;br /&gt;
Role ADMIN:Create/ Update /Submit&lt;br /&gt;
Role MANAGER: Update /Submit.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Business rules and policies.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Acceptance Criteria&lt;/span&gt;:&lt;br /&gt;
What makes the story card 100% done.&lt;br /&gt;
Exp :&lt;br /&gt;
1.Release Specification. &lt;br /&gt;
2.Stability Specifications.&lt;br /&gt;
3.Process Dependent Specifications.&lt;br /&gt;
4.Functionality that the system will perform&lt;br /&gt;
5.Interface look and feel&lt;br /&gt;
6.Necessary documentation&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Comments:&lt;/span&gt;&lt;br /&gt;
Impediment, impact, estimation… whatever helps historical learning.&lt;br /&gt;
&lt;br /&gt;
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.</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/8235020621471621613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/05/how-to-make-agile-software-user-card.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/8235020621471621613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/8235020621471621613'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/05/how-to-make-agile-software-user-card.html' title='How to make an agile software user card ?'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-1155657937009765215</id><published>2010-04-29T13:14:00.000+00:00</published><updated>2010-04-29T13:54:03.111+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><title type='text'>How to start implementing agile practices in your company ?</title><content type='html'>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:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Just in time and lightweight requirements:&lt;/span&gt;&lt;br /&gt;Keep the requirement level at the minimum required to start the development process.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Automated repeatable unit tests :&lt;/span&gt;&lt;br /&gt;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!).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Software release must rely on customer feedback :&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Stick to a regular software release cycle:&lt;/span&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Get the best of your stakeholders:&lt;/span&gt;&lt;br /&gt;By making them working toward a shared goal.&lt;br /&gt;&lt;br /&gt;Remember, the success of your project is all about making your stakeholders happy :).</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/1155657937009765215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/how-to-start-implementing-agile.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/1155657937009765215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/1155657937009765215'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/how-to-start-implementing-agile.html' title='How to start implementing agile practices in your company ?'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-2878572272436233884</id><published>2010-04-21T16:54:00.000+00:00</published><updated>2010-04-21T21:46:14.280+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Leader"/><category scheme="http://www.blogger.com/atom/ns#" term="leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="motivate"/><category scheme="http://www.blogger.com/atom/ns#" term="team"/><title type='text'>How to get the job done within your team</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;data:image/jpg;base64,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&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 78px; height: 78px;&quot; src=&quot;data:image/jpg;base64,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&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 :&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Create a Vision:&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Know your people:&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Lead by example:&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Keep Giving Feedback:&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Push your people to care about the job:&lt;/span&gt;&lt;br /&gt;Don’t stress them, they will lose focus and won’t perform adequately.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Reward:&lt;/span&gt;&lt;br /&gt;Take the blame for their mistakes and give them praise for their success.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Trust:&lt;/span&gt;&lt;br /&gt;Create an environment of trust, trust is essential in all human relationships – professional or private, there is no place for snipers in a team. &lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;br /&gt;Set goals:&lt;/span&gt;&lt;br /&gt;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&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;br /&gt;Create routines: &lt;/span&gt;&lt;br /&gt;Routine help creating habits, habits increase productivity.&lt;br /&gt;&lt;br /&gt;Just remember, that your job as a leader is to keep the work exciting beyond the day-to-day tasks.</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/2878572272436233884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/how-to-get-job-done-within-your-team.html#comment-form' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/2878572272436233884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/2878572272436233884'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/how-to-get-job-done-within-your-team.html' title='How to get the job done within your team'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5823278659138176390.post-5908498634749999903</id><published>2010-04-20T12:11:00.000+00:00</published><updated>2010-04-20T12:14:13.348+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JUG"/><category scheme="http://www.blogger.com/atom/ns#" term="maroc jug"/><title type='text'>Revamping Morocco JUG</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFc8c0ODJ_zdCweMlBbn_GXW4lrmUcsfvUI4BOBZlbX5cn5vdGxAPTULAivyZcdAwCR2GDe-8RY7PRW-iY26men67LTEHlqgzKvVBfz7OpNIa4hJYaoHM1hMvoAwEHd9zs0Sq7YVOiIP8/s1600/Untitled.png&quot;&gt;&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 177px; height: 192px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFc8c0ODJ_zdCweMlBbn_GXW4lrmUcsfvUI4BOBZlbX5cn5vdGxAPTULAivyZcdAwCR2GDe-8RY7PRW-iY26men67LTEHlqgzKvVBfz7OpNIa4hJYaoHM1hMvoAwEHd9zs0Sq7YVOiIP8/s320/Untitled.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5462191589360381826&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Actually I&#39;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;For further information, please visit and join: &lt;a target=&quot;blanc&quot; href=&quot;https://moroccojug.dev.java.net/&quot;&gt;https://moroccojug.dev.java.net/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayoubelabbassi.blogspot.com/feeds/5908498634749999903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/revamping-morocco-jug.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/5908498634749999903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5823278659138176390/posts/default/5908498634749999903'/><link rel='alternate' type='text/html' href='http://ayoubelabbassi.blogspot.com/2010/04/revamping-morocco-jug.html' title='Revamping Morocco JUG'/><author><name>Ayoub El Abbassi</name><uri>http://www.blogger.com/profile/05626844516823276072</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFc8c0ODJ_zdCweMlBbn_GXW4lrmUcsfvUI4BOBZlbX5cn5vdGxAPTULAivyZcdAwCR2GDe-8RY7PRW-iY26men67LTEHlqgzKvVBfz7OpNIa4hJYaoHM1hMvoAwEHd9zs0Sq7YVOiIP8/s72-c/Untitled.png" height="72" width="72"/><thr:total>6</thr:total></entry></feed>