Showing posts with label what. Show all posts
Showing posts with label what. Show all posts
Tuesday, March 10, 2015
What I learned about agile teams from 8 9 year old girls basketball
I am a very fortunate daddy. I am one of the coaches for my eldest daughters basketball team. The community league she plays in has a rule designed to promote team work that at first glance may seem counter intuitive - "No double teaming". This means that in most circumstances when playing defense each girl must cover her own check and can not help out her teammate. To explain this a little more, Ill give you two examples.
Read more »
Example 1 - double teaming:
Mary is new to basketball and is tentatively dribbling the ball over half court. Ann is playing defense on Mary and is doing a pretty good job of limiting where Mary can go and who she can pass to. Laura is a very strong player on Anns team and notices that Mary is struggling and that she has an opportunity to make a play. Laura leaves her own check, runs over to Mary (who is now double teamed), steals the ball and races to her own basket where she scores an easy two points. Her team cheers loudly.
Example 2 - helping:
Amber is an experienced basketball player and is dribbling the ball over half court. Kari is playing defense on Amber but is having trouble limiting where Amber can go and who she can pass to. Deanna is a very strong player on Karis team, but because she is not allowed to double team, she does not immediately race over to help Kari. Amber makes a quick move that allows her to get past Kari and race towards the basket. At this point, Kari knows she is in trouble and yells help. Deanna races over and gets in front of Amber to slow her down just enough so that Kari can catch up. Once Kari has caught up, Deanna races back to her own check and Kari resumes playing defense on Amber. No baskets are scored and mild applause is heard.
The nature of community led basketball leagues is that there is a combination of inexperienced but willing coaches and inexperienced but willing referees. This means that most times example 1 occurs without the ref or the coach interfering. While our team has been mostly executing as example 2, many of the teams we play against have been executing mostly as example 1.
Over the course of the season, the result has been interesting. Teams that were beating us at the beginning of the season by taking full advantage of the skills of their best player through double teaming are now struggling to even have a chance to score against our girls. The girls on those teams are trying just as hard, but the double teaming strategy that worked so well early in the season is no longer effective.
We have a team of 10 girls who have each improved. Some of the girls are more skilled than others, but each girl has improved noticably from the beginning of the season. The net effect is that our team has also improved noticably from the beginning of the season. Maybe more importantly, this team supports each other, learns from each other, and trusts each other.
Note: It would be easy to credit our brilliant coaching strategy, but that would clearly discount the effort, teamwork, and skill of the girls on our team. They are a wonderful group.
The parallels for agile teams are pretty clear to me. If you expect your team to perform at a high level, you need to let them improve at every role and reinforce team ownership of the project.
- If you are the PM, dont take sole responsibility of the budget, tasks, project goals etc. Make these visible to your team and help your team own them and make decisions about tasks and priorities together.
- If you are the DBA, dont get upset when the database design is insufficient, teach the team how to improve their design the first time. Work with them rather than fixing their work later.
- If you are a tester, dont assume full responsibility for testing, teach your team how to be better testers by testing every day and pair testing with the developers.
- If you are the UI expert, involve your team when designing the UI. Lead the exercise, but dont steal the design for yourself.
Of course, the converse of all of these is also true:
- If you are a developer, take responsibility for the budget and priorities
- If you are a tester, learn how to code a little
- etc.
There are other lessons to be learned from 8/9 year old girls basketball, like how to ask for help when you need it, but those are for another day.
Occasionally I meet former co-workers who inevitably ask me what Im doing. When I announce my agile and lean passions and talk even briefly about the differences between traditional teams and agile teams, I often am greeted with a response something like "But someone still has to manage the team and the budget right?" My answer is usually "Yes, but it doesnt need to be you anymore. It should be the whole team."
As the African proverb says, "If you want to go fast, go alone. If you want to go far, go together."
Sunday, February 15, 2015
What is Josephus Problem
This is an interesting programmingproblem know in the literature as Josephus problem. The problem is given as:
1. Suppose there are n children standing in a queue.
2. Students are numbered from 1 to n in the clockwise direction.
3. Students choose a lucky number say m.
They start counting in clockwise direction from the child designated as 1. The counting proceeds until the mth child is identified. mth child is eliminated from the queue. Counting for the next round begins from the child next to the eliminated one and proceeds until the mth child is identified. This child is then eliminated and the process continues. After few rounds of counting only one child is left and this child is declared as winner.
Also Read: C/C++ TIC-TAC-TOE GAME
Also Read: C Program for Tower of Hanoi Problem
![]() |
| Josephus Problem Animation |
Implementation
It is required to write a program to identify a winner of the game. Inputs to the function are two parameters.
n: number of children
m: lucky number
function returns an integer identifying the winner
int winner (int m, int n)
{
queue q;
int i;
init (&q); //create a queue of n integers, numbered from 1 to n. Number I stands for ith child
for (i=1; i<=n; i++)
enqueue (&q, i);
for (j=1; j<=n; j++) //n-1 iterations to eliminate n-1 children
{
for (i=1; 1<m; i++) //skip m-1 children
{
x=dequeue (&q);
enqueue (&q, x);
}
x=dequeue (&q); //remove mth children
}
x=dequeue (&q); //last child winner
return (x);
}
Image Source: http://img.thedailywtf.com/images/200907/Josephus.gif
Wednesday, February 4, 2015
What is Firmware and Custom Firmware
What is Firmware and Custom Firmware
Definition and Difference Between Original Firmware and Custom Firmware .
What is Firmware ?
A firmware is main software ,installed in main chip (flash memory called ROM) of all electronic device to control and give permanent instructions to device hardwares . ROM is random access memory which can be rewritten or erase.
No matter its Smartphone,Tablets or other devices,the definition of firmware is same in all the electronic devices. A firmware works like human brain, which control and instruct all the part of human body.
What is Stock Firmware,Stock Rom or Original Firmware ?
A firmware is also called Stock ROM which means the original firmware of particular device from company or a same copy of software which were installed by company during manufacture . A modified firmware with different version called update . When the companies modified their firmwares to remove the bugs ,more compatibility,or better performance and efficiency ,called updates.Firmware Updates manage by versions. You can install firmware updates in many ways i.e if you have smartphones or tablets you can install Android updates (for example 4.0,4.1,4.1.2,4.2.1,4.2.2,4.4)iPhone or iPad (IOS 7.1.1,IOS 8.0)etc. by WIFI (OTA) or by downloading firmware from companys web page. The original firmwares are always needed when your device does not respond properly ,dead or generating multiple software errors to make it alive again.
What is Custom Firmware ,Custom Rom?
A firmware which modified,edited, injected new features,ripped out stock apps,optimized kernel with no limitation by individuals (Developers) called Custom Firmware or Custom Rom. The most important feature of Custom Rom is , you can update firmware to those versions which is not available for you device. Custom firmwares are based on extra utilities added by developers i.e extra themes,long battery,speed,graphics ,explore the whole devices options added into custom rom.
For reference in Iphone you can preserve baseband to avoid baseband update with custom firmware or in android devices you can have extra features like installing apps in memory card,rooting etc.
This post and content is based on best of my knowledge. If someone would like to add something in this post please write it as comment and I will add it to post. Any suggestions would be considered as compliment.
Subscribe to:
Posts (Atom)
![What is Josephus Problem? [Animation, Function, Implementation, Program] What is Josephus Problem? [Animation, Function, Implementation, Program]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFK53qrUg3S3jTERhGxl2EvVHQlRVpruPyakn5ShsBrZ-CT8sIyys2_2twpJ1VhsCvr08lk4dTbOaMXujWcaG76sEd8tCqtDcge4Xd01pzGf_3Injmwwos1UFEVCv3_5bub7DGjGEm_RRe/s1600/What+is+Josephus+Problem.gif)