How I became Agile

I left my job as a programmer in 2005 to become a business analyst. I did this for the simple reason that, in my company at the time, the only way to improve the requirements for the software I was creating was to write them. I took naturally to the job of business analysis. I consider business analysis to be searching for and finding problems through conversations with clients and other research methods, then setting about laying out what is needed to solve those problems. This is, essentially, how I became Agile.

After doing business analysis within the Waterfall process for a couple of years, I noticed recurring problems. I was writing large business requirement documents either by myself or after reconciling the work of other business analysts and putting together a holistic requirements document. But, people don’t like reading large documents. No matter how much effort I put into making the documents shorter, they were still too long for busy people to read thoroughly.

There were many other problems that I noticed. I realized I could and should determine how to test the software while I was writing the requirements, but the process we were following put that work towards the end and entirely in someone else’s hands. When requirements changed while I was documenting them, it was a pain to update the many sections of the document that needed it. But, once I was done documenting the requirements, it became even harder for the team to accept changes. The risk and expense of accepting a change increased as the project progressed. Another problem, and perhaps the most significant, was that the Waterfall process relies on one step building off the preceding step. Since the steps don’t involve real software until the end, translation errors creep in all over the place much like a game of telephone.

These problems found me. I just had to find ways to solve them. I began a project to analyze our software development lifecycle. I took measurements everywhere that I could. Point blank; our overall cycle time was atrocious. We were not responsive to the needs of our customers. It was during this research that I found Agile. I led that team into a transition to Agile development. And I’ve led other teams through the transition since then. It’s through these experiences that my career has curved towards that of an Agile coach.

Agile solves all of the problems I noticed with Waterfall. And common practices of Agile teams also solve problems that I now see in retrospect. Large business requirements are replaced with small, self-contained, vertical slices of fried gold typically written as user stories that the user (And anyone else!) can see the value in. Because they’re small and mostly independent it is much easier to accept change. Rewrite, throw out, or split anything that hasn’t been worked on yet. Iterate on things that have been worked on until they’re good. Learn about the problem as you’re solving it and apply that learning back into your list of to-dos by rewriting pieces of it or reshaping it–a practice often called backlog grooming.

User stories also take care of that testing problem I mentioned. Instead of figuring that out towards the bottom of the waterfall, knowing how you’ll test each piece becomes a part of the analysis to understand the goal and is written down so that everyone on the team knows what needs to be done and what needs to be tested.

Getting rid of all of those cascading documents, writing down just enough for the team to accomplish their goals, and increasing team communication means that you’re much less likely to have misunderstandings and bad translations. The longer I’m involved in software development, the more I believe that reducing the chances for misinterpretations, catching, and correcting them quickly are the most important things you can do.

With Waterfall, change is risky. The farther you get into the process, the riskier it becomes to accept change. That’s why there are change control processes. In reality, not changing is risky. Just ask BlackBerry. The good news is that Agile teams can respond to change swiftly, without disruption, in a sustainable manner. Once an Agile team has built their first few increments of software, risk drops and is essentially flat for the rest of the time. Delivering work in smaller pieces, over shorter timeframes, all the while testing the results are why well performing Agile teams don’t experience escalating risk.

Another problem that common Agile techniques can help address is the fact that all estimates are bad. People just aren’t that good at estimating how long something will take. But, we can get better at it when we’re estimating something by comparing it to something we did in the past. Estimating with abstract story points makes the best out of this. Teams typically use a scale that has an increasing spread between numbers in the set. The Fibonacci sequence is a popular choice. This ever larger spread between numbers represents the increasing uncertainty in estimates for larger efforts. Once user stories have points assigned to them relative to previous work, and once the team has completed stories within a set period of time, the team can calculate how much work they can actually accomplish during a fixed period of time in terms of story points. (This is called Velocity, but that’s a horrible name for it) And using that, the team can then make predictions about how long it will take to complete the rest of the work with increasing certainty over time.

As you can see, I’m enthusiastic about Agile. But, I’m not a fan of treating it as a set process instead of a framework. If you’re “doing” Agile at your workplace, but the process is preventing you from doing something that is best for the product or team, then you’re not being Agile. Agile is more of a way of thinking than a way of doing. There are many different ways to work within the spirit of the Agile principles. And there are a lot of great practices that are commonly used by Agile teams–pick the ones that work well for your situation–they are not all the best practice for every team.

Will iOS 7 apps be able to work together?

I’ve seen iOS 7 wish lists from other people who hope for better inter-app communication like Christina Warren at Mashable. Apple already has a way to do this, but it’s unfortunately only available on the Mac right now. The Services menu on the Mac allows other applications to act on pieces of data selected within the current app that has the user’s focus. For example, you can select text and choose to look it up in the Dictionary app or create a new Mail message with the text already in it. It isn’t just limited to text; it also works on images and other types of data. I hope to see Services make its way into iOS and be improved on the Mac at the same time.

