Friday, August 24, 2012

Being Agile EVERYWHERE (part 2)


 So what did I do to become "Agile"? And yes, all of my assignments had nothing to do with software.
 In case you didn't know, agile was not invented for software developing. In 1930s a small company known as "Toyota" changed the typical way the organization used to work and started something new called "Lean" - you can read about it in this article.

I adopted the agile methodology in to the world of my course.
My team always worked in scrum so daily meetings, retro's, review's, backlog and user stories are always on my mind. However scrum doesn't give you the tools to deal with sudden tasks (like supporting production applications or fixing production faults). Kanban on the other hand does. In order to succeed I need them both. So like a true agile believer I was creative.

I had to solve these problems:
1. Plan ahead the way I deal with my projects.
2. Improve all the time in completing all kind of tasks.
3. being able to set tasks for every day and keep history of my daily progress.
4. Understand which projects I give more focus and which I "forget".

Introducing ScrumBan!
1. Daily meetings - Every day I took 5 minutes to plan my day - I wrote down on a piece of paper (introducing: "The daily paper") all the tasks I had to do today and where they belong (sudden tasks, course assignments, project task). I kept it with me all the time so I'd know what my status is.
 How could I know which tasks I had to do and when? Backlog!

2. Backlog - As I received my mission (the project) I divided it to features (if it was possible) - individual parts that together complete the whole mission. Every feature I divided to user stories and every user story to tasks. I set the priority of every task in order to know which to pick in my daily meeting.

3. Retro - I didn't have sprints because the course lasts only for 10 weeks, so I performed a retro every day (yes, it was with only with myself). I looked at my daily paper and checked which tasks I've completed and which I had not and why.
The next day I focused on improving the reason of not completing those tasks.

4. Review - whenever I completed a feature I showed it to my "customer" my teacher (he’s not really a teacher but that will do) and got the feedback, good, bad or both. Only after a fixing all the comments from the review the feature was “done”.

5. Kanboard - I wanted to get transparency. To know what I did every day, which tasks took most of my focus. The daily paper was updated during the day, marking completed tasks in green color and those that for some reason I didn't finish were parked in red. Every task was connected to it “User Story” mission or project so I could see what projects had more focus. The next day I would focus on other tasks more.
The daily paper was my kanboard.




-blue marker = done tasks
-red circle = not done tasks
-yellow = user story
-prioriry (on the left column) = the highest number means the highest prioriry
-conclusion = conclusions of the day and the goal for the next day


Using all those helped me focus on the right tasks and always improve myself. 
The course hasn't end yet so I can't really declare that doing those was a smart move. Don’t worry. I'll let you know.

Sunday, August 19, 2012

Being Agile EVERYWHERE


Recently I've started a new chapter in my life. It's not about software developing but in the end it has a direct effect on my career as a team leader.
This chapter is 6 months long (2 really long courses) in which I almost don't get home, that's my excuse for not writing that often. In 59 days it will be over but who's counting right?
In this time I deal with different kind of tasks that improve my abilities of multi-tasking, time management, delegating work and dealing with a whole new content world.

I received couple of huge missions that I have to complete by the end of the course. Every mission is a project that I'm its project manager. Besides the projects I have different course assignments to present - regular paper assignments and tests. You think that's it? Nah. I also have sudden things that I have to do like call someone, send tons of emails or go to an unplanned meeting. Every day I have to go to at least 4 meetings, present 2 course assignments, call 5 people and schedule a meeting with them, send 20 emails and at least 10 unplanned things that I had to do besides the project's planned tasks.
   
I can never remember and complete all those tasks and proceed working on my projects. I want to succeed in this course, so I have to improve in completing all my tasks while investing minimum time effort. To do that I need some sort of transparency about the way I deal with my tasks. The project is huge so I need to find a way to plan how to deal with it and to set the right priorities.

I need to be Agile!


Get tooned for the next post.

Saturday, August 4, 2012

1 2 3??? What?

A critical point in the life of every blogger is when he or she needs to decide the title of their blog.
 Every developer searches the web for answers - "how to start using that new tool" or "what does that error really mean and how to fix it". As a developer I was frustrated when I searched different blogs that were talking about my problem but they didn't really allow me to go back to my computer and solve the problem. I had to dig in more and only after combining the knowledge I got from all of the posts together I could finally solve my problem.
Well like a true agile believer when something seems wrong to me I “stop the line” and fix it. I can’t fix all those posts that didn’t really give me a solution, but I can write new ones that will present a problem (1), explain why that problem appeared in the first place (2) and then give a solution to the problem (3). After reading this post all that’s left to do is code.

Welcome!!


Hey! Welcome to my blog!
I'll be talking about various .net technologies and tools for your project. Besides tools you'll be hearing about project managment from agile prospective, TDD, CI and more.


Enjoy :)