Raba - Defend your code RSS 2.0
# Thursday, October 04, 2007

My team have been using the Scrum for Team-System template for the Team foundation Server
First, I must recommend this template to anyone who use Both scrum methodology and TFS as its source control.
Second, I would like to share with you new features we thought that would help us perform better.

I adopt the way of writing requirements from the Scrum4TS Forum:

As a <role> I want to <goal> so that <reason>.


Feature 1:
As a product manager,
I want to have the ability to create User stories in TS,
So that we can manage our user stories there instead of manual cards.
** Some may say that the Product Backlog Items also can be used as User-Stories - but I think they lack some important fields.

Feature2:
As a scrum master\product manager,
I want to have an automated task board view at the TFS,
So that we can manage our tasks visually on screen instead.
of duplicating tasks both in TS and by hand on boards

Feature 3:
As a manager\scrum master\programmer
I want the ability to see the current sprint tasks (also current sprint stories or current sprint products,
So the programmers can easily watch only the given sprint tasks.
(how? we may create fields for the given tasks which holding its dates)

Feature 4:
as programmer,
I want the ability to see the prioritization of my tasks and not only the prioritization of the product backlogs,
So I should now from where to start

Let me know what you think about the lack of those features.

Thursday, October 04, 2007 4:34:11 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Scrum | Team Foundation Server

For the last few weeks I read a lot on how to improve my team's Scrum environment and on how to create a more Agily workspace. I might also add here that we Scrumming for 9 months (on each month we change something else, improving, destroying, thinking again, etc...).

Collecting and reading great posts, I will share them with you:

Those few Samples cause me think about how can I upgrade our environment, And I'll Explain my changes:

Programmer environment - better productivity
Upgrading the Programmer environment to a more productive workplace - Thanks to Yossi
, we have two screens for each programmer. Now everyone can code on once and test on the other screen Or maybe can code on one and read the Design Requirements on the other, etc.

Cork board 
I've found out that most a the programmers do not really understand what everyone telling at the daily-standup-meeting, which cause them to dislike the meeting or maybe even forget the importance of this meeting.
The Cork-Board will help us to see (visualization) and understand(movement-at-realtime) the actual point of the team in the current sprint.

Done
People are different, This is a good fact, and we should understand it.
You need every one in your team understand what the Team want from him only his best. But when we can't explain ourself, someone can understand things not properly as we meant them, this will cause anger and disappointment.
Create a short document explaining what is Done - so everyone will be coordinated.
(Some types for Tasks that need to be Done: Writing Story Cards, Updating documentation, Coding, Bug-fixing. each one of those need to be fully Done)

Testing (not TDD yet)
Logic:
For me, one step before TDD-ing, the team must have a solid tests and a good understanding about the difference between integration, functionality and unit.
Framework:
After understanding the logic, you must have a solid framework for testing and a daily notification about your operations, so you and everyone else could see that you are working as we expect you to work.
So we create the Continuous-Integration workspace using the CC-Tray so everyone could know whether their friends are helping them or preventing from them to work properly.

The Imporatnce of testing:
After having this simple understanding, and this framework, everyone will finally understand that his testing methods are important.
And everyone will understand that unit-testing are part of the Done statement.
Moving to TDD-ing:
From here I believe that we could move toward TDD-ing.

Daily Scrum Standards
Right on time meeting, Every one standing, Only one people talking, Exactly 15 minutes, clarifications questions only.
Selecting the leading watch - everyone has its own watch, the team should understand which-watch is the one to set the scrum time. (I should buy an Egg-Watch, I am still looking for a funny one).

Setting Punishments (Penalties)
They should be a funny penalties, so everyone will like it (everyone but the one who doing it, of course).
like bringing the milk, or making coffee for everyone.
I see those punishments for a few fields:
a) destroying the build(errors and warnings)
b) checking-in tests that fail
c) decreasing the Code-Coverage,
d) late for Daily-Scrum


Here are some pictures from the new environment


                                            My Agile Workspace 


                                           Two Scrum Boards

 
                           The new Cork-Board (still empty, till the next sprint)



Things To Be Done, {Till the end of the year}:

  1. Find a funny (noisy) Egg-Watch
  2. Create a field_penalty_list
  3. Moving toward a TDD-ing sessions
  4. Decide about the best period for the sprint (today we decide about two weeks, I am start thinking this one is too short)
  5. Find the Product-Owner (This one may sounds funny, but we still did not find him\her, no one can take this position for now)

Scrum is not only the things you are saying and doing, it is more about what you (and your team) are feeling.
Scrum should be part of everyone in the team, so it will succeed.

 

Thursday, October 04, 2007 2:41:11 PM (GMT Daylight Time, UTC+01:00)  #    Comments [2] - Trackback
Agile | Scrum | TDD

# Saturday, August 18, 2007

I thought about the time we all spend on reading some well known patterns. I found this strange reading again and again the same logic. We all know the pattern but we doing it to be sure we use all the best practices.

Inspired by the book: Head First - Design Patterns, I rewrite the two basic patterns of Strategy and Observer. and create a snippets for your own use. so next time you won't need to get to Google it up.

Here are the snippets, for your own use: (right click & download)
Strategy.snippet
Observer.snippet

More to come on the next posts.


Remark: There could be a lot of variation for those patterns, those I wrote here were taken as a combination of the books samples and a few best practices I found out.
Saturday, August 18, 2007 5:33:24 PM (GMT Daylight Time, UTC+01:00)  #    Comments [3] - Trackback
.Net 2.0 | Design Patterns

# Wednesday, August 15, 2007

Hello to my new visitors from ArcExperts.net.

A little background about me you can read here.
I am Blogging about .Net(2.0, 3.0), Team Foundation server, Agile, Scrum and all this stuff spiced up by the ESRI's applications (ArcGis Server, ArcGis Explorer etc.)

Thanks to Dave Bouwman for letting me publish my thought to the ArcExperts.net community.

Wednesday, August 15, 2007 11:38:48 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
GIS | My Site

There is a new version of ArcGis Explorer (410).

I only made one test for simple old version of one of my tasks, it still works.
It looks lie they almost didn't changed the templates of creating new tasks.

API Changes (didn't test it yet, only read about it):

  • RemoveLayerCache(Layer) - delete the cahe of a given layer, this one is great!
  • CacheType - {Permanent, Session, None} - indicates the way ArcGis Explorer caches the layer.

I will keep checking and update you ASAP.

Wednesday, August 15, 2007 11:29:41 PM (GMT Daylight Time, UTC+01:00)  #    Comments [1] - Trackback
AGX

A few weeks ago Matan & I had the honor to participate in  a panel discussing pros&cons of the Team Foundation Server, This panel hosted by Sela & Microsoft at Microsoft buildings (Ra'anana).

Here are some of our thoughts:

  • The Centric approach of get all the items (tasks, bugs, impediments, sprints, backlog) in one place and can easily connect to your code, and easily generate graphs from the already entered details - is a great approach and make life easier.
  • Adding tests to your code, using the VSTS is easier. Also adding simple automated build and integrate your tests to run on your nightly builds.
  • We are now implementing in two separated sites on the same code, and we doing the synchronization by our self.
    Orcas Gonna solve the disconnected server problem.

I am not telling you that this tool is perfect, it is absolutely has its weaknesses but I think that this is a good decision to choose it.

Wednesday, August 15, 2007 11:18:49 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Microsoft Products | Team Foundation Server

# Wednesday, August 08, 2007

I must admit that the last few months of mine were faster than I can catch or even understand. Talking to smart people I've found out that those feelings won't gonna change I also understand that the problem won't be solved unless I do a few more thinking about my self:

  • One of the main issues I want to concentrate in is the management:
    • be aware of the team-players strengths&weakness(mine also).
    • be aware of the team strengths-weakness
    • Manage tasks\time better.

We always talking about the project getting too crowded till the end. I've seen this at any project\sprint I've been in.
Also I've heard this from every friend of mine in the show(IT)-business.

I will focus my post on managing the team better using the TFS.

After managing tasks on board while updating EPM manually (most of the time a-sync updates), I was tired of trying to keep the pace of my team. [they really work hard, fast & hard]

I've even tested the two built-in templates at the TFS (Agile & CMMI) and using another _Matan&Avi_Custom_Made_ template. I am proud to announce that I am finally gonna use the Scrum for TS publicly.

I've been testing Scrum4TS for a long time, watching the bugs that solved and the improvements in this template, I think that this is what we need right now in our team.

Here are some of the Pros (as I see it):

  1. can track the whole tasks.
  2. can track the exact time of work not only the planned one.
  3. can manage tasks per sprint easily.
  4. measure the goals for the management by the product backlog items that been done.

Letting you know more on the near future.

Wednesday, August 08, 2007 10:56:22 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Agile | Team Foundation Server

# Saturday, July 21, 2007

Miky is a very talented boy, I've had the pleasure working with him, and now he left us to a new team BI stuff.
Finally opening a new (secret) blog,

Pay attention to this guy.

Saturday, July 21, 2007 1:11:41 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Life | My Site

# Saturday, July 14, 2007

I always wanted cool people to Tag me (Thank you Oren for giving me the opportunity to share my thoughts, I like such challenges).
I think we should, also, do this with new technology and code, For example: I am writing an advanced example for VS-add-in for check-spelling so I will Tag one more person to write code and blog about it, for example, Tag: Israel Israeli (VS-add-in for converting JavaScript to Script#).

I am 25(6) years old and I saw some cool technologies and heard some great ideas for new start-ups. I can easily reveal young people only by looking their eyes and see them shinning with passion and easily understand that their mind can't stop thinking. I like those who always show you new things not only talking about cool features but also coding them. More than I like to hear\read about cool technologies\features I like to code them alone\pair etc.

I think that the key to success is not what you know, it's what you want to know, for all those who want to be good look at Tal Ben Haim at wiki, Yossi Benayoun or for our American fellows Michael Jordan, This people become stars from both hard work and the passion for winning and success. Always find new challenges (write them in a place that you can see it every month\week\day).

Their is one thing I like except from coding, teaching others (especially friends & team mates).
I like to take a newbie, mediocre programmer and learn him how to be better, I measure my success by reading his code after some time. This is a great feeling knowing that someone you teach become a master. At every step in my life I had between 2-5 people which we work together: reading stuff together, coding or just help them understand advanced features\patterns.
Giving them new challenges help me to learn them better for myself.

Read&Code methodology,  I am trying to read a lot, books while on bus\train, blogs\magazine while tired at home and code the rest of the day.
I've always have a small project which I code for fun, it could be an add-in, it could be a new research and it could be something I've learned at the university in some theoretical lessons of another boring course. few must do issues:

  • 3-4 books a year (tech books not harry-potter's one), management is good enough.
  • about ~100 bloggers a week. (I can't read everything but I truly make efforts to read most of them. Anyway, I have my favorite and the others I am reading if they have an interesting posts)
  • articles - one main-subject per week\two. (for example: the last 3 weeks were dedicated to Entlib, the two weeks before were dedicated to AGX). I choose a small subject in a bigger one and learn it, for example: Entlib - PolicyInjection, Logging, Exception Management. AGX - API, newer versions, patterns&practices for better AGX-architecture.
  • Blogging - It will cause you to do cool stuff so other people could enjoy and won't be bored to death while reading.

Things I should do

Learn to manage my day and my programmers day\week, I think that I can do things faster\better\cleaner, moreover, I know that I have to be a better team-leader especially while managing other tasks and planning the project-future.

I think I should write a better designs or even transform my self to start writing story cards. I am feeling that my (and my team-mate) design and design reviews hold a lot of crap. most of the time it is far away from the code itself.

Be more patient - "Serenity now" they called it at Seinfeld, I hate people who shout and raise their voice, and when I am doing it I hate it the most.
This is a world of ego and that is a fact! we should love each other, cause love will bring us better code. (for sure)

Code more at work - I am feeling that I am 60% manager and only 40% coder, which cause me to walk the corridors depressed. don't get me wrong I am coding a lot at home, but I always feel like the management and gantt-scheduling won't help me become better.

More pair with people who better than me - I would like to work with more gifted developers and have a lot of pair-programming sessions with them.

Things I want to do

I will concentrate at the things till the end of the year cause more than that will take a few more posts.

TDD - is the main issue, I start learning and coding it and I think that this is a fascinating world, moreover, I am feeling that there are not enough people implementing it so it make it even more challenged.

C#3.0 - especially Linq, which I think that this is the biggest step Microsoft made at this version.

GIS Stuff - Write and code more on new GIS technologies, like MS-Virtual earth and Google Earth or the new Image-Server of ESRI.
The GIS stuff is at the beginning and people don't know how to use it at work, I think that there we could find a lot of challenges and a lot of money.

Left the current job and Join to a challenging start up I am not sure what I want more the money or the challenge but they both would make me happier. (not till the end of the year)

Things I won't do
As Oren says, I won't left the keyboard, at least not for the near future.

Won't manage team that don't need me in a player-manager position (like: Ruud-Gullit or Kenny Dalglish). I can't be only a manager, not right now.

I will never give someone else (beginner\mediocre) the right(full) answer. (this worst-practice) in our fast-and-furious world we need everything fast so we don't care that others won't learn, you don't know, I'll show you the way...

Tagging this folks

Avi Wortzel, Roy Osherove, Yossi ShmueliOren Eini (aka Ayende Rahien), Shimon Krokhmal.

Saturday, July 14, 2007 4:47:49 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Life

# Friday, July 13, 2007

This Survey sums up everything.

  • ESRI == Microsoft, which is a big success and I am pretty sure that this is a good direction.
  • Blogs ain't the main issue at the ESRI products,

I think that ESRI are still thinking in a GIS manner so there are more blogs for GIS users, than blogs for GIS developers.
I think that blogs\forums\web casts\GIS casts are better way to sell you API and of course better way to help you fix it.

Enjoy.

Friday, July 13, 2007 9:27:05 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
GIS | Life | Software Development

I think that ESRI made a huge jump in the last 3 years from the ArcIms Server (and the weird AXLs files) toward using almost the same API above the MXD files and Arc-Objects architecture.
Don't get me wrong they still have a lot to do, but hey they are doing it in the right direction.

I wanna show something that never happened before:
Next version (9.3) in brief
Microsoft API & ESRI GIS
More on the next version
and here is the real article about the next releases.

Some Highlight for the 9.3:

  • Windows vista capabilities
  • Working with Microsoft about adding virtual earth controls to the API.
  • When? a the first quarter of 2008! (good to know)

Something still missing:

  • Readability and Usability testing the Arc-Objects API.
  • WPF support, I've read about OpenGL API... in the next releases.
       

ESRI letting us know about the next releases, they still don't let us know everything but it is a something we should use.
Moreover, they even made a good direction while working with Microsoft.

 

Friday, July 13, 2007 9:19:30 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
.Net 2.0 | GIS | Software Development

# Saturday, June 30, 2007

Last friday I made a presentation about non-metric methods, non-metric methods is a small subject in another bigger subject named: pattern recognition.

you can download the presentation here (zip file, 566KB).

Saturday, June 30, 2007 5:52:48 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] - Trackback
Life | Software Development

Archive
<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2012
Shani Raba
Sign In
Statistics
Total Posts: 145
This Year: 0
This Month: 0
This Week: 0
Comments: 97
Cool Stuff
Add to Technorati Favorites
Themes
Pick a theme:
All Content © 2012, Shani Raba
DasBlog theme 'Business' created by Christoph De Baene (delarou)