Will iOS 7 have more consistent media controls?

One thing that I hope Jony Ive and his team of Human Interface designers fix in iOS 7 is the playback controls used across their apps. The style, icons, and placement of controls are inconsistent across the Music, Podcasts, and Remote apps. And sometimes there are inconsistencies within the same app.

The Music app controls.

The Music app controls are not bad when compared to the overly precious design of the entire app. There is a seam that visually separates the buttons and the icons appear to be etched into their surface.

The Music app full-screen controls.

The quirky full-screen mode of the Music app loses the precious textures of the normal mode but retains the overall design with clear visual separation of the buttons. The icons appear as if printed on the surface of the buttons.

The Remote app controls.

The buttons of the Remote app are of a clean design with slight texturing to separate the elements rather than an explicit visual separator.

The Podcasts app controls.

There are no button separators in the Podcasts app and the icons appear on the surface with a gradient. You can also see that the icons for next and previous are different from those used in the other apps.

It gets even worse once we look at the full toolbars of the same apps. Check out the three different progress indicators for the three apps.

The Music app toolbar.

This is one of Apple’s worst designs. Those wooden sides! The inset control surfaces. The vizard appearance of the display. And orange highlights! Blue is the typical highlight color in iOS and this is the case in the Podcast and Remote apps as well. The highlight color isn’t even consistent within this one app–both the AirPlay and Replay icons are highlighted here.

The Music app full-screen toolbar.

Some improvements are made with the odd full-screen mode of the Music app. The highlight color is consistently orange and the wood is gone. The display still looks odd.

The Remote app toolbar

The Remote app toolbar is clean and has enough visual distinction between elements.

The Podcasts app toolbar.

Now you can see how the placement of the media playback controls are inconsistent across these Apple apps. Unlike the rest of them, the playback buttons are not at the top with the rest of the playback controls.

iPad Mini

In retrospect, it is now obvious that Apple didn’t name the latest iPad the iPad 3 because they were already working on an 8-inch iPad. They couldn’t come out with the iPad 3 and then name its diminutive sibling the iPad 4. It also would not do to bring an iPad 3 Mini to market a few months before introducing the new 10-inch iPad 4.

The Ghost of Xserve Future

In late 2010, Apple announced that they would cease production of the Xserve. That meant two things about the future of Apple hardware to me. It meant that new designs for both the Mac Mini and the Mac Pro would be more supportive of playing a server role.

Apple updated the Mac Mini in the middle of 2011 and proved me half right. The new Mac Mini shedded an optical drive in favor of opting for a second drive to increase storage capacity and it packed vastly improved processing power. With OS X Lion Server available from the App Store, a Mac server can be had for as little as $650 today. Apple also offers a faster, pre-configured Mac Mini with Lion Server for $1000.

Amazingly, Apple hasn’t refreshed the Mac Pro since the current model was released in the middle of 2010 before they axed the Xserve. Despite this long wait, I do think that Apple will update the Mac Pro contrary to some of the rumors swirling around. How? This is just a guess, naturally, but the new Mac Pro will be smaller and will be designed to stand vertically, horizontally, and easily be stored in a server rack. This means the Mac Pro could return to the legacy desktop computer form factor that littered desktops and elevated monitors in the nineties—elegantly refined by Jonathan Ive, of course! I doubt the optical drives will survive in a refreshed Mac Pro which will probably result in a boost to sales of Apple’s external SuperDrive. These changes are but one of the many ways Apple could make the Mac Pro more favorable for places that want a Mac server. I’m looking forward to seeing how Apple does it if they complete my prophecy next week at WWDC.

Faster Dock-action while in full screen

Do you love using apps in full screen mode in Lion but wish that it was easier to get to the Dock? If you’re comfortable mucking about in Terminal’s command line, you’re in luck. You can type the following command to make the Dock instantly appear as your pointer hits that bottom of the screen.

defaults write com.apple.Dock autohide-delay -float 0
killall Dock

Don’t worry, that second line just restarts the Dock with the new setting in place. It doesn’t hurt anything or anyone.

Type this to get back the behavior as Apple intended.

defaults delete com.apple.Dock autohide-delay
killall Dock

Could the next iPhone ship with LTE off by default?

On the latest episode of The Talk Show, Dan Benjamin asks if Apple could ship the next iPhone with LTE turned off by default to preserve battery life—since current LTE radios are so power hungry. John Gruber’s response was unsure but he didn’t think it would be the type of thing Apple would do. One possible precedent for Apple doing such a thing is Siri. The iPhone 4S ships with Siri off by default. Sure, this is probably because Siri is currently in beta, but the same line of thinking could apply to LTE as well. LTE is in a limited roll out. Apple could save power on everyone’s iPhone by having LTE support built-in but turned off by default. The minority of people that live in areas with LTE coverage could then turn on LTE if they feel the reduction of battery life is worth it.

