Money, Process, and Culture- Lean and Agile Applied

This is the Powerpoint for a talk I gave at Tech2020, in Oak Ridge, Tennessee in June, 2012.

Text from the Slides:

Money, Process, and Culture
June, 2012
Adrian Carr
• I’m a Software Developer with a passion for efficiency.

• Experience as a business analyst, project manager.

• Scrum Product Owner and Scrum Master

• Director of Software Development

• Founder and Organizer of Agile Knoxville (http://agileknoxville.com)

Why am I here?
• I’m not trying to sell you anything.
• I want to see local businesses be successful.
• I also want to see people enjoying their jobs and their lives.

2002….
• I’m working in Atlanta

2011…
• I’m working in Knoxville
• Offered the job of leading the development team at Voices Heard Media.
-Run it however you want…

I travel to L.A. again…
Step One:
• Start with more frequent releases (reduce batch size)
– Reduced cycle time
– Faster feedback
– Greater ability to respond to changes
– Increased efficiency
– Greater sense of urgency
– Defects don’t build up unnoticed

Step Two:
• Agile practices.
– Small cross-functional teams
– Frequent delivery
– Small batch sizes
– Daily standup meetings
– Demos and planning meetings every 2-4 weeks

The Agile Manifesto
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.
Principles behind the Agile Manifesto
• Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
• The most efficient and effective method of
conveying information to and within a development team is face-to-face conversation.
• Working software is the primary measure of progress.

• Continuous attention to technical excellence
and good design enhances agility.
• Simplicity–the art of maximizing the amount
of work not done–is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.

• At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts its behavior accordingly.

http://agilemanifesto.org/

Warning:
• Partially agile isn’t very agile.
• Agile practices without the principles will only give marginal benefits.
• A few lean concepts can make an amazing difference.
• After a lot of study on this, I’ve come to believe that this won’t happen without systemic cultural changes.

Lean Thinking
• The core idea is to maximize value while minimizing waste. Simply, lean means creating more value with fewer resources.

http://lean.org

• Eliminating waste creates processes that need less human effort, less space, less capital, and less time to make products and services at far less costs and with much fewer defects, compared with traditional business systems.

http://lean.org

Lean Cultural Changes
• Optimize the Whole

Lean Cultural Changes
• Culture of problem solving
– Problems shouldn’t carry blame, or they will be suppressed, and you can’t solve them.
– Stop going around them and solve them instead
• The fact that we know more today, and are more capable today, is good news about today, not bad news about yesterday. Ron Jeffries

• A manager at an auto plant that used to be a manager in a Toyota plant: “When I was a manager at the Toyota plant, I had 2000 problem solvers working in “the plant. Now I have 10. How am I going to compete?” From “Leading Lean Development”

Lean Cultural Changes
• Continuous improvement

• Who is responsible for quality at your company?

• Expect employees to look for waste and ways to eliminate it.

Lean Cultural Changes
• “Stop the line” culture

• This can be painful at first, but yields great results.

Lean Cultural Changes
• 5 Whys
– Powerful tool. To get to root cause.
– Avoid trap of turning into 5 Blames

• Try to keep it simple. Don’t try to solve a massive, multi-faceted problem with this.

Be Prepared
• This will probably be hard, and will probably cause some clashes.

• It will expose things that some people (including you) hold dear.

• This is where your company culture gets really important. Some people won’t fit this culture. Be compassionate.

Corporate Values
• Integrity

• Communication

• Respect

• Excellence

How do you create a great culture?
• Reward the values that matter.
• Eliminate waste and make your employee’s jobs easier
• Encourage employees to ask why and look for better ways of doing things.
• Care about people.
• Be a coach, not a policeman

A Few Resources
• Leading Lean Development By Mary and Tom Poppendieck

• The Lean Startup By Eric Reis

• http://lean.org
• http://agileknoxville.com

Posted in software | Leave a comment

Cape Point Campground- Cape Hatteras National Seashore- OBX

In July, 2012, we traveled to the Outer Banks of North Carolina. We camped one night at Oregon Inlet Campground at Cape Hatteras National Seashore. We liked that campground quite a bit, so one day we went to check out two other US Park Service campgrounds, Frisco, and Cape Point.

All three campgrounds are very different. Cape Point is one giant field. This campground resembles a giant football field, with paved driveways and paved parking areas for campsites running through it. There are bathhouses and showers scattered around every once in a while. There are no trees whatsoever, and absolutely no shade, unless you bring an awning of some sort. It could be very exposed in the event of a storm or high winds.

The grass was in really good shape, and would be great for frisbee or kicking a soccer ball around. I don’t know if there are a lot of sandspurs like there are at Oregon Inlet.

We rode through on Thursday, July 12, and very, very few sites were taken.

Cape Point is at the corner of Hatteras Island, south of Oregon Inlet and north of Cape Point. The famous Hatteras lighthouse is just down the road, and very visible from the camground.
Here is a good map of Hatteras National Seashore.

Cape Point Campground- Hatteras National Seashore -OBX

Viewing images 1-6 of 6
Cape Point Campground1.jpg Cape Point Campground2.jpg Cape point Campground Entrance.jpg Hatteras Beach.jpg Hatteras Beach3.jpg Hatteras Lighthouse.jpg
Viewing images 1-6 of 6

Posted in Travel | Leave a comment

Frisco Campground- Cape Hatteras National Seashore, OBX

In July, 2012, we traveled to the Outer Banks of North Carolina. We camped one night at Oregon Inlet Campground at Cape Hatteras National Seashore. We liked that campground quite a bit, so one day we went to check out two other US Park Service campgrounds, Frisco, and Cape Point.

All three campgrounds are very different. Frisco is the only one with trees, and has some sites that are a bit higher, and have a view of the ocean across the campground. The downside is that these sites are a bit further from the ocean, but still an easy walk.

Frisco Campground has some beautiful campsites where a tent could actually be completely in the shade, at least at many of the sites. We rode through on Thursday, July 12, and very few sites were taken. We could have had our pick of excellent sites.

Frisco is at the tip of Hatteras Island, south of Oregon Inlet and Cape Point.
Here is a good map of Hatteras National Seashore.

We also saw a deer at a campsite.

Frisco Campground- Hatteras National Seashore- OBX

Viewing images 1-5 of 5
DSC01333.JPG Frisco Campground.jpg Frisco Campground2.jpg Frisco Campground3.jpg Frisco Campground4.jpg
Viewing images 1-5 of 5

Posted in Travel | Leave a comment

Camping at Oregon Inlet- Cape Hatteras National Seashore, OBX

In July 2012, I traveled to the Outer Banks of North Carolina. It was kindof a last minute trip, and we had no reservations lined up at all. We thought we might find a small motel for the first night, but passed by the Oregon Inlet Campground and decided to check it out. Campsites at Oregon Inlet can’t be reserved ahead of time (except for group sites) and before the trip, I tried to find out the likelihood of finding an open spot during high season on the Outer Banks but couldn’t get a definitive answer. I tried calling the park service, and eventually navigated the phone tree through, but was prompted to leave a message, which I declined to do. I even posted a question to the OBX forum on TripAdvisor, but got no answer. Anyway, it turned out that there were plenty of open campsites available, and the campground was quite nice.

We arrived at around 5:30 on a Saturday afternoon in July, and found that less than 1/4 of the spots were taken. We rode through, found a spot that was at least somewhat sheltered from the wind by some large dunes, and decided to stay the night for $20 instead of $150 at a dumpy motel. Setting up the tent was a challenge, because the tent is quite large, and it was quite windy, and very hot. Fortunately, I had two great helpers to help me set it up. We then went to dinner in the town of Salvo, which is about 15-20 minutes away. We found a decent restaurant with a second story where we could watch the kiteboarders in the sound.

When we got back to the campground, more people had arrived, and probably a third of the campsites were taken. It was quite dark by this time, so we went to sleep. The wind was still very strong, and whipped the tent constantly all night, making it difficult to sleep due to the noise. The breeze did give some respite from the heat. If it wasn’t for the breeze, it would have been very hot and quite uncomfortable for sleeping.

In the morning, we walked across the dunes to the beach. It was beautiful. One thing that is a bit strange is that there is no designated trail to the beach, so you just have to find one and follow it. However, to get to the trails, you usually have to walk through or very close to someone else’s campsite. The trails are beautiful themselves, as small winding paths through the dunes. It’s very different from walking down a traditional wooden boardwalk over the dunes. On the trails, you never know what is around the next bend, and they dip down and up and through the dunes.

Once through the dunes, we were greeted by an empty beach, with only three other people on it as far as we could see. Not bad for a Sunday morning in July.

Be sure to use serious tent stakes. We saw more than one tent that had blown over on their side, and one of them looked like it had blown across the site and come to rest against the dunes. I didn’t have large tent stakes, so I found some sticks and filled a couple empty water bottles with sand, and tied the guy lines to these and buried them about a foot deep in the sand. Fortunately, I had brought a small garden shovel for digging at the beach.

About Oregon Inlet campground:

  • Near Oregon Inlet marina and fishing station.
  • Cost is $20 per night
  • The NPS website says that mosquitos can be bad, but weren’t while we were there.
  • Cold showers.
  • Decent, clean bathrooms. (No soap or hand towels)
  • Walk through the dunes to get to beach. May have to walk through someone else’s site to get to trail.
  • Many sandspurs, so be careful.
  • Have to use large tent stakes, or use tent guy lines tied to a stick and buried in the sand.
  • No trees.
  • Some grassy areas, and some mostly sand.

Oregon Inlet Campground- Hatteras National Seashore- OBX

Viewing images 1-18 of 18
DSC01162.JPG DSC01163.JPG DSC01168.JPG DSC01169.JPG DSC01170.JPG DSC01172.JPG IMG_20120708_071417.jpg IMG_20120708_071422.jpg IMG_20120708_071428.jpg IMG_20120708_071513.jpg IMG_20120708_071544.jpg IMG_20120708_071845.jpg IMG_20120708_072033.jpg IMG_20120708_072214.jpg IMG_20120708_073008.jpg IMG_20120708_073013.jpg Oregon Inlet Campground Entrance.jpg IMG_20120708_071323.jpg
Viewing images 1-18 of 18

Posted in Travel | Leave a comment

Thoughts on Agile Waterfall

Not long ago, a friend of mine sent me an article about Agile Waterfall.

I thought about this quite a bit, and here are my thoughts on it:

My view is that agile is not the only way, and that you should do what works for your company and situation, with the caveat that you create a culture that has these attributes:

  • Continuous improvement, where every single person is on board with getting better as an individual, a team, and as a company. If people aren’t on board with that, then they are probably on the wrong bus.
  • Look to eliminate waste. Waste is those things which add cost, but do not add appropriate value. This could be processes, unneeded documentation, hand-offs from one group to another when they should be working together, bugs that cause rework, waiting too long for feedback, company rules, or anything. Like at Toyota, it should be everyone’s job to find these things.
  • Professionalism and trust. Teams should earn trust and be given it.

These are basic tenets of Lean thinking. Now, if you do these things, you will be agile, eventually, because it is impossible to have a culture of continuous improvement and do pure waterfall software development for long. In fact, I will go so far as to say that if you do waterfall development, you are probably robbing your company, because you are wasting your company’s money. I say probably because I do not know your situation, but I cannot see a case where pure waterfall development makes economic sense.

I’ve thought about this waaaay more than I should, but that’s just what I do, and I’ve come to the conclusion that the next time I am involved in helping a company move to agile development, I’m rarely going to use the word “agile”. It sets some people off, and also comes with preconceived notions, both good and bad. There are so many different flavors and ways of being agile that they come with assumptions. My plan is to incorporate lean concepts, and do those things that I listed above. Most people have heard of lean, and almost no one will fight it because it has won. Companies that are seriously doing continuous improvement, will get to agile, then go beyond that into lean. The problem with agile is that too many companies implement Scrum, and think they are agile, when they are really just doing the practices, but still aren’t making the real improvements that they could.

Abrams Falls

Abrams Falls

Posted in agile, lean, scrum, software | Leave a comment

Adding multiple files to Source Code Control from IntelliJ IDEA

I recently started a new software project using IntelliJ IDEA, and after some experimentation, decided to add the project to Team Foundation Server (TFS) so I can make changes and have them under version control. I had no problem setting up the connection to our TFS Server via the “VCS” menu, and I could easily add and checkin a directory or a single file by right-clicking on it in the project explorer window, but could not figure out how to add all of my project files and directories at the same time. Adding them one by one to version control is tedious, time-consuming, and error prone. Plus, I knew there was a way. I just didn’t know what it was.

After a lot of wasted time trying, and then googling, then checking Stack Overflow and the JetBrains support site, I eventually gave up and contacted their support.

Five minutes later, I received the answer back from them. (In addition to spending too much time fighting Eclipse, that’s one more reason why I like them so much.)
Here’s the answer:

  1. Look at the very bottom of the IDE, and see if there is a tab labeled “Changes”. If not, go to View > Tool Windows > Changes.
  2. Look at the “Local” panel in the “Changes” window.
  3. Under the “Unversioned files” node, there will be a list of all files and directories that are not under version control.
  4. Right-click the “Unversioned Files” node, and select “Add to VCS” from the pop-up menu.
  5. Right-click again, and select “Commit Changes”. You should be done.

I hope this helps someone, and remember- Version Control is your friend.
-Adrian Carr

Posted in software | Leave a comment

Relieved that I didn’t get the call center job in New York

I received an email yesterday entitled “Phone Interview”. I was confused at first, because I haven’t applied for any jobs lately, especially one in a call center in Long Island, New York. I have no idea who they actually spoke with, but I am glad that they enjoyed speaking with “me” and that they think my “capabilities are impressive and I demonstrated that I have a great deal to offer”.
I do feel bad for the real person who didn’t get the job, and I wish them well.

Just for grins, here’s the email:

Good evening Mr. Carr,

Thank you for taking the opportunity to contact us for a phone interview, it was a pleasure speaking with you. Your capabilities were impressive and demonstrated you have a great deal to offer. However after careful consideration, we cannot offer you a position at this time.

We appreciate your interest in Carey Limousine Call Center Department and for all the time you’ve given us. We’ll keep your resume on file for 3 months for review should we have an opening that matches your skills.

Again, thank you for your interest and best wishes to your future endeavors.

Sincerely,

Carey New York
Hiring Team
4901 27th Street
Long Island City, NY 11101
Tel:212-599-1122
www.Carey.com

Posted in Uncategorized | Leave a comment

Surprised to find myself on YouTube

I was curious if the Knoxville Geek Breakfasts were still happening or not, so I googled it today (It doesn’t look like they are happening.) Much to my surprise, I found myself on YouTube, along with David Sink, and Arlene Gray and Jolyon Gray at Geek Breakfast in February 2009. Kinda cool, I think.

Posted in software | Leave a comment

PicasaView instantView Google Error

I noticed a great photo thumbnail layout on a friend’s blog recently, and asked him about it. He told me that he was using a cool WordPress photo plugin called PicasaView that easily pulls photos from Picasa into a WordPress blog. I’ve been playing around with different photo galleries lately as I try to resurrect this blog, and thought I’d give it a try since wordpress plugins are so easy to install.

So, I went into my wordpress control panel and added, activated, and setup the plugin in just a few minutes. Easy as pie.

I then went to a test page and added a Picasa photo album from a recent trip to Phoenix, Arizona.
I added this code:
[picasaview album='Arizona-August 2011']
This works great, and looks just like this:

Arizona-August 2011

Arizona-August 2011

(07/30/2011, 42 Photos)

Now, I’m going to come back to it, but notice that that there is a space in my album name. That’s perfectly fine to both Google and to PicasaView, up to a point.
What I really wanted was a bunch of thumbnails like I had seen on my friend’s blog. So, I added the “instantView” option to my PicasaView tag so it looked like this:

[picasaview album='Arizona-August 2011' instantView='yes']
This is when things went downhill fast.
In addition to messing up the entire CSS for my site, including messing up the header and background, it also generated this:

PicasaView Error

PicasaView Error

The issue here took me some time to find. The problem is that I used the title of the album as I entered it. This is the part that doesn’t work, because I have a space in the album name. The fix is to go to the url for the album that Picasa generated, and use that instead in the album name. In this image, you can see the album name and the url that works:
picasa url

After I changed the PicasaViewer tag to look like this:
[picasaview album='ArizonaAugust2011' instantView='yes']
it generates thumbnails like this:

Arizona-August 2011

Viewing images 1-42 of 42
IMG_20110807_165753.jpg IMG_20110807_191845.jpg IMG_20110807_192236.jpg IMG_20110807_192252.jpg IMG_20110807_192539.jpg IMG_20110807_192732.jpg IMG_20110807_192925.jpg IMG_20110807_193328.jpg IMG_20110807_193725.jpg IMG_20110807_193753.jpg IMG_20110807_194759.jpg IMG_20110807_195731.jpg IMG_20110807_202617.jpg IMG_20110808_190529.jpg IMG_20110808_190543.jpg IMG_20110808_190734.jpg IMG_20110808_191049.jpg IMG_20110808_191057.jpg IMG_20110808_191124.jpg IMG_20110808_191133.jpg IMG_20110808_191532.jpg IMG_20110808_191830.jpg IMG_20110808_192116.jpg IMG_20110808_192309.jpg IMG_20110808_192313.jpg IMG_20110808_192324.jpg IMG_20110808_193447.jpg IMG_20110808_193632.jpg IMG_20110808_194343.jpg IMG_20110808_194422.jpg IMG_20110808_194434.jpg IMG_20110808_194502.jpg IMG_20110808_194518.jpg IMG_20110808_194644.jpg IMG_20110808_194713.jpg IMG_20110808_202034.jpg IMG_20110808_202148.jpg IMG_20110809_193248.jpg IMG_20110810_130848.jpg IMG_20110811_152115.jpg IMG_20110811_172524.jpg IMG_20110811_180403.jpg
Viewing images 1-42 of 42

That’s all there is to it. I hope this helps someone else.
-Adrian

Posted in software, Wordpress | Leave a comment

Better design and faster innovation

This statement caught my eye today. I look forward to the day where I am instrumental in making this happen. It sums up a large segment of my view of work.

We still went ahead because we knew we could design something that would simply be better and we could innovate light years faster. Now, we are rarely compared to this giant, and when we are, it’s because someone is saying we’re doing a better job. Our execution is so different that it, in and of itself, is reason enough for people to turn to us.
http://www.fastcompany.com/9-nagging-questions-to-tune-out-when-launching-a-startup

Image just for fun….
Superheros

Posted in software | Leave a comment