Video at vimeo.com/kvangork
Presentation given at the 2010 Washington GIS Conference in Tacoma, WA.
Abstract: Software projects have a notoriously low rate of success. This presentation will convey keys to a successful project, gleaned from years of experience both as an in-house developer and consultant. We'll avoid buzzwords and fads, focusing on practical steps you can take to ensure a successful project.
Planning — You can't get anywhere without a map.
Infrastructure — basic tools to keep everything on course whether you're working solo on geoprocessing scripts or with 100 people on an enterprise integration.
Communication — Listen to the right people and develop a decoder ring to understand what they mean.
I got some push back afterwards regarding my comments on estimation, so I'll clarify my thoughts:
Accurate estimation (+-25%) is impossible on any project big enough to be interesting. The reasons for this are two: nothing is as simple as it looks, and good software development is responsive to an evolving understanding of the need.
One exception to my estimation impossibility theory is if you're building something you've already built in the past. If that's what you do...you have my pity and you're probably not even reading this.
39. MEETINGS
Peewee Football Huddle | http://www.flickr.com/photos/51888819@N00/279634853
40. WATCH OUT
FOR
MUSHROOMS
Huddle | http://www.flickr.com/photos/66878236@N00/2981667821
41. STAY CLOSE
TO YOUR
USERS
My mom taking usability test | http://www.flickr.com/photos/83198397@N00/4004256777
42. ESTIMATING
Is Flickr an addiction? | http://www.flickr.com/photos/91903883@N00/2311427946
43. RESOURCES
• JoelOnSoftware.com – blog and books
• CodingHorror.com
• StackOverflow.com – ask questions
• Follow me on Twitter @kvangork
• Email kirk.vangorkom@woolpert.com or call 720.279.4700
Editor's Notes
Destination Unknown
Why? Can’t I just start writing something?
Software is complex.
Need to know the big picture/end goal.
How do the parts fit together?
Writing massive documents is a bad idea because:
People don’t read
Things change
What you really need is a list of things to do,
easy to re-prioritize.
Words are ambiguous.
Avoid Illusion of Agreement
Think of specific users, real or imagined.
You will get it wrong. Plan on it.
Where do you keep this thing?
Solo Options: Excel, Notebook
Teams: Post-it Notes or...
Where do you keep this thing?
Solo Options: Excel, Notebook
Teams: Post-it Notes or...
Where do you keep this thing?
Solo Options: Excel, Notebook
Teams: Post-it Notes or...
Where do you keep this thing?
Solo Options: Excel, Notebook
Teams: Post-it Notes or...
If you’ve been asleep, wake up.
Once this section is over, you can get up and leave, or take a nap.
This is the one true KEY.
Think with me for a moment about our future selves. The ones who will discover all the things we’re currently doing wrong.
Think with me for a moment about our future selves. The ones who will discover all the things we’re currently doing wrong.
This is so critical that people give it away just to make the world a better place.
Worst product name ever.
Just call it SVN to get through your IT department.
Know that feeling when someone does it better than you ever could?
Ready for some sports analogies?
A team can’t work together (or stick to the plan) unless they meet frequently to get synchronized. Do the same thing.
At least twice a week.
Basic questions - What did you work on? What are you working on? What are your problems?
Watch for people checked out, like number 75 here.
A productive developer is a happy developer. An enthusiastic manager is an involved manager.
Otherwise you’ve got trouble starting.
Don’t treat anyone like a mushroom, don’t act like a mushroom.
Don’t keep people in the dark.
Cultivate trust. How? BE TRUSTWORTHY.
Usability testing.
Beta testers.
Estimating is hard. No, it's impossible, unless you’re reinventing something (why?). Lucky guesses are more likely the smaller the problem is, so break things down. Know your weaknesses. My estimates are always low because I'm an optimist. How do I know this? I started tracking them. Pay attention to the people you work with so you can learn their offsets.