Archive

Posts Tagged ‘People’

Seven Habits: Exercises for habit 1 and 2

October 6th, 2009 No comments

In a previous post I described a session where I’m helping a former colleague in her 7 Habits course. I’ll just describe the exercises me and Anna covered.

Homework

Anna had me do some homework. To think of which things affect me, what worries me about them, and which of them I can affect.

Now I went over this at least three times, the most meaningful of them was one was on the subway on my way to work. I combined a list of things that affected me and what had worries and which I could affect. The list is no where near complete, but it served as material for a discussion.

The purpose of this is to know, what I can affect. What my decisions affect and in what way. By knowing this I can decide how I want to act based on knowing what I can affect, and do so before I act.

Positive feedback

I really liked this exercise as I need to conduct analysis of these things on my self.

Anna had me conduct a list of people which I perceive have had a positive impact in my life. Secondly she had me imagine each and one of them on my 60th birthday, giving a speech. Then note the keywords they would use to describe me.

By knowing this I can identify how I want others to perceive me. By knowing how I want other to perceive me I can act accordingly, it helps me identify the goals I wish to achieve.

This helps me with the second habit, Begin with the End in Mind: Principles of Personal Vision.

Negative feedback

It is not enough to know what you want to become, you must also know what you don’t want to become. This is similar to when I write a vision document for a software feature, I describe what I want to solve, but also what I don’t want to solve with this specific feature.

We conducted another list, this time of people whom I dislike. Next, why I dislike them. Most of the time you project negative aspects of yourself onto others. By identifying what you dislike in others, you can identify which aspects you do not want to reflect on your own person.

Here I have a suggestion for making this exercise more efficient, make a root cause analysis of what you dislike about the person. For one person on the list I wrote “mismatch in vision”, but this is most likely caused by something else.

Current work goals

Identify the three most important goals you have in your current position, imagine a situation in which these are solved. Now identify what you have to do to get there.

Tags: ,

Seven Habits

October 5th, 2009 1 comment

A Former colleague of mine is attending a Seven Habits course. She asked me to help her out with her homework. The concept is that we go through some exercise as she takes on different habits in the course.

Today we met for the first time to discuss this. Basically Anna got to explain the first two habits to me, and we did some exercise. I’ll go through some of my thoughts for the exercise but first I have to take a moment to elaborate on this teaching technique.

I like the strategy that Anna’s coarse is taking. It is a leadership course, and I believe that part of being a good leader is also to be a good teacher. Idea to have participants of the course work with another outside the course serves several purposes.

First we have to admit it serves a market purpose, as Anna goes through the course she will spread the word to people around her who are interested in leadership aspects.

But also this will serve three purposes for Anna. One is the built in reiteration of the course material helping her remember the material they’ve gone through in the course.

The second is that she gets my invaluable input, just kidding. She gets to see discuss the habits with the a fresh pair of eyes. She gets to  explain the details, and at some points dive deeper into the details of the the habit under study.

Last but not least, Anna gets to practice pedagogical leadership with someone.

Now I hope I can provide Anna with some good input. I’ll have to put some work in for the second purpose of the exercise, to help Anna get the most out of the course she can. As this is the part that I truly can affect to make sure these exercise produce the most value.

Tags: ,

We need more automated tests

September 14th, 2009 1 comment

During the end of the the 20th century, IBM had a TV commercial that I’m quite fond of. I can’t find it on YouTube, but its quite short. There are two suites talking, one reading a magazine. The one with the magazine says “We need to be on the Internet”, the other asks, “Why?” the first replies “It doesn’t say”.

I’ve seen this approach applied to Software quality several times now.

Allot of managers are hearing good things about automated tests. This results in allot of in house improvement projects trying to solve the question “How can we get more automated tests”.

The problem is that the question is asked all wrong. What the question really should be is “How do we improve software quality?”.

The end result might as well be more automated tests. But if you have a team of developers whom have never worked with testing. Your product isn’t going to be testable, and they will need allot of help. Help to set them up, but first and foremost help to understand why it is important to, not test but, to produce High Quality working software.

Most developers do not believe that there is a problem with their quality of the software. Without getting the team to think about software quality while their working, automated testing will take a long time to get in place. Above all the investment on automated tests will have a longer Return of Investment.

Now automated tests might be a part of the end solution for improving the quality of software, but getting the discussion about software quality going in a well behaved manner can have so much more Return of Investment.

Tags: ,

Tooling idea for Getting things done with teams

September 11th, 2009 No comments

Roughly 1½ year ago I produce a plugin for team-system to allow me to report bugs quickly though as I’m working with the code. The idea behind it was from the Fogbugz intoruction video where I think its Joel Spolsky who says something along the lines of “it should take less than 30 seconds to report a bug, else the lazy developer wont do it.”

The resulting plugin was a short-command that started up a UI with a single textbox on it. I wrote the “bug”, and it created an bug item in Team System with my specified title. It also made sure to “record” the context of where I was in the code when I wrote the item. In this case, file and line-number.

In a previous post I discussed how to get things done with teams.

Consider having such a plugin to your IDE that will report the item generated to a central inbox, central for all developers. The item could be a bug, it could also be a suggestion for refactoring, request for more tests, idea for a new feature and much much more.

