A few years ago I wrote about Agile Development. Earlier this week I had an experienced that reinforced one of its principles: quick iterations. I have a project and have been given six months to complete it. I have another developer helping me and so we are meeting often to work on the deliverables. I thought we had a good start to our plan and sat down with my boss to go over some details.
My plan included installing some new software and migrating hundreds of people to the new system. I knew it would be a tough sell but that is how I planned to incorporate one of the most important goals of the project: world-wide access for all teams. My boss suggested using existing software and making small tweaks to bring teams on-board gradually. Rather than trying to get everyone onto the new software in a big push, we will make minor adjustments to the software that teams in one geographical location are already using. Then we will add another team midway through the schedule. Rather than trying to get the third and final group onboarded to new software that they are not familiar with, we will just copy data from our system to theirs and vice versa on a nightly basis.
My plan is much more comprehensive but runs the risk of being impossible. There is a chance that we will get to the end and not have anything working. This will extend the project for an unknown amount of time and could end up being a never-ending project. The new plan is incremental and allows us to have something to show every two weeks, which is our sprint length. If we are late on any of our deliverables, stakeholders will see the delays as they happen and be able to plan accordingly.
This weeks experience reminded me that even though I know software development principles, there are many ways to put them into practice and some are better than others. I need to remember not to focus on one goal at the expense of being able to get something done.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment