I gave the following presentation at the Tulsa Agile Practitioners meetup in August. I know the slides could use some work, but I would welcome any other questions or feedback you may have. I would recommend reviewing the speaker notes with the presentation for more information than is presented in the slides.
Scott Dunn shared at our TAP (Tulsa Agile Practitioners) meeting this week. I really enjoyed the meeting. Scott conducted the meeting as a group discussion and not a presentation. He took topic suggestions from the group as well as covering items that he was passionate about.
The first topic covered was on group dynamics and handling conflict. One of the suggestions was using personality tests to understand the strengths and weaknesses of team members. It is important to balance teams. If everyone has the same strengths, you can develop biases and not work well because certain areas will get ignored. If you want to have healthy conflict in teams, you first need to spend time developing trust and respect in the team.
Another topic discussed was how to scale scrum. Since I am still new to scrum, I didn’t totally understand all the ideas presented. You have a scrum master that helps lead the team, but when there are several teams involved, you need to coordinate teams. Part of what is needed with multiple teams is maintaining consistency. That would be consistency in user interfaces and overall design. Signs of problems in scaling are seen when cross team problems start popping up.
During the discussion, Jason Knight shared a quote from a book (I missed the book name and author) – “Any fool can make money by ignoring maintenance.” I have seen this in person before. An environment like that is not going to keep good talented programmers around long. You need to keep up with technical debt and not let it accumulate and eventually cause major problems.
The final topic that Scott discussed was “What is the story of your life?” If someone made a movie of your life, what would the movie poster be? For most people this isn’t a possibility. You need to decide to make your life one that matters. This means you need to plan your life and not just react to things that come up. One acronym he shared was “G.R.O.W.”
G – goal – decide what you want for goals so you don’t go through life just reacting. Set a goal to make an impact.
R – reality – look at the reality of your life to see where you are now.
O – options – develop options to get from where you are to where you want to be.
W – walk it out – choose an option and execute.
This is what needs to be done to manage the story line of your life. The key is planning and not just reacting. I know I need to spend some time on “GROW”ing my life. This was a very thought provoking TAP meeting.
There are several changes taking place. The main change is I am leaving my position at Pick Programmer’s Shop to take a job with Vitals.
The way this came about was by being active in the local developer community. These include the Tulsa Agile Practitioner’s group and the Tulsa Web Devs group. I would encourage you to be active in your local user groups. Not only will you learn, you will also get to know new people. This is the most important thing. People will help you grow and expose you to new ideas. By interacting with people at the TAP group, I learned about this opening.
I will be starting the new job in early June and I am looking forward to the new challenges it will bring.
Yitzchok Willroth, better known as coderabbi, spoke at the Oklahoma PHP/Tulsa Web Devs user group Monday night as part of his Wisdom World Tour. He is sharing principles he learned studying the Torah that have helped him as a developer. I think the things he shared are just good real life principles that apply to every day life. If you get a chance to hear him, I highly recommend making the time for it. Highly recommended.
Here are just a few of the points that he shared.
- “Cultivate a Mentor, Find a Colleague” – A mentor will help you grow and learn quicker. To find a mentor, you should “identify, interact and initiate”. Identify someone that you would like to learn from. Then start Interacting with that person by talking, email, asking questions. After you have developed a relationship, Initiate the idea by asking if they would mentor you. People are an important resource which is you need colleagues in your life. Colleagues can learn from each other by their interaction. This can be through pair coding, code review or just talking. Another way is via websites. doyou.computer and exercism.io are two places where they use group coding challenges to help you learn and grow. I haven’t used either yet, but I am planning on it.
- “Do not separate yourself from the Community” – People grow by interacting with other people. In the tech world, it is easy to isolate yourself. You need to make an effort to join a community and interact with it. Proverbs 27:17 – As iron sharpens iron, so one person sharpens another. Different ways you can interact with the community is by user groups, conferences, IRC, twitter. There are numerous ways. Another way is by contributing to open source software. The key thing is to start and then continue.
- “Verbalize” – Sometimes you can help yourself find a solution by talking about the problem and solution with someone. You can talk to yourself is no one else is available. Another option is to whiteboard the process. Creating the explanation will help you clarify the solution.
- “The timid does not learn” – Ask questions. Don’t be afraid to fail. Don’t quit. The key is to start.
His ending was a quote (I don’t remember the Rabbi’s name he quoted): If I am not for myself, who is for me? If I am only for myself, who am I? If not now, when?
One of the things he stressed at the beginning of the talk was to take one point and start to implement it in your life. There were a lot of good things presented, but it is easy to get overwhelmed by trying to do everything, so you don’t do anything, so start with one item. My item from the talk was to improve my interaction with the community. I have often fallen into the trap of isolating myself just because it was easier. Some of the ways I am going to reach out to the community is blogging, twitter and user groups. I have been blogging, but the quality of what I have blogged has not always been the best. I am going to strive to improve the consistency and quality of my blogging. I am also going to start to use twitter. I am going to continue going to user groups, but I am going to expand my circle of contacts. It is easy to just talk to the 1 or 2 people I already know. I am going to reach out and start interacting with new people.
Once again, if you get the chance to hear Coderabbi talk, make the effort to attend. You will not be disappointed.
I went to the April TAP meeting earlier this week. Floyd May and Jason Knight did a wonderful job with a TDD workshop. Most of the attendees had only read about TDD, but had not actually practiced it. This was an opportunity to get your hands dirty and actually code tests and meet them in the traditional red/green/refactor process.
For me, the catch has always been how to write the test. In the workshop, we were using Jasmine as the test engine. I realize now that the key is the end of the test where you write the EXPECT statement. The only code before that in the test should just setup the data and invoke a function. The EXPECT should then test a value in the data returned from the function to see if it returned the expected value (hence the name EXPECT). It really wasn’t very difficult. It is just getting into the habit of writing tests.
Kudos to Floyd and Jason for a great meeting.
Just went to the TAP (Tulsa Agile Practitioners) Meetup last night. Philip Kin gave a good presentation on Acceptance Test Driven Development. The key is to get the project owner to write the acceptance tests. The acceptance test becomes the development spec so you know what should be developed and, when the tests pass, when it is completed. He showed an example of writing the acceptance tests in SpecFlow/Cucumber. To get this to work you need the project owner to buy in to the concept and participate in writing the tests. This is something I am going to consider, but I don’t think it will work at my current job.
Afterwards, Jason Knight led a great discussion getting everyone’s input on the idea and general discussion regarding agile practices. Jason has also recently started writing the Semper agilis blog. There have been several thought provoking articles already. It is definitely Recommended.
The TAP meetup happens the first Tuesday of every month from 6-8pm. If you are in the Tulsa area, I would recommend making time for it in your schedule. I hope to see you there.
I missed the January TAP meeting. At that meeting, Dale Stewart was giving a presentation on the origins of agile development. Dale made his presentation available online. I recently finished going through the presentation and I wish I had been there for the in-person presentation. Dale included a ton of valuable material. I can highly recommend the presentation. I especially enjoyed the sections on the Cynefin Framework and Kanban. Make sure you watch the videos linked to in those slides. I am going to have to go back and review this presentation again. There is a lot there that I can use to improve how I do things. Thank you Dale for all the hard work you put into compiling this presentation.
Just went to the monthly TAP meeting. TAP is the Tulsa Agile Practioners meetup. I have been going for the last few months. They meet on the first Tuesday of every month. If you are in the Tulsa area, I would highly recommend it.
This month was a follow on to last month’s meeting. We continued to discuss User Story Maps and actually did a demo workshop this month. Jason Knight did a great job leading the discussion. The workshop clearly demonstrated how you can get a better understanding of a project and how to do effective release planning.