With such tooling in place, a team could quickly shed some light on issues that aren’t directly related for the delivery of the current iteration. But more related on the values of the team or the ongoing quality of the code product. The issues can be reviewed and managed during a weekly meeting, resulting in product backlog items, sprint backlog items, discussions, meetings. Or just a sense of common values within the team.

Tags: , , ,

How I work with code the unit test part

September 10th, 2009 3 comments

I wrote a blog post about how I work with code. The basic idea is that I record actions that I need to take as I work with the code in a format that is readable by the other developers in my team. In case I get run over by a truck they can see where I took off. Also its a way to record what and why I’m doing as I’m progressing through code written by someone else.

I got a response from a former colleague Anna who claimed I wouldn’t need to do it if I had automated tests. Even though Automated tests doesn’t have much to do with personal productivity at first glance, a recording of something that needs to be fixed could be a unit test. If developers run the tests often they are in my shelveset and they can see which pieces of the code I perceive bugs in.

In fact this is exactly what is being done as I work with TDD. Giving support to the fact that TDD can increase the productivity of a developer, following the same ideas presented in Getting Things Done.

Tests however doesn’t record suggestions for design improvements or actions such as “Ask x about icon y”. At Least not as far as I know.

Tags: , , ,

Getting things done with teams

September 9th, 2009 No comments

With this concept of quickly creating new tasks and with the GTD and How I work with code ideas. An idea for a new tool popped up in my head.

The tasks that I create based on working code, are cluttered with my own opinions. With the Getting Things Done approach we could have an inbox with Action times created as team members work with the code. In a Weekly review each item in the Inbox could be manage, prioritized, discussed. Some items result in items on a sprint backlog, others simply result in other team members explaining parts of the system to each other.

This weekly review could be conducted outside the normal delivery cycles, as they are partially meta tasks for achieving a common mindset of how and what should be developed. The result could be new features, refactoring, extra testing, reduced bugs etc.

Tags: , , ,

The user always knows what he or she wants

September 9th, 2009 No comments

He or she might even know how to say it. It doesn’t mean that a developer will understand.

http://www.giantitp.com/comics/oots0676.html

Communication is everything.

Tags: ,

How I work with code

September 8th, 2009 3 comments

In Getting Things Done, David Allen discusses a work flow of how to handle things you need to-do. Now when I work at a coding task I often find places that could need some refactoring love, or needs to change in some way. There might be potential bugs, violations of DRY and all that.

What I’ve seen so far is that some developers tend to fix these “issues” as they find them, working towards a sort of zero-deficiency or a “if I cant read the code, chances are someone else wont be able to either”  motivation.

Working with code in this manner can have some interesting side-effects. To name a few.

  • It takes longer to resolve a specific task
  • It could result in team conflicts a some developers perceive written code as “theirs”
  • It could introduce bugs, if the original intent of the code isn’t captured by tests (not even 100% code coverage will guarantee this).

What I like to do is to finish the task I’m holding as fast as possible. The reason for this is simple; others are relying on it. But while I finish the task I notice these things that needs to be changed, fixed, or clarified. Code items that require attention in someway. What I tend to do instead is to create a new Task to represent this change.

Creating a new task as several benefits.

  • It allows delegation and parallel execution of code changes
  • It allows the task to be discussed by the team
  • It allows me as a developer to finish my current task, without having to fill up my brain with new things to-do
  • It allows me to finish the task faster
  • It allows the new tasks to be prioritised by the team
  • It reduces the chances I need to context switch
  • It allows me to work on just one task

Now or the last one I recommend reading Eric Brechners blog post about making your world easier

Eric Brechnerno
Tags: , ,

Getting things done

September 6th, 2009 No comments

I just started reading “Getting things done” – by David Allen. I’m roughly 25 pages in, but now I have to stop to write this blog-post just to clear my mind.

The reason for why I started reading the book is that I found Tracks though mor.ph and started looking at their system earlier this week. The goal was to get some inspiration for creating more productivity enhancing features in RemoteX Applications. Tracks was interesting enough but I wanted to read the book to get some better insight into the ideas behind it.

The way Scrum, Kan-ban works is similar in the sense that it is a way to organize Actions, things need to be done.

What I miss so far from Getting Things Done is that the items on the team boards that I’m working on is also a part of the things I need to get done. It feels as if I’m missing a dimension. I felt the same way about the Tracks software earlier this week.

The book it self has already resulted in 5 blog posts, this included. Ill add one when I’m finished to summarize.

Tags: , ,

Computer anxiety

August 26th, 2009 1 comment

I just talked to a neighbour of mine over the phone. She had a computer crash this morning, and basically panicked. Now as I talk to her I notice one thing that I’ve noticed over and over again. Most non-technical people are actually afraid of computers.

Now she knows the best practices. Regular backups, anti-virus regularly updated, anti-phishing filters activated. Still she refuses to download anything on the laptop, even Spotify was a hard sell apparently. Out of one thing, she doesn’t want anything to happen to the computer.

How do I ease the anxiety she feels when she is using her computer?

The amount of stress a computer can cause on a non-technical person is horrifying, and is something we should keep in mind when designing software.

A good user interface is a user interface your mother can use, without stress.

note: the person in the blog post is not my mother, but could very well be.

SFUI = Stress free User Interface!

Tags: ,