It’s a content creation device

“It’s a content creation device.”
Leo Laporte talking about the new iPad.

It’s amazing to me that only now after Apple releases iPhoto for iOS do people see the iPad as a content creation device. It’s as if fantastic creation apps such as Bamboo Paper, Keynote, Brushes, OmniGraffle, and Korg’s iElectribe haven’t been on the iPad until now. In fact, Apple released Pages, Numbers, and Keynote alongside the original iPad and they are the sort of apps people generally think of when they talk about productivity apps.

The new iPad and iPhoto have apparently killed the perception by some people that the iPad is a content consumption device. People that have in the past appeared willfully ignorant of what makes the iPad so popular for so many different uses and the pundits and analysts that come up with convoluted terms like “media tablet” to discuss the iPad and clones of it. Welcome to the future.

Grading myself on iPad predictions

The speculation is all over now. We now know what the next iPad is going to be when it’s available in a few short days on Friday, March 16. Let’s see how I did with my predictions.

Retina Display

“The iPad is going to have its resolution doubled… It will be a revolutionary display.”

Ding! We have a winner. I get a star for this one. But, to be honest, a lot of people got this right. Pay attention to people that didn’t think this would happen and take whatever they say with lots of salt.

The name

“There are some rumors swirling about that Apple will name it the iPad HD. They won’t. In doing so, Apple would be under-playing their hand. The iPad has always been capable of displaying the 1280×720 variation of High Definition and HD video maxes out at 1920×1080. The Retina Display of the next iPad will pump out 2048×1536 pixels.”

Another winner. Not only did I call that it would not be named the iPad HD as many of the rumors were reporting and people were talking about on Twitter (I’m looking at you, Gizmodo) but I also telegraphed what Apple’s talking points would be during the event regarding the Retina Display iPad and HD. Apple had slides and video demonstrating how the iPad’s resolution is superior to 1080p HD.

A new app

“Along with an insanely high resolution display comes an app for organizing and editing photos and that means Aperture for the iPad. This puts me against John Gruber and agreeing with most of Gabe Glick’s points in a MacStories piece.”

OK, I got this one wrong. I thought the new app would be Aperture instead of iPhoto. Gruber was right. In retrospect, it makes sense that Apple would want to complete the iLife suite of apps on iOS by adding iPhoto to GarageBand and iMovie. I’d like to give myself half a star for knowing that Apple would release a new photo editing app, but that doesn’t seem right. No star!

LTE

“The Wall Street Journal published an article stating that the next iPad will have support for the faster LTE cellular networks. Their sources have been very good lately with respect to Apple. That combined with the timing on this one makes it a good bet.”

I got this one right too. I don’t think there is much too say about this one. But, it is a good sign that the next iPhone will have LTE. Notice how I didn’t call it the iPhone 5?

Messages

“To go along with Apple’s merging of iChat on the Mac with Messages from iOS, Apple will bring video conferencing from the Mac to the iPad.”

Totally wrong! Well, maybe this will be part of iOS 6.

iOS

“Like the original iPad, the next iPad will be released with a bespoke version of iOS that enables features that are unique to the iPad. Unique, at least, until Apple merges them with the rest of iOS later this year.”

It looks like I got this one wrong too. If so, Apple has improved their process for integrating changes specific to a new product into their main line of iOS. This is one that I am glad I got wrong.

It’s a given

“It’ll also have improved cameras front and back with the front facing camera being upgraded to FaceTime HD.”

Wow. I can’t believe I got part of this wrong. Apple put all of their effort into improving the rear camera which can now shoot 1080p video and 5 megapixel photos.

One last thing

“Oh, and they’ll continue selling the iPad 2 of the 16 GB variety starting at $349.”

Partially right. It’s actually $399 so all of the cheap tablets aren’t putting as much pressure on Apple as people think.

Siri

“I’m probably in the minority on this, but I hope that Apple doesn’t include Siri on the next iPad. That’s not because I don’t think it has a place on the iPad – I do. But, Siri is still in beta and appears to be overloaded at times. Including it on new iPads will be even more stress for Siri. Let’s wait until it’s ready before spreading it out to other Apple devices.”

I’m not going to grade myself on my other hopes because they were just that – and sadly weren’t fulfilled. But, I am going to give myself a bonus point for getting this right. Apple left Siri off of the new iPad for now since it is still in beta and they still have some issues to work out. Instead the new iPad will get a voice dictation key on the keyboard like the one the iPhone 4S has.

How did I do? Out of eight predictions, I got three right, and two half right. When you include bonus points for getting one of my hopes right, that is five